Slim MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slim MCPwhat's the weather like in Austin, TX?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Slim-MCP: Claude Tools š¤
š 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)
Setup with 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.mainExample 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 LicenseCreating a New Tool
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)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 lineRestart the server and your new tool is ready to use!
š„ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
š License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
5 toolscalculateB
Calculate the result of a mathematical expression. Args: expression: A mathematical expression as a string (e.g. "2 + 2", "sin(30)")
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | ||
| longitude | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
- First observed
calculate - First observed
get_alerts - First observed
get_current_time - First observed
get_current_utc_time - First observed
get_forecast
TDQS
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.
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.
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.
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
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
AI-callable tools for API mocking, testing, monitoring, security, and automation.
60+ units, live FX, timezones, and date arithmetic for AI agents.
Pay-per-use tool API for AI agents. Free tier, x402 USDC micropayments, or API key.
Real-time data API for AI Agents: stocks, weather, forex, logistics, search, scrape, news, IP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.225MIT
- FlicenseNot gradedqualityDmaintenanceMulti-agent AI tools for email automation (Outlook), weather (OpenWeather API), sticky notes, and arithmetic, all served via FastMCP.-
- FlicenseNot gradedqualityCmaintenanceReference 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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