使用说明

项目简介

MCP协议验证器仓库主要提供以下三个核心组件,旨在帮助开发者理解和验证MCP服务器的实现:

  1. 最小MCP服务器 (STDIO): 一个使用STDIO传输协议的精简MCP服务器参考实现,展示了MCP服务器基本协议操作和工具调用功能。
  2. 最小HTTP MCP服务器: 一个使用HTTP传输协议的MCP服务器参考实现,演示了JSON-RPC over HTTP、资源管理和CORS支持等特性。
  3. MCP测试框架: 一套全面的测试框架,用于验证MCP服务器是否符合MCP协议规范,支持STDIO和HTTP传输,并生成详细的合规性报告。

本仓库提供的参考实现可以作为MCP服务器开发的基础示例,测试框架则可以用于验证您自己或其他第三方的MCP服务器实现。

主要功能点

  • 资源 (Resources) 管理 (HTTP服务器): HTTP服务器示例演示了如何托管和管理资源,并通过标准MCP接口提供数据访问能力。
  • 工具 (Tools) 注册和执行 (STDIO和HTTP服务器): STDIO和HTTP服务器示例都支持工具的注册和执行,包括同步和异步工具调用,以及用于文件系统操作的实用工具。
  • Prompt 模板 (Prompts) 功能 (未明确实现,但框架支持): 虽然最小服务器没有明确实现Prompt模板功能,但测试框架具备测试Prompt相关功能的能力,表明该仓库的设计考虑了Prompt模板在MCP服务器中的地位。
  • JSON-RPC 协议通信: 所有组件均基于JSON-RPC 2.0协议进行通信,符合MCP规范。
  • STDIO 和 HTTP 传输协议支持: 仓库同时提供了基于STDIO和HTTP的服务器参考实现和测试支持。
  • 会话管理 (HTTP服务器): HTTP服务器示例包含了会话管理功能,并通过HTTP头部 'Mcp-Session-Id' 进行会话标识。
  • 全面的测试框架: 提供了基础交互测试和完整的合规性测试,以验证服务器实现的正确性。

安装步骤

由于本仓库主要为参考实现和测试框架,安装步骤主要针对希望运行参考服务器或测试框架的开发者:

  1. 克隆仓库:

    git clone https://github.com/Janix-ai/mcp-protocol-validator.git
    cd mcp-protocol-validator
  2. 创建并激活虚拟环境 (推荐):

    python3 -m venv .venv
    source .venv/bin/activate  # 或 .venv\Scripts\activate for Windows
  3. 安装依赖: 虽然仓库本身没有 'requirements.txt',但根据 'README.md' 运行 HTTP 服务器和测试框架可能需要安装 'requests' 和 'sseclient-py' (对于SSE支持的服务器)。 可以使用 pip 安装:

    pip install requests sseclient-py==1.7.2

服务器配置

MCP客户端需要配置MCP服务器的启动命令才能连接。以下是参考实现服务器的配置信息示例 (JSON 格式),您可以根据需要调整命令和参数。

{
  "serverName": "minimal-mcp-server-stdio",
  "command": "python",
  "args": ["./minimal_mcp_server/minimal_mcp_server.py"],
  "description": "Minimal MCP Server (STDIO Transport)",
  "notes": "此配置用于连接到基于STDIO传输的最小MCP服务器参考实现。"
}

或者 HTTP 服务器配置示例:

{
  "serverName": "minimal-mcp-server-http",
  "command": "python",
  "args": ["./minimal_http_server/minimal_http_server.py"],
  "description": "Minimal MCP Server (HTTP Transport)",
  "notes": "此配置用于连接到基于HTTP传输的最小MCP服务器参考实现。默认监听 localhost:8000。"
}

基本使用方法

  1. 运行参考服务器 (选择 STDIO 或 HTTP):

    • STDIO 服务器:

      python ./minimal_mcp_server/minimal_mcp_server.py
    • HTTP 服务器:

      python ./minimal_http_server/minimal_http_server.py

      HTTP 服务器默认监听 'http://localhost:8000/mcp'。

  2. 运行测试框架验证服务器合规性:

    • 针对 STDIO 服务器:

      python -m mcp_testing.scripts.compliance_report --server-command "./minimal_mcp_server/minimal_mcp_server.py" --protocol-version 2025-03-26
    • 针对 HTTP 服务器 (假设 HTTP 服务器运行在 http://localhost:8000/mcp):

      python -m mcp_testing.scripts.http_test --server-url http://localhost:8000/mcp --protocol-version 2025-03-26

    测试框架会输出详细的测试报告,包括通过和失败的测试项,以及合规性状态。

  3. 参考代码学习: 开发者可以深入研究 'minimal_mcp_server' 和 'minimal_http_server' 目录下的代码,了解MCP服务器的实现细节,并参考 'mcp_testing' 目录下的测试框架代码,学习如何验证MCP服务器的合规性。

信息

分类

开发者工具