项目简介

MCP Forge Python是一个高性能、可投入生产使用的模型上下文协议(MCP)服务器模板。它基于Python语言构建,旨在为大型语言模型(LLM)应用提供标准化的后端服务,负责管理上下文资源、执行外部工具以及渲染Prompt模板。项目内置了OAuth 2.0认证和JWT验证机制,支持多种部署选项,是构建安全、可扩展AI应用后端的理想选择。

主要功能点

  • MCP协议支持: 全面实现了MCP协议,包括对资源(Resources)、工具(Tools)和Prompt模板(Prompts)的托管与管理。
  • 多种通信方式: 支持标准输入/输出(Stdio)通信,适用于本地AI客户端;也支持基于HTTP的服务器发送事件(SSE),用于实时Web通信。
  • 内置工具: 提供了'hello_world'(个性化问候)和'whoami'(基于JWT的用户信息展示)等示例工具。
  • 安全与认证: 集成了OAuth 2.0授权服务器和受保护资源元数据发现,支持JWT本地验证(通过JWKS URI和CEL表达式)或委托外部代理验证,并具备访问日志记录和URI白名单等安全措施。
  • 灵活配置: 通过TOML文件进行配置,可定制服务器设置、中间件行为及OAuth集成。
  • 生产部署: 提供完整的Docker容器化和Kubernetes Helm Chart,简化云环境部署。

安装步骤

  1. 系统要求: 确保已安装 Python >= 3.10。建议安装 'uv' 作为依赖管理工具(安装方式请参考 astral.sh/uv)。
  2. 克隆仓库:
    git clone https://github.com/bercianor/mcp-forge-python.git
    cd mcp-forge-python
  3. 安装依赖:
    uv sync
    uv pip install .

服务器配置 (供MCP客户端连接使用)

MCP客户端需要配置服务器的启动方式才能建立连接。以下是MCP Forge Python服务器的两种常用启动配置信息,请根据您的MCP客户端的配置界面,填入对应参数:

{
  "name": "MCP-Forge-Python",
  "description": "基于Python实现的MCP服务器,提供上下文管理、工具调用和Prompt交互功能。",
  "commands": [
    {
      "name": "HTTP/SSE 模式",
      "description": "通过HTTP和SSE协议与MCP服务器通信,适用于远程或Web客户端。",
      "command": "uv",
      "args": ["run", "http"],
      "url": "http://127.0.0.1:8080/mcp",
      "capabilities": {
        "resources": { "enabled": true },
        "tools": { "enabled": true },
        "prompts": { "enabled": true }
      }
    },
    {
      "name": "Stdio 模式",
      "description": "通过标准输入/输出与MCP服务器通信,适用于本地AI客户端(如Claude Desktop)。",
      "command": "uv",
      "args": ["run", "stdio"],
      "capabilities": {
        "resources": { "enabled": true },
        "tools": { "enabled": true },
        "prompts": { "enabled": true }
      }
    }
  ]
}

配置参数说明:

  • 'name': 服务器的名称,此处为“MCP-Forge-Python”。
  • 'description': 服务器的简要描述。
  • 'commands': 包含不同的服务器启动命令配置。
    • 'name': 该启动命令的名称。
    • 'description': 该启动命令的详细说明。
    • 'command': 用于启动MCP服务器进程的可执行文件,例如“uv”。
    • 'args': 传递给'command'的参数列表,例如'["run", "http"]'用于HTTP/SSE模式,'["run", "stdio"]'用于Stdio模式。
    • 'url': (仅适用于HTTP/SSE模式)MCP服务器监听的URL路径,客户端将通过此URL进行通信。
    • 'capabilities': 服务器支持的功能声明。
      • 'resources.enabled': 指示服务器是否支持资源管理。
      • 'tools.enabled': 指示服务器是否支持工具调用。
      • 'prompts.enabled': 指示服务器是否支持Prompt模板。

基本使用方法

  1. 启动服务器:
    • HTTP/SSE 模式: 在项目根目录下运行 'uv run http'。服务器将监听 'http://127.0.0.1:8080',MCP协议端点为 'http://127.0.0.1:8080/mcp'。
    • Stdio 模式: 在项目根目录下运行 'uv run stdio'。服务器将通过标准输入输出进行通信。
  2. 与LLM客户端集成: 配置您的LLM客户端(如Claude Desktop或其他支持MCP协议的客户端),使用上述“服务器配置”中提供的相应'command'、'args'和'url'信息连接到此MCP服务器。连接成功后,LLM客户端即可通过此服务器访问上下文信息和调用'hello_world'、'whoami'等工具。

信息

分类

AI与计算