MCP多工具服务器
使用FastMCP构建的综合模型上下文协议(MCP)服务器,提供计算器工具、文档资源和提示模板。此服务器在单个实现中演示了多种MCP功能,包括工具、资源和提示。
特性
🧮 计算器工具
- 基本操作:加法、减法、乘法、除法
- 高等数学:幂、平方根、阶乘计算
- 工具函数:百分比计算
- 错误处理:除零保护、负平方根保护、析因范围限制
📖 文档资源
- TypeScript SDK资源:访问MCP TypeScript SDK文档
- 动态文件读取:从可配置文件路径读取
- 错误处理:妥善处理丢失的文件
📝 提示模板
- 会议摘要模板:执行会议摘要生成器
- 变量替换:动态模板变量替换
- 结构化输出:专业会议摘要格式
快速开始
先决条件
- Python 3.12或更高版本
uv包管理器
安装
- 克隆存储库
git clone
cd mcp-multi-tool-server- 安装依赖项
uv sync- 测试服务器
uv run mcp dev server.py打开http://localhost:3000在MCP Inspector中测试服务器。
用法
计算器工具
服务器提供8个计算器工具:
| 工具 | 说明 | 示例 |
|---|---|---|
add | 加两个数字 | add(5, 3) → 8 |
subtract | 从第一个减去第二个 | subtract(10, 4) → 6 |
multiply | 将两个数字相乘 | multiply(6, 7) → 42 |
divide | 先除以第二 | divide(15, 3) → 5 |
power | 提升到权力 | power(2, 8) → 256 |
square_root | 计算平方根 | square_root(16) → 4 |
factorial | 计算阶乘 | factorial(5) → 120 |
calculate_percentage | 计算百分比 | calculate_percentage(200, 15) → 30 |
TypeScript SDK资源
访问TypeScript SDK文档:
# Resource URI: file://typesdk
# Returns the contents of the TypeScript SDK documentation配置:更新 DESKTOP_FILE_PATH 在……里面 server.py 指向您的文档文件:
DESKTOP_FILE_PATH = r"C:\Users\nickb\OneDrive\Desktop\typesdk.md"会议摘要提示
生成结构化的会议摘要:
# Prompt: meeting_summary
# Required parameters:
# - meeting_date: Date of the meeting
# - meeting_title: Title or purpose of the meeting
# - transcript: Meeting transcript or notes输出结构:
- 概述(目的、参与者、主题)
- 关键决策(重大决策、战略变化)
- 行动项目(下一步、责任、截止日期)
- 需要跟进(有待讨论,未来会议)
Claude桌面集成
配置
添加到您的Claude Desktop配置文件中:
视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"multi-tool-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/server/directory",
"run",
"python",
"server.py"
],
"env": {
"UV_PROJECT_ENVIRONMENT": ".venv"
}
}
}
}重新启动克劳德桌面
更新配置后,重新启动Claude Desktop以加载服务器。
发展
项目结构
mcp-multi-tool-server/
├── server.py # Main server implementation
├── templates/
│ └── Prompt.md # Meeting summary template
├── pyproject.toml # Project configuration
├── claude_desktop_config.json # Claude Desktop config example
├── README.md # This file
└── .venv/ # Virtual environment测试
python --version
uv --versionuv init .uv add "mcp[cli]"MCP检查员(推荐)
uv run mcp dev server.py直接服务器测试
python server.py测试单个组件
- 计算器工具:使用MCP检查器调用每个具有测试参数的工具
- 资源访问:检查MCP检查器中的资源选项卡
file://typesdk - 提示模板:测试
meeting_summary提示示例数据
定制
添加新的计算器工具:
@mcp.tool()
def new_calculation(param1: float, param2: float) -> float:
"""Description of the new calculation."""
return param1 + param2 # Your calculation logic添加新资源:
@mcp.resource("file://your-resource")
async def get_your_resource() -> str:
"""Description of your resource."""
# Your resource logic
return "Resource content"添加新提示:
@mcp.prompt("your_prompt")
async def your_prompt(param1: str, param2: str) -> str:
"""Description of your prompt."""
# Your prompt logic
return f"Processed: {param1}, {param2}"错误处理
服务器包括全面的错误处理:
- 除以零:返回相应的错误消息
- 负平方根:防止无效操作
- 因子限制:将计算限制在合理范围内(n≤100)
- 找不到文件:妥善处理丢失的资源文件
- 模板错误:及时报告模板问题的正确错误
配置选项
文件路径
在中更新这些路径 server.py 针对您的环境:
# TypeScript SDK documentation path
DESKTOP_FILE_PATH = r"C:\Users\YourUser\Desktop\typesdk.md"
# Prompt template path (relative to server.py)
PROMPT_TEMPLATE_PATH = os.path.join(os.path.dirname(__file__), "templates", "Prompt.md")服务器名称
更改中的服务器名称 server.py:
mcp = FastMCP("Your Server Name")故障排除
常见问题
服务器无法启动:
- 检查Python版本(需要3.12+以上)
- 验证
uv安装:uv --version - 检查虚拟环境:
uv sync
工具未出现在Claude中:
- 验证Claude Desktop配置文件位置
- 检查配置中的文件路径
- 配置更改后重新启动Claude Desktop
找不到资源文件:
- 验证
DESKTOP_FILE_PATH指向正确的文件 - 检查文件权限
- 确保文件存在且可读
提示模板错误:
- 验证
templates/Prompt.md存在 - 检查模板语法
- 确保变量占位符正确:
{{ variable_name }}
调试模式
使用调试输出运行:
uv run python server.py --debug贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改
- 添加新功能的测试
- 提交拉取请求
许可证
该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。
资源
______________________________________________________________________
使用FastMCP构建 -用于构建MCP服务器的高级Python库。
