多功能MCP服务器

一个基于FastMCP构建的综合Model Context Protocol (MCP)服务器,提供计算工具、文档资源和提示模板,适用于开发者和团队协作。

  • by NickBwalley
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nickbwalley/mcp-multitool-server

使用说明

MCP多工具服务器

使用FastMCP构建的综合模型上下文协议(MCP)服务器,提供计算器工具、文档资源和提示模板。此服务器在单个实现中演示了多种MCP功能,包括工具、资源和提示。

特性

🧮 计算器工具

  • 基本操作:加法、减法、乘法、除法
  • 高等数学:幂、平方根、阶乘计算
  • 工具函数:百分比计算
  • 错误处理:除零保护、负平方根保护、析因范围限制

📖 文档资源

  • TypeScript SDK资源:访问MCP TypeScript SDK文档
  • 动态文件读取:从可配置文件路径读取
  • 错误处理:妥善处理丢失的文件

📝 提示模板

  • 会议摘要模板:执行会议摘要生成器
  • 变量替换:动态模板变量替换
  • 结构化输出:专业会议摘要格式

快速开始

先决条件

  • Python 3.12或更高版本
  • uv 包管理器

安装

  1. 克隆存储库

    git clone <your-repo-url>
    cd mcp-multi-tool-server
    
  2. 安装依赖项

    uv sync
    
  3. 测试服务器

    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 --version
uv init .
uv add "mcp[cli]"

MCP检查员(推荐)

uv run mcp dev server.py

直接服务器测试

python server.py

测试单个组件

  1. 计算器工具:使用MCP检查器调用每个具有测试参数的工具
  2. 资源访问:检查MCP检查器中的资源选项卡 file://typesdk
  3. 提示模板:测试 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

贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

许可证

该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。

资源


使用FastMCP构建 -用于构建MCP服务器的高级Python库。