Inspector:基于模型上下文协议的本地MCP服务器实现
使用说明(Markdown 格式)
-
项目简介 Inspector 是一个功能完整的 MCP 服务器实现,旨在为大模型客户端提供可扩展的上下文服务。服务器端负责管理资源、注册并执行工具、定义和渲染提示模板,以及提供会话与能力声明。通过 JSON-RPC 进行通信,支持多种传输协议(如标准 HTTP、SSE、WebSocket 等),实现安全、可扩展的后端上下文服务。
-
主要功能点
- 资源与模板托管:提供对资源和提示模板的读取、列举与渲染能力,便于LLM在对话中获取上下文数据。
- 工具注册与执行:支持注册外部工具并在需要时执行,能够把工具调用返回结果回传给LLM。
- Prompt 模板管理:支持定义、渲染及注入系统提示,帮助LLM在对话中的行为与风格。
- JSON-RPC 通信:遵循 MCP 的请求-响应模式,统一处理资源、工具、Prompts 等操作。
- 会话与能力声明:提供会话管理、能力披露,支持多传输协议(如标准 IO、SSE、HTTP)。
- 安全与兼容性:包含请求 来源限制、令牌校验、CSRF/跨域防护等中间件,确保安全可控的后端服务。
- 调试与工具链:提供Inspector UI、OAuth 调试、工具日志和代理能力,便于本地开发调试。
-
安装步骤
- 安装依赖并构建服务器(项目通常通过 npm/yarn 安装并运行构建产物,如 dist/server/index.js)。
- 配置环境变量:确保 CONVEX_HTTP_URL、CONVEX_URL、端口等必填项可用。
- 启动 MCP 服务器:以 production 模式运行 dist/server/index.js,或按项目脚本启动。
- 启动前请确认客户端可通过 MCP 服务器的地址进行连接,确保网络防火墙和本地端口可访问。
- 如需本地调试调优,可参考 Quick Start/Dev 场景进行本地调试。
-
服务器配置(JSON 结构说明,便于 MCP 客户端接入) 配置用于描述一个 MCP 服务器的启动与连接信息,包含以下字段:
- name: 服务器显示名称
- command: 启动命令(如 node、python 等)
- args: 启动命令参数数组
- url: 服务器的 HTTP 访问地址(若使用 HTTP/HTTPS 传输,提供 URL;若使用 STDIO,请省略)
- env: 启动时的环境变量映射
- 注释:MCP 客户端需要该信息以建立与 MCP 服务器的连接。配置信息为 JSON 结构,方便在 UI 上展示与管理;客户端本身不需要展示内部实现细节。
示例要点说明(非代码展示):
- 服务器名称示例:本地 MCP 服务
- 启动命令示例:node
- 启动参数示例:dist/server/index.js
- HTTP 方式示例:{ "name": "Local MCP Server", "url": "http://localhost:6274" }
- 其他字段可扩展用于不同部署场景(如环境变量、端口、额外参数等)。
-
基本使用方法
- 客户端接入:将 MCP 服务器信息配置为上述 JSON 结构,提供服务器地址与启动参数即可建立连接。
- 资源、工具、Prompts 的创建与调用:通过 MCP 客户端提供的接口在服务端注册资源、工具并通过 JSON-RPC 调用实现相应的读取、执行和渲染。
- 会话与安全:遵循服务端实现的安全中间件,确保 Token、Origin 验证、CSRF 保护等机制被正确应用。
- 调试与监控:利用内置调试工具、日志、Inspector UI 进行工具、资源、Prompts 的调试与日志观测。