dcert MCP 服务器代理
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器代理,用于将 dcert-mcp 这个 Rust 二进制通过一个 Python 服务器暴露给 MCP 客户端(如 IDE 插件、AI 助手等)。服务器本身负责与底层 Rust 二进制的通信、工具自动发现、以及传输模式(stdio 与 HTTP)的封装,遵循 MCP 的请求-响应模式,使 LLM 客户端可以以标准化方式调用各类工具。
-
主要功能点
- 资源/工具/Prompt 等 MCP 概念的代理暴露:底层工具集由 dcert-mcp 提供,代理层动态发现并转发请求。
- 两种传输模式:
- stdio 模式:为 IDE 集成(如 Claude Code、Kiro 等)提供本地控制台传输。
- HTTP 模式:通过网络暴露 MCP 服务,支持 TLS/OIDC 等安全特性(在文档中给出配置示例)。
- 自动二进制发现与下载:如果本地未提供二进制,代理会尝试从打包资源、PATH、或 GitHub 下载并校验。
- 环境变量透传与子进程隔离:通过 _build_subprocess_env 将必要的代理环境传递给底层 dcert-mcp。
- 安全性与可扩展性:通过代理模式实现前向兼容性,工具新增无需改动代理代码即可被 MCP 客户端调用。
-
安装步骤
- 依赖已有 Python 运行环境,确保 Python 能访问到仓库中的 python 包结构。
- 直接运行 Python 代码中的 MCP 服务器入口,或在需要时通过打包发布的形式部署。
-
服务器配置(MCP 客户端所需,给出准确信息,但以文本描述为主,不直接给出代码)
- server 名称:dcert
- 使用的命令类型与路径:stdio 模式下的命令为 dcert-mcp(底层 Rust 二进制)。HTTP 模式下需提供启动命令与必要参数,以便 MCP 客户端通过 HTTP 接入。
- command 与 args(示例,实际可根据部署环境调整):
- stdio 模式:
- type: stdio
- command: dcert-mcp
- args: []
- http 模式(示例):
- type: http
- command: dcert-mcp
- args: ["--mode", "http", "--addr", "0.0.0.0:8080"]
- stdio 模式:
- 注释说明:
- MCP 客户端需要知道服务器启动的具体命令以及是否需要额外的参数来开启不同传输模式。上述配置给出两种常见路径:直接通过 stdio 与底层二进制通信,以及在 HTTP 模式下暴露一个可远程访问的 JSON-RPC 接口。实际使用中,请根据运行环境和安全要求调整参数,例如开启 OIDC Bearer Token 认证、代理设置等(在文档中也提供了相关的安全和配置说明)。
- 该配置不会包含具体的敏感信息,实际部署时请将认证信息和访问控制放在安全的环境变量或配置管理中。
-
基本使用方法
- 启动方式:在 IDE/CLI 中使用 MCP 客户端指向该服务器的配置(stdio 或 HTTP),随后即可通过 MCP 进行工具调用、资源读取、以及输出渲染。
- 调用示例(对 MCP 客户端透明,详见 MCP 客户端文档):通过 JSON-RPC 调用工具名和参数,服务器将透明转发到底层 dcert-mcp 实现,并返回标准化的 JSON-RPC 响应。
- 日常运维:结合日志、RT 流量监控、以及 OpenTelemetry 配置(如需要在生产中对调用链进行追踪)进行监控与诊断。