Slim MCP
슬림-MCP: 클로드 툴스 🤖
🚀 MCP 프로토콜을 통해 강력한 Python 기반 도구로 Claude를 강화하세요
✨ 특징
🧮 계산기 : 복잡한 수학 계산을 수행합니다
🌦️ 날씨 : 현재 날씨 예보와 알림을 받으세요
🕒 DateTime : 로컬 및 UTC 형식으로 현재 시간에 액세스합니다.
🔌 확장 가능 : 간단한 Python 함수로 사용자 정의 도구를 쉽게 추가할 수 있습니다.
💻 데스크톱 통합 : Claude 데스크톱 앱과의 원활한 통합
🖱️ 커서 IDE : 개발자를 위한 커서 IDE와의 기본 통합
Related MCP server: MCP Server with External Tools
📋 목차
🚀 설치
필수 조건
파이썬 3.11+
Conda(추천)
Conda로 설정(권장)
지엑스피1
🎮 사용법
Claude 구성
Claude 구성 파일에 다음을 추가하세요.
{
"mcpServers": {
"claude-tools": {
"command": "/path/to/conda/envs/mcp-tools/bin/python",
"args": ["-m", "claude_tools.main"]
}
}
}커서 IDE 구성
NAME: claude-tools
TYPE: command
COMMAND: /path/to/conda/envs/mcp-tools/bin/python -m claude_tools.main예시 프롬프트
Can you calculate 25^3 + sqrt(196)?
What's the current time in UTC?
What's the weather like in Austin, TX?🔌 통합
Claude AI Desktop : MCP 프로토콜을 통한 기본 통합
커서 IDE : 개발 워크플로우를 위한 직접 통합
Claude Web : 구성을 통해 Claude Web과 호환 가능
💻 개발
프로젝트 구조
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새로운 도구 만들기
src/claude_tools/에 새로운 Python 파일을 만듭니다.
# 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)__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서버를 다시 시작하면 새로운 도구를 사용할 준비가 됩니다!
👥 기여하기
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
저장소를 포크하세요
기능 브랜치를 생성합니다(
git checkout -b feature/amazing-feature)변경 사항을 커밋하세요(
git commit -m 'Add some amazing feature')브랜치에 푸시(
git push origin feature/amazing-feature)풀 리퀘스트 열기
📄 라이센스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
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.
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
Scored across 5 tools
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
Related MCP Connectors
AI-callable tools for API mocking, testing, monitoring, security, and automation.
API Tool Calls: Home cost planners, proofreading, QR and barcodes, page to Markdown, SEO checks and recalls. Free agent tools: 20 calls/day per IP, no key.
Agent utility API: 28+ free endpoints (hash, QR, DNS, scrape, JWT...) run by an autonomous AI agent.
65 utility tools for AI agents: calculators, converters, live data, crypto — paid per call via x402.
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.396 npmMIT
- FlicenseNot gradedqualityDmaintenanceMulti-agent AI tools for email automation (Outlook), weather (OpenWeather API), sticky notes, and arithmetic, all served via FastMCP.-
- FlicenseNot gradedqualityCmaintenanceEnables dynamic tool registration and invocation via HTTP, with built-in tools for calculations, text processing, and async API calls, all in a lightweight Node.js server with zero external dependencies.-