返回市场
简单MCP服务器

简单MCP服务器

作者:dataworkshop5 星标更新:2025-11-07

项目介绍

简单的MCP服务器

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

工具

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

安装

使用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工具(grepsedawktr

项目结构

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

示例输出

所有三个客户端都将:

  1. 连接到服务器
  2. 列出可用工具
  3. 测试generate_uuid(生成一个UUID v4)
  4. 测试convert_temperature(将0°C转换为华氏度 → 32.0°F)
  5. 测试text_statistics(计算样本文本中的字符数、单词数和行数)

示例:

测试1:生成UUID
结果:98f99e94-7357-4dd4-85eb-76819fad3ada

测试2:转换温度(0°C到华氏度)
结果:332.0

测试3:文本统计
结果:{"characters":47,"words":9,"lines":3}

技术细节

  • 传输方式:可流式传输的HTTP(通过HTTP的MCP协议)
  • 端点/mcp
  • 响应格式:服务器发送事件(SSE)
  • 会话管理:服务器通过Mcp-Session-Id头分配会话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依赖项包含)