MCP服务器基础设施

基于FastMCP的MCP协议实现,提供类型安全和自动工具发现的服务器基础设施。

  • by harrysayers7
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 harrysayers7/mcp-server-infra

使用说明

MCP服务器基础架构v2

始终在MCP服务器上使用FastMCP-正确的MCP协议实现。

架构更改

我们正在使用FastMCP从基本的HTTP端点迁移到适当的MCP协议:

  • ✅ 原生Claude桌面支持
  • ✅ 正确的JSON-RPC 2.0协议
  • ✅ 自动工具发现
  • ✅ Pydantic的类型安全

快速开始

# SSH into your server
ssh root@134.199.159.190

# Clone this repo
cd /opt
git clone https://github.com/harrysayers7/mcp-server-infra.git
cd mcp-server-infra

# Choose setup:
./scripts/setup-fastmcp.sh  # New FastMCP servers (recommended)
# OR
./scripts/setup.sh          # Original HTTP servers

FastMCP服务器

文件系统服务器(端口3001)

  • 通过FastMCP实现正确的MCP协议
  • Claude Desktop的SSE传输
  • 类型安全操作

添加新的FastMCP服务器

  1. 创建 servers/your-service/server.py:
from fastmcp import FastMCP

mcp = FastMCP("your-service")

@mcp.tool()
def your_tool(param: str) -> str:
    """Tool description"""
    return f"Result: {param}"

if __name__ == "__main__":
    mcp.run(port=3002)
  1. 创建 servers/your-service/Dockerfile:
FROM python:3.11-slim
WORKDIR /app
RUN pip install fastmcp
COPY server.py .
CMD ["python", "server.py"]
  1. 增添 docker-compose-fastmcp.yml

Claude桌面配置

对于FastMCP服务器(推荐):

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/server-sse-client",
        "http://localhost:3001/sse"
      ]
    }
  }
}

对于原始HTTP服务器:

有关HTTP适配器设置,请参阅CLAUDE.md。

为什么选择FastMCP?

  1. 正确的MCP协议 -不仅仅是HTTP端点
  2. 直接克劳德支持 -无需适配器
  3. 类型安全 -Pydantic验证
  4. 工具发现 -自动模式生成
  5. 更好的DX -装饰而不是样板

迁移路径

  1. 保持现有HTTP服务器运行
  2. 使用FastMCP添加新服务器
  3. 逐步迁移旧服务器
  4. 删除HTTP适配器层

SSH隧道(两者相同)

# From your Mac
ssh -L 3001:localhost:3001 -L 3002:localhost:3002 root@134.199.159.190

后续步骤

  1. 部署FastMCP版本: ./scripts/setup-fastmcp.sh
  2. 测试: ./scripts/test-fastmcp.sh
  3. 使用SSE客户端连接Claude Desktop
  4. 使用FastMCP构建新服务