MCPChecker-MCPServer
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一套可运行的 MCP 服务器框架及配套测试工具,核心能力包括:在 MCP 协议下托管工具、提供资源访问、注册并执行工具调用、以及对外暴露并渲染提示模板等能力。它还包含代理、评测、扩展等相关组件,便于对接 LLM 客户端进行端到端的集成测试与验证。
-
主要功能点
- 提供一个可运行的 MCP 服务器实现,支持通过 HTTP 端点对外暴露 MCP 服务,能够注册工具并在请求时返回预设结果或执行自定义处理逻辑。
- 支持对工具的参数化描述、输入校验与结果返回(文本、JSON 或错误),并能按需记录调用历史以供断言和测试分析。
- 提供工具调用的记录能力、以及对资源读取和提示获取等能力的框架,方便集成测试时对行为进行断言。
- 集成了一个 MCP 代理,用于在 AI 客户端和 MCP 服务器之间进行记录与能力探测等操作,便于生成测试结果和分析。
- 包含一个扩展框架,允许通过 JSON-RPC 的方式加载外部扩展,执行自定义操作,并将执行结果回传给 MCP 客户端。
- 提供用于演示和测试的丰富函式库(示例、测试用例、模拟服务器等),适合在 CI 中进行 MCP 客户端与服务器的端到端验证。
-
安装步骤
- 准备环境:需要安装 Go 语言环境(建议使用 1.18+ 及以上版本)。
- 获取代码并编译:克隆仓库后在仓库根目录执行 go build ./... 即可编译所有子系统(包含 MCP 测试服务器、代理、客户端模拟等组件)。
- 运行与测试:通过 go test ./... 可以运行仓库内的单元测试与功能测试。功能测试(functional)需要合适的依赖环境(如模拟的 MCP 服务、OpenAI 助手等),测试用例多为集成场景,执行时请按测试用例中的指引准备相应的环境。
- 使用示例的测试用例需要通过测试框架自动驱动(功能测试位于 functional 目录下,包含用例和执行器),通常需要运行在特定的 CI/环境中,或将其作为集成测试在本地搭建的 MCP 客户端与服务端进行。
-
服务器配置
- MCP 客户端与 MCP 服务器之间的连接需要一个 JSON 配置,描述 MCP 服务器的名称、启动方式与地址等信息。下述为对仓库内示例配置的描述性说明(非代码展示):
- 服务器名称(server name):任意标识符,如 kubernetes。
- 启动方式(type / 方式):通常为 http(通过 HTTP 端点暴露 MCP 服务)或 stdio(通过命令行启动可执行的 MCP 服务)。
- 启动入口地址(url 或 command 与 arguments):如果使用 http 方式,需要提供可访问的 MCP 服务 URL,例如 http://localhost:8080/mcp;若使用 stdio,需要提供可执行程序路径以及需要的启动参数。
- 允许的工具开关(enableAllTools):布尔值,指示是否对所有工具一律允许,默认为 true。
- 以仓库示例为参考,常见的 MCP 配置包含 mcpServers 字段,并为每个服务器提供上述字段。在实际使用中,MCP 客户端会读取该配置并建立到 MCP 服务器的连接,启动后即可进行工具调用与资源读取等操作。
- MCP 客户端与 MCP 服务器之间的连接需要一个 JSON 配置,描述 MCP 服务器的名称、启动方式与地址等信息。下述为对仓库内示例配置的描述性说明(非代码展示):
-
基本使用方法
- 先准备好 MCP 服务器(可使用仓库提供的 Mock MCP 服务器进行本地测试)。
- 配置 MCP 客户端以指向 MCP 服务器的地址(JSON 配置示例中的 server name、command/args 或 url 等信息需要根据实际环境填写)。
- 通过 MCP 客户端发送工具调用、资源读取等请求,服务器将根据注册的工具定义进行处理并返回结果;可结合历史记录、断言、以及扩展接口进行综合测试与验证。
- 如需进行扩展与自定义行为,可以加载扩展并通过扩展的执行入口对 MCP 请求进行自定义处理,然后将结果返回给 MCP 客户端。
- 使用仓库内的测试用例(functional)可以实现端到端的自动化验证,适合在 CI 中运行以确保工具描述、可发现性与工具调用路径等符合预期。