协议配置管理工具

mcpm是一个用于管理MCP(Model Context Protocol)服务器/客户端配置并生成客户端就绪配置文件的工具,专为Bun设计。

  • by zhangchi0104
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 zhangchi0104/mcpm

使用说明

mcpm — 模型上下文协议管理器

MCPM 帮助您管理 MCP(模型上下文协议)服务器/客户端配置,并通过单个命令生成客户端可用的配置文件。

专为 Bun 构建。无需 Node/npm/pnpm。

要求

  • 面包 ≥ 1.2(这里的“≥ 1.2”可能指的是面包的某种特定指标,如重量、尺寸或其他测量值,具体含义需根据上下文确定,但直接翻译为“面包 ≥ 1.2”即可,保持原样以传达原文的特定表述)

安装

bun install

快速入门

所有命令都直接通过 Bun 在 TypeScript 中执行。

  1. 添加一个客户端(例如 Cursor):
bun run src/index.ts clients:add cursor
  1. 添加一个服务器(例如,本地或http上的Context7):
# local transport (default for many servers)
bun run src/index.ts servers:add context7 --transport local

# or http transport
bun run src/index.ts servers:add context7 --transport http
  1. 生成客户端配置文件:
bun run src/index.ts sync

配置文件被写入到每个客户端预期的位置(见下文支持的客户端)。请在您希望生成配置文件的项目目录中运行这些命令。mcpm 用于读取和写入 mcpm.json 在当前工作目录中。


命令

  • servers:list

    • 列出在(某处/某配置中)定义的可用服务器 src/definitions/servers/*。
    • 示例:
      bun run src/index.ts servers:list
      
  • servers:add <name> [--transport <local|http|sse>]

    • 向(列表/配置中)添加一个服务器条目 mcpm.json验证服务器是否存在以及所选传输方式是否受支持。
    • 示例:
      bun run src/index.ts servers:add context7 --transport local
      bun run src/index.ts servers:add context7 --transport http
      
  • clients:add <name>

    • 在(列表/文件等)中添加一个客户端条目 mcpm.json。
    • 示例:
      bun run src/index.ts clients:add cursor
      
  • sync [--强制] [--模拟运行]

    • 根据配置的服务器,为每个已配置的客户端生成配置文件。
    • 示例:
      bun run src/index.ts sync
      

注:

  • 如果客户端输出文件已存在,mcpm 将拒绝覆盖它,除非实施时被强制执行。JSON 写入器会抛出异常,除非 force 被使用;CLI 可能会发展到通过传递这个标志来实现。
  • 在你希望创建客户端配置文件的项目中运行命令行界面(CLI)。

mcpm.json

mcpm 在项目根目录使用一个简单的配置文件。

{
  "servers": ["context7:local", "serena:local"],
  "clients": ["cursor"]
}
  • servers物品是 name:transport。
  • clients项目是客户端ID。

您可以手动编辑此文件,或者通过添加命令来管理它。


支持的服务器(内置)

  • 上下文7

    • 交通:
      • 本地:通过命令运行 npx -y @upstash/context7-mcp (设定 CONTEXT7_API_KEY 在环境中
      • http: (该词本身在中文中无直接对应翻译,通常作为网址协议前缀保留原样,或根据上下文可解释为“超文本传输协议(网址)”) https://mcp.context7.com/mcp (设置 CONTEXT7_API_KEY 头球
  • 塞雷娜

    • 交通:
      • 本地:通过命令运行 uvx mcp serve @upstash/serena-mcp

参见其中的定义 src/definitions/servers/ 以获取完整详情及任何后续补充通知。

支持的客户端(内置)

  • 光标

    • 输出:JSON 格式 .cursor/mcp.json
  • “claude-code”翻译成中文可以是“克劳德代码”或“克劳德程序”,具体取决于上下文和该术语所指的具体内容。如果“claude”是指某个特定的人名或项目名,那么翻译时可能会保留原名,如“克劳德(Claude)的代码”或“克劳德(Claude)项目代码”。在这里,为了简洁明了,我将其翻译为“克劳德代码”

    • 输出:JSON格式,位于 .claude/mcp.json

参见以下定义 src/definitions/clients/ 了解更多。


发展

  • 从源定义中列出服务器:

    bun run src/index.ts servers:list
    
  • 直接从TS(开发时推荐)运行任何命令:

    bun run src/index.ts <command> [...args]
    
  • 捆绑到 dist/ 使用滚降(或滚动下降):

    bun run bundle
    

项目结构亮点:

  • src/commands/*CLI 命令(servers:add, servers:list, clients:add, sync)。
  • src/definitions/servers/*内置的MCP服务器和传输工具。
  • src/definitions/clients/*内置的MCP客户端及其输出位置。
  • src/lib/mcp-client-writer/json.ts输出的编写者/作家 { mcpServers: { ... } } 为客户端提供的JSON。
  • src/config.ts加载/保存 mcpm.json 在当前工作目录中。

故障排除

  • 确保你在想要执行命令的项目中运行它们 .cursor/mcp.json 或者 .claude/mcp.json 即将创建。
  • 对于Context7,设置 CONTEXT7_API_KEY (环境或头部信息)取决于所选的传输方式。
  • 如果配置文件已存在,请删除它或重新运行一个支持的实现程序 --force。

许可证

目前尚未确定。