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 调试、工具日志和代理能力,便于本地开发调试。
  • 安装步骤

    1. 安装依赖并构建服务器(项目通常通过 npm/yarn 安装并运行构建产物,如 dist/server/index.js)。
    2. 配置环境变量:确保 CONVEX_HTTP_URL、CONVEX_URL、端口等必填项可用。
    3. 启动 MCP 服务器:以 production 模式运行 dist/server/index.js,或按项目脚本启动。
    4. 启动前请确认客户端可通过 MCP 服务器的地址进行连接,确保网络防火墙和本地端口可访问。
    5. 如需本地调试调优,可参考 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 的调试与日志观测。

服务器信息