MCP工具服务器

一个基于FastMCP的简单MCP服务器,提供UUID生成、温度转换和文本统计三种实用工具。

  • by dataworkshop
  • Python
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 dataworkshop/simple-mcp-server

使用说明

简单MCP服务器

使用FastMCP构建的简单模型上下文协议(MCP)服务器,具有三个实用工具。

工具

  1. generateuuid -生成随机UUID(版本4或1)
  2. 转换器温度 -在摄氏度和华氏度之间转换温度
  3. text_统计 -计算基本文本统计信息(字符、单词、行)

安装

使用uv安装依赖项:

uv sync

用法

运行服务器

使用HTTP传输启动MCP服务器:

uv run server.py

服务器将于启动 http://localhost:8000/mcp 默认情况下。

使用FastMCP客户端进行测试

运行基于FastMCP的客户端:

uv run client_fastmcp.py

使用httpx客户端进行测试

运行纯httpx客户端(不需要MCP库):

uv run client_httpx.py

使用curl客户端进行测试

只使用curl和jq运行bash脚本:

./client_curl.sh

curl客户端要求:

  • curl (用于HTTP请求)
  • jq (用于JSON解析)
  • 标准Unix工具(grep, sed, awk, tr)

项目结构

  • server.py -带三个实用工具的MCP服务器
  • client_fastmcp.py -使用FastMCP库的客户端
  • client_httpx.py -客户端仅使用httpx进行直接HTTP请求
  • client_curl.sh -使用curl和jq的Bash脚本客户端
  • main.py -原始模板文件(未使用)

输出示例

这三个客户将:

  1. 连接到服务器
  2. 列出可用工具
  3. 测试generate_uid(生成uuid v4)
  4. 测试转换器温度(将0°C转换为华氏度→ 32.0°F)
  5. 测试文本统计(统计示例文本中的字符、单词和行)

例子:

Test 1: Generate UUID
Result: 98f99e94-7357-4dd4-85eb-76819fad3ada

Test 2: Convert temperature (0°C to Fahrenheit)
Result: 32.0

Test 3: Text statistics
Result: {"characters":47,"words":9,"lines":3}

技术细节

  • 运输:流式HTTP(基于HTTP的MCP协议)
  • 端点: /mcp
  • 响应格式:服务器发送事件(SSE)
  • 会话管理:服务器通过以下方式分配会话ID Mcp-Session-Id 头球

客户端实现

  1. FastMCP客户端 (client_fastmcp.py):

    • 使用官方MCP Python SDK
    • 自动处理SSE
    • 完全协议支持
  2. httpx客户端 (client_httpx.py):

    • 纯Python,仅依赖httpx
    • 手动JSON-RPC实现
    • 自定义SSE解析
  3. curl客户端 (client_curl.sh):

    • 使用curl和jq的Bash脚本
    • 演示原始HTTP请求
    • 不需要Python依赖项

需求

  • Python 3.13+
  • fastmcp
  • httpx(包含在fastmcp依赖项中)