MCP Server 实现与示例集合(Python + 多传输模式)

使用说明

  • 项目概览
    • 该仓库提供多个 MCP 服务器实现示例,核心基于 Python 的 FastMCP 库实现,支持通过 SSE 与 Streamable HTTP 两种传输模式进行 JSON-RPC 通信,并包含用于测试的恶意示例服务器以演示安全检测场景。
    • 同时包含前端及测试用的客户端代码示例,便于理解 MCP 组件(工具 Tool、提示 Prompt、资源 Resource)的注册、查询与调用流程。
  • 主要功能点
    • 注册与管理 MCP 组件:工具、提示、资源及资源模板的注册、查询、调用等能力。
    • JSON-RPC 通信:遵循 MCP 的请求/响应格式,通过 JSON-RPC 与客户端进行交互。
    • 传输模式支持:SSE(Server-Sent Events)与 Streamable HTTP 两种传输模式,分别通过不同的传输通道实现消息传递与初始化协商。
    • 安全与测试场景:提供恶意服务器示例用于安全分析与对比测试,展示在真实环境中的潜在风险点与应对策略。
  • 运行方式
    • 运行示例服务器(推荐使用恶意示例以测试安全检测场景):
      • 进入 test_mcp_server 目录,执行以下脚本之一:
        • malicious_server.py(SSE/Streamable 均可,默认端口 18082,日志中含警示信息,适合安全检测演练)
        • 其他示例脚本如 streamable.py、api_key.py、noauth.py 等用于不同认证及传输场景。
    • 运行前提:环境需安装 Python 及所需依赖(如 fastmcp、starlette、uvicorn 等)。脚本在启动时会通过 uvicorn 启动一个 Starlette 应用来提供 MCP 服务端能力。
    • 连接 MCP 客户端:使用 MCP 客户端与服务器建立连接,支持传输模式、认证方式、组件列表的加载与调用测试。
  • 服务器配置(MCP 客户端需要的启动信息)
    • 服务器名称:malicious-mcp-sse
    • 启动命令(示例,实际以你本地环境为准):
    • 命令:python
    • 参数:["test_mcp_server/malicious_server.py", "--host", "0.0.0.0", "--port", "18082"]
    • 该配置用于 MCP 客户端在启动时描述如何启动 MCP 服务器及端口等信息,便于自动化对接与测试。
    • 服务器实际配置可以包含更多字段,如传输模式、认证、额外头信息等。下方示例给出一个简化的 JSON 配置,以便直观理解。
    • JSON 配置示例(仅用于说明,实际客户端可按自身格式解析): { "name": "malicious-mcp-sse", "command": "python", "args": ["test_mcp_server/malicious_server.py", "--host", "0.0.0.0", "--port", "18082"] } 说明:以上配置仅用于演示服务器启动方式与参数,实际 MCP 客户端在运行时通常需要更贴近 MCP 客户端实现的结构信息,例如服务端地址、传输模式、认证信息等,以上仅作为启动示例参考。
  • 基本使用方法
    • 获取组件列表:启动服务器后,使用 MCP 客户端连接并请求工具、提示、资源的列表。
    • 调用工具/读取资源/获取提示:通过 MCP 客户端向服务器提交相应的调用请求,服务器返回执行结果及安全检测信息。
    • 安全检测与防护:可结合本仓库中的安全检测组件来评估服务器端实现的潜在风险点,了解在不同调用下的响应与风险输出。
  • 进一步信息
    • 示例服务器包含多种认证/传输模式下的实现,以帮助开发者理解 MCP 服务端在实际环境中的行为与约束。
    • 如需深入查看具体实现,可参考 test_mcp_server 目录下的各个脚本及 test_mcp_server/malicious_server.py 的工具、提示、资源注册与 SSE/Streamable 传输逻辑。

服务器信息