Skip to main content
Glama

Slim-MCP: Claude Tools šŸ¤–

Python 3.11+ License: MIT GitHub stars Twitter Follow

šŸš€ Supercharge Claude with powerful Python-based tools via the MCP protocol

✨ Features

  • 🧮 Calculator: Perform complex math calculations

  • šŸŒ¦ļø Weather: Get current weather forecasts and alerts

  • šŸ•’ DateTime: Access current time in local and UTC formats

  • šŸ”Œ Extensible: Easily add custom tools with simple Python functions

  • šŸ’» Desktop Integration: Seamless integration with Claude Desktop app

  • šŸ–±ļø Cursor IDE: Native integration with Cursor IDE for developers

Related MCP server: MCP Server with External Tools

šŸ“‹ Table of Contents

šŸš€ Installation

Prerequisites

  • Python 3.11+

  • Conda (recommended)

# Create conda environment with Python 3.11
conda create -n mcp-tools python=3.11

# Activate environment
conda activate mcp-tools

# Clone the repository
git clone https://github.com/webdevtodayjason/slim-MCP.git
cd slim-MCP

# Install with uv (preferred)
uv pip install -e .

# OR install with standard pip
pip install -e .

šŸŽ® Usage

Configure Claude

Add this to your Claude configuration file:

{
    "mcpServers": {
        "claude-tools": {
            "command": "/path/to/conda/envs/mcp-tools/bin/python",
            "args": ["-m", "claude_tools.main"]
        }
    }
}

Configure Cursor IDE

NAME: claude-tools
TYPE: command
COMMAND: /path/to/conda/envs/mcp-tools/bin/python -m claude_tools.main

Example Prompts

Can you calculate 25^3 + sqrt(196)?

What's the current time in UTC?

What's the weather like in Austin, TX?

šŸ”Œ Integrations

  • Claude AI Desktop: Primary integration via MCP protocol

  • Cursor IDE: Direct integration for development workflows

  • Claude Web: Compatible with Claude Web through configuration

šŸ’» Development

Project Structure

slim-MCP/
ā”œā”€ā”€ src/
│   └── claude_tools/
│       ā”œā”€ā”€ __init__.py
│       ā”œā”€ā”€ calculator.py     # Math calculation tool
│       ā”œā”€ā”€ datetime_tool.py  # Date and time utilities
│       ā”œā”€ā”€ main.py           # Entry point
│       └── weather.py        # Weather forecasting tool
ā”œā”€ā”€ http_server.py            # HTTP server for MCP
ā”œā”€ā”€ pyproject.toml            # Project configuration
ā”œā”€ā”€ .gitignore                # Git ignore file
└── LICENSE                   # MIT License

Creating a New Tool

  1. Create a new Python file in src/claude_tools/:

# src/claude_tools/my_tool.py
def my_awesome_function(param: str) -> str:
    """Description of what this tool does.
    
    Args:
        param: Description of the parameter
        
    Returns:
        A string with the result
    """
    result = f"Processed: {param}"
    return result
    
def register_my_tools(mcp):
    """Register all my tools with the MCP server."""
    mcp.tool()(my_awesome_function)
  1. Import and register your tool in __init__.py:

# In src/claude_tools/__init__.py
from .calculator import register_calculator_tools
from .datetime_tool import register_datetime_tools
from .weather import register_weather_tools
from .my_tool import register_my_tools  # Add this line

def register_all_tools(mcp):
    register_calculator_tools(mcp)
    register_datetime_tools(mcp)
    register_weather_tools(mcp)
    register_my_tools(mcp)  # Add this line
  1. Restart the server and your new tool is ready to use!

šŸ‘„ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Available Tools

5 tools
calculateB

Calculate the result of a mathematical expression. Args: expression: A mathematical expression as a string (e.g. "2 + 2", "sin(30)")

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool calculates results but lacks details on behavioral traits: it doesn't specify error handling (e.g., for invalid expressions), performance characteristics, or output format. The description is minimal and doesn't compensate for the absence of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by parameter details. It's efficient with no wasted words, though it could be slightly more structured (e.g., bullet points).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema, the description is somewhat complete but has gaps. It covers the basic purpose and parameter semantics but lacks usage guidelines and behavioral transparency. The output schema likely handles return values, so that's not needed here, but overall it's minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema. The schema has 0% description coverage, so the description compensates by explaining the 'expression' parameter as 'A mathematical expression as a string' with examples like '2 + 2' and 'sin(30)'. This clarifies the expected format and usage, though it could be more detailed (e.g., supported operators).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Calculate the result of a mathematical expression.' It specifies the verb ('calculate') and resource ('mathematical expression'), making it unambiguous. However, it doesn't differentiate from siblings (like get_current_time), which are unrelated, so it's not a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, limitations, or comparisons to other tools (e.g., when to use calculate vs. other computational methods). This leaves the agent without context for appropriate selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_alertsB

Get weather alerts for a US state.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this is a read-only operation, potential rate limits, error conditions, authentication needs, or what the output contains beyond the implied alerts. This leaves significant behavioral gaps for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose with zero wasted words. It's appropriately sized for a simple tool with one parameter and clear output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 parameter, output schema exists), the description is minimally complete but lacks behavioral context. The output schema likely covers return values, so the description doesn't need to explain those, but it should address usage guidelines and transparency more thoroughly for better agent guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal semantics by implying the 'state' parameter refers to a US state, but the schema already has a 'State' title with 0% coverage. Since there's only one parameter and the description provides some context (US state), it meets the baseline for adequate but not detailed parameter explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('weather alerts') with geographic scope ('for a US state'), making the purpose immediately understandable. It doesn't distinguish from siblings like 'get_forecast' which suggests different weather data, but the core functionality is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_forecast' or other siblings. The description implies usage for weather alerts specifically, but lacks explicit context, prerequisites, or exclusions that would help an agent choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_timeB

Get the current date and time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't mention any behavioral traits like timezone handling, format of the returned time, or potential limitations (e.g., precision, freshness). This leaves significant gaps for a tool that returns dynamic data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded, consisting of a single, clear sentence that directly states the tool's purpose. There is no wasted text, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, but with an output schema), the description is minimally adequate. It states the basic function but lacks details on behavioral aspects like timezone or format, which could be important for usage. The output schema may cover return values, but the description doesn't provide enough context for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter details, so it appropriately avoids redundancy. A baseline of 4 is given since no parameters exist, and the description doesn't mislead about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current date and time'), making it immediately understandable. However, it doesn't differentiate from its sibling 'get_current_utc_time', which appears to serve a similar function, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as the sibling 'get_current_utc_time' or other time-related tools. It lacks any context about use cases, prerequisites, or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_utc_timeA

Get the current UTC date and time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool returns the current UTC date and time, which is clear but lacks details like format, precision, or whether it's real-time versus cached. It doesn't disclose behavioral traits such as rate limits or authentication needs, though these may be less critical for a simple time-fetching tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the essential information ('Get the current UTC date and time') with zero wasted words. It is appropriately sized for a simple tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, simple purpose) and the presence of an output schema (which handles return values), the description is complete enough. It clearly states what the tool does, though it could benefit from slight elaboration on usage context or output format to reach a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately adds no parameter information, focusing on the tool's purpose. A baseline of 4 is applied as it compensates adequately for the lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get') and resource ('current UTC date and time'), distinguishing it from sibling tools like 'get_current_time' (which might return local time) and 'calculate' (which performs computations). It precisely defines what the tool does without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining UTC time, but does not explicitly state when to use this tool versus alternatives like 'get_current_time' or other time-related tools. No guidance is provided on exclusions or prerequisites, leaving usage context to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_forecastB

Get weather forecast for a location.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYes
longitudeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Get weather forecast') but doesn't add any context about traits like rate limits, data freshness, error handling, or authentication needs, leaving significant gaps for a tool that likely involves external API calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 required parameters, no annotations, but has an output schema), the description is minimally adequate. It covers the basic purpose but lacks details on usage, behavior, and parameter context, though the output schema may help mitigate some gaps in return value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate, but it only vaguely implies parameters ('for a location') without detailing the required latitude and longitude. This adds minimal meaning beyond the schema, resulting in a baseline score due to the schema's clear structure but incomplete documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('weather forecast for a location'), making it immediately understandable. However, it doesn't distinguish this tool from its sibling 'get_alerts', which might also provide weather-related information, so it misses full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_alerts' or other siblings. It lacks context about scenarios where a forecast is preferred over current conditions or alerts, offering minimal usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updates
    • First observedcalculate
    • First observedget_alerts
    • First observedget_current_time
    • First observedget_current_utc_time
    • First observedget_forecast

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes (math calculation, weather alerts, time, weather forecast), but get_current_time and get_current_utc_time could be confused as they both retrieve time information with only a timezone difference. The descriptions clarify this, but the overlap exists.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (calculate, get_alerts, get_current_time, get_current_utc_time, get_forecast). The naming is predictable and readable throughout the set.

Tool Count3/5

With 5 tools, the count is reasonable, but it feels slightly thin for a server named 'Slim MCP' that mixes math, weather, and time domains. The scope is broad, yet the tool count is minimal, which might indicate under-coverage or a mismatch in purpose.

Completeness2/5

There are significant gaps in coverage across the implied domains. For math, only calculation is provided without other operations (e.g., graphing, unit conversion). For weather, alerts and forecast exist but lack current conditions or historical data. For time, two similar tools are included without broader time-related functions. This incompleteness will likely cause agent failures in extended tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A modular, extensible FastAPI-based platform that aggregates multiple AI tools and microservices into a unified interface with standardized I/O formats, perfect for frontend integration or LLM system orchestration.
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to access external services including weather data, file system operations, and SQLite database interactions through a standardized JSON-RPC interface. Features production-ready architecture with security, rate limiting, and comprehensive error handling.
    225
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Multi-agent AI tools for email automation (Outlook), weather (OpenWeather API), sticky notes, and arithmetic, all served via FastMCP.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Reference implementation of a Model Context Protocol server for integrating external APIs as agent tools. Includes built-in tools for weather, database queries, web search, and calculations, with authentication, rate limiting, and logging.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/webdevtodayjason/slim-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server