Skip to content

Commit 8cfcdc5

Browse files
committed
Add Chinese doc
1 parent bcfc279 commit 8cfcdc5

File tree

2 files changed

+295
-1
lines changed

2 files changed

+295
-1
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
![PyPI - Version](https://img.shields.io/pypi/v/mcpm)
22
![GitHub Release](https://img.shields.io/github/v/release/pathintegral-institute/mcpm.sh)
33

4+
English | [简体中文](README.zh-CN.md)
5+
46
```
57
███╗ ███╗ ██████╗██████╗ ███╗ ███╗
68
████╗ ████║██╔════╝██╔══██╗████╗ ████║
@@ -16,7 +18,7 @@ Built with ❤️ by Path Integral Institute
1618

1719
# 🌟 MCPM - Model Context Protocol Manager
1820

19-
MCPM is a Homebrew-like service and command-line interface for managing Model Context Protocol (MCP) servers. It simplifies managing server configurations across various supported clients, allows grouping servers into profiles, helps discover new servers via a registry, and includes a powerful router that aggregates multiple MCP servers behind a single endpoint with shared sessions.
21+
MCPM is an open source service and a CLI package management tool for MCP servers. It simplifies managing server configurations across various supported clients, allows grouping servers into profiles, helps discover new servers via a registry, and includes a powerful router that aggregates multiple MCP servers behind a single endpoint with shared sessions.
2022

2123
## 🤝 Community Contributions
2224

README.zh-CN.md

Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
![PyPI - Version](https://img.shields.io/pypi/v/mcpm)
2+
![GitHub Release](https://img.shields.io/github/v/release/pathintegral-institute/mcpm.sh)
3+
4+
[English](README.md) | 简体中文
5+
6+
```
7+
███╗ ███╗ ██████╗██████╗ ███╗ ███╗
8+
████╗ ████║██╔════╝██╔══██╗████╗ ████║
9+
██╔████╔██║██║ ██████╔╝██╔████╔██║
10+
██║╚██╔╝██║██║ ██╔═══╝ ██║╚██╔╝██║
11+
██║ ╚═╝ ██║╚██████╗██║ ██║ ╚═╝ ██║
12+
╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝
13+
14+
MCP Manager
15+
Open Source. Forever Free.
16+
Built with ❤️ by Path Integral Institute
17+
```
18+
19+
# 🌟 MCPM - Model Context Protocol Manager
20+
21+
MCPM 是一个开源的服务和命令行界面(CLI),用于管理模型上下文协议(MCP)服务器。它简化了跨各种支持的客户端管理服务器配置、允许将服务器分组到配置文件中、通过注册表帮助发现新服务器,并包含一个强大的路由器,该路由器在单个端点后聚合多个 MCP 服务器并共享会话。
22+
23+
## 🤝 社区贡献
24+
25+
> 💡 **壮大 MCP 生态系统!** 我们欢迎对我们的 [MCP 注册表](mcp-registry/README.md) 进行贡献。添加你自己的服务器,改进文档,或建议功能。开源在社区参与下蓬勃发展!
26+
27+
## 🚀 快速安装
28+
29+
选择您喜欢的安装方式:
30+
31+
### 🍺 Homebrew
32+
33+
```bash
34+
brew install mcpm
35+
```
36+
37+
### 📦 pipx(推荐用于 Python 工具)
38+
39+
```bash
40+
pipx install mcpm
41+
```
42+
43+
### 🐍 pip
44+
45+
```bash
46+
pip install mcpm
47+
```
48+
49+
### 🔄 Shell 脚本(一行命令)
50+
51+
```bash
52+
curl -sSL https://mcpm.sh/install | bash
53+
```
54+
55+
## 🔎 概述
56+
57+
MCPM 简化了 MCP 服务器的安装、配置和管理,以及它们在不同应用程序(客户端)中的配置。主要功能包括:
58+
59+
- ✨ 轻松添加和删除支持的客户端的 MCP 服务器配置。
60+
- 📋 使用配置文件进行集中管理:将服务器配置分组并轻松激活/停用它们。
61+
- 🔍 通过中央注册表发现可用的 MCP 服务器。
62+
- 🔌 MCPM 路由器,用于在单个端点后聚合多个 MCP 服务器并共享会话。
63+
- 💻 用于所有管理任务的命令行界面 (CLI)。
64+
65+
有关共享服务器会话和 MCPM 路由器等更多功能,请参阅 [高级功能](docs/advanced_features.md)
66+
67+
## 🖥️ 支持的 MCP 客户端
68+
69+
MCPM 将支持为以下客户端管理 MCP 服务器:
70+
71+
- 🤖 Claude Desktop (Anthropic)
72+
- ⌨️ Cursor
73+
- 🏄 Windsurf
74+
- 📝 Cline
75+
- ➡️ Continue
76+
- 🦢 Goose
77+
- 🔥 5ire
78+
- 🦘 Roo Code
79+
- ✨ 更多客户端即将推出...
80+
81+
## 🔥 命令行界面 (CLI)
82+
83+
MCPM 提供了一个使用 Python 的 Click 框架构建的全面 CLI。命令通常在当前**活动客户端**上操作。您可以使用 `mcpm client` 查看/设置活动客户端。许多命令还支持作用域修饰符,如 `@CLIENT_NAME/SERVER_NAME``#PROFILE_NAME/SERVER_NAME`,以直接针对特定客户端或配置文件。
84+
85+
以下是按功能分组的可用命令:
86+
87+
### ℹ️ 一般
88+
89+
```bash
90+
mcpm --help # 显示帮助信息和可用命令
91+
mcpm --version # 显示 MCPM 的当前版本
92+
```
93+
94+
### 🖥️ 客户端管理 (`client`)
95+
96+
```bash
97+
mcpm client ls # 列出所有支持的 MCP 客户端,检测已安装的客户端,并显示活动客户端
98+
mcpm client set CLIENT # 为后续命令设置活动客户端
99+
mcpm client edit # 在外部编辑器中打开活动客户端的 MCP 配置文件
100+
```
101+
102+
### 🌐 服务器管理 (`server`)
103+
104+
这些命令在活动客户端上操作,除非提供了特定作用域(`@CLIENT``#PROFILE`)。
105+
106+
```bash
107+
# 🔍 搜索和添加
108+
mcpm search [QUERY] # 在 MCP 注册表中搜索可用服务器
109+
mcpm add SERVER_URL # 添加 MCP 服务器配置(从 URL 或注册表名称)
110+
mcpm add SERVER_URL --alias ALIAS # 添加并使用自定义别名
111+
112+
# 📋 列出和删除
113+
mcpm ls # 列出活动客户端/配置文件的服务器配置
114+
mcpm rm SERVER_NAME # 删除服务器配置
115+
116+
# 🔄 修改和组织
117+
mcpm cp SOURCE TARGET # 复制服务器配置(例如,@client1/serverA #profileB)
118+
mcpm mv SOURCE TARGET # 移动服务器配置(例如,#profileA/serverX @client2)
119+
120+
# 📦 暂存(临时禁用/启用)
121+
mcpm stash SERVER_NAME # 临时禁用/存储服务器配置
122+
mcpm pop [SERVER_NAME] # 恢复最后暂存的服务器,或按名称恢复特定服务器
123+
```
124+
125+
### 📂 配置文件管理 (`profile`)
126+
127+
配置文件是服务器配置的命名集合。它们允许您轻松切换不同的 MCP 服务器集。例如,您可能有一个 `work` 配置文件和一个 `personal` 配置文件,每个都包含不同的服务器。或者,您可能有一个 `production` 配置文件和一个 `development` 配置文件,每个都包含同一服务器的不同配置。
128+
129+
当前*活动*配置文件的服务器通常由 MCPM 路由器等功能使用。使用 `mcpm activate` 设置活动配置文件。
130+
131+
```bash
132+
# 🔄 配置文件生命周期
133+
mcpm profile ls # 列出所有可用的 MCPM 配置文件
134+
mcpm profile add PROFILE_NAME # 添加新的空配置文件
135+
mcpm profile rm PROFILE_NAME # 删除配置文件(不删除其中的服务器)
136+
mcpm profile rename OLD_NAME NEW_NAME # 重命名配置文件
137+
138+
# ✅ 激活配置文件
139+
mcpm activate PROFILE_NAME # 激活配置文件,将其服务器应用于活动客户端
140+
mcpm deactivate # 为活动客户端停用当前配置文件
141+
```
142+
143+
### 🔌 路由器管理 (`router`)
144+
145+
MCPM 路由器作为后台守护进程运行,充当稳定端点(例如 `http://localhost:6276`),根据当前**活动配置文件**智能地将传入的 MCP 请求路由到适当的服务器。
146+
147+
这允许您通过切换配置文件(使用 `mcpm activate`)来更改底层服务器,而无需重新配置客户端应用程序。它们可以始终指向 MCPM 路由器的地址。
148+
149+
路由器还维护与 MCP 服务器的持久连接,使多个客户端能够共享这些服务器会话。这消除了为每个客户端启动单独服务器实例的需要,显著减少资源使用和启动时间。在 [高级功能](docs/advanced_features.md) 中了解有关这些高级功能的更多信息。
150+
151+
有关路由器实现和命名空间的更多技术细节,请参阅 [`docs/router_tech_design.md`](docs/router_tech_design.md)
152+
153+
```bash
154+
mcpm router status # 检查路由器守护进程是否正在运行
155+
mcpm router on # 启动 MCP 路由器守护进程
156+
mcpm router off # 停止 MCP 路由器守护进程
157+
mcpm set --host HOST --port PORT # 设置 MCP 路由器守护进程的主机和端口
158+
```
159+
160+
### 🛠️ 实用工具 (`util`)
161+
162+
```bash
163+
mcpm config clear-cache # 清除 MCPM 的注册表缓存。缓存默认每 1 小时刷新一次。
164+
mcpm inspector # 启动 MCPM 检查器 UI 以检查服务器配置
165+
```
166+
167+
### 📚 注册表
168+
169+
MCP 注册表是可使用 MCPM 安装的可用 MCP 服务器的中央存储库。注册表位于 [mcpm.sh/registry](https://mcpm.sh/registry)
170+
171+
## 🗺️ 路线图
172+
173+
- [x] 登陆页面设置 (`mcpm.sh`)
174+
- [x] 核心 CLI 基础 (Click)
175+
- [x] 客户端检测和管理 (`mcpm client`)
176+
- [x] 基本服务器管理 (`mcpm add`, `mcpm ls`, `mcpm rm`)
177+
- [x] 注册表集成 (`mcpm search`, 按名称添加)
178+
- [x] 路由器功能 (`mcpm router`)
179+
- [x] MCP 配置文件 (`mcpm profile`, `mcpm activate/deactivate`)
180+
- [x] 服务器复制/移动 (`mcpm cp`, `mcpm mv`)
181+
- [x] 服务器暂存 (`mcpm stash`, `mcpm pop`)
182+
- [ ] MCPM 路由器的 MCP 服务器访问监控(仅限本地,绝对不会有数据离开本地机器)
183+
- [ ] 通过 STDIO 的 MCPM 路由器(相同的强大功能集,具有配置文件和监控,但单客户端/租户)
184+
- [ ] MCPM 路由器的 MCP 服务器(实验性,允许 MCP 客户端动态切换配置文件,从注册表建议新的 MCP 服务器等)
185+
- [ ] 服务器端管理功能(超出配置管理)
186+
- [ ] 附加客户端支持(扩展注册表)
187+
188+
## 👨‍💻 开发
189+
190+
此存储库包含 MCP Manager 的 CLI 和服务组件,使用 Python 和 Click 按照现代包开发实践构建。
191+
192+
### 📋 开发要求
193+
194+
- 🐍 Python 3.10+
195+
- 🚀 uv(用于虚拟环境和依赖管理)
196+
- 🖱️ Click 框架用于 CLI
197+
- ✨ Rich 用于增强控制台输出
198+
- 🌐 Requests 用于 API 交互
199+
200+
### 📁 项目结构
201+
202+
该项目遵循现代基于 src 的布局:
203+
204+
```
205+
mcpm.sh/
206+
├── src/ # 源包目录
207+
│ └── mcpm/ # 主包代码
208+
├── tests/ # 测试目录
209+
├── test_cli.py # 开发 CLI 运行器
210+
├── pyproject.toml # 项目配置
211+
├── pages/ # 网站内容
212+
│ └── registry/ # 注册表网站
213+
├── mcp-registry/ # MCP 注册表数据
214+
└── README.md # 文档
215+
```
216+
217+
### 🚀 开发设置
218+
219+
1. 克隆存储库
220+
```
221+
git clone https://github.com/pathintegral-institute/mcpm.sh.git
222+
cd mcpm.sh
223+
```
224+
225+
2. 使用 uv 设置虚拟环境
226+
```
227+
uv venv --seed
228+
source .venv/bin/activate # 在 Unix/Mac 上
229+
```
230+
231+
3. 以开发模式安装依赖项
232+
```
233+
uv pip install -e .
234+
```
235+
236+
4. 在开发期间直接运行 CLI
237+
```
238+
# 使用已安装的包
239+
mcpm --help
240+
241+
# 或使用开发脚本
242+
./test_cli.py --help
243+
```
244+
245+
5. 运行测试
246+
```
247+
pytest tests/
248+
```
249+
250+
### ✅ 最佳实践
251+
252+
- 📁 使用基于 src 的目录结构以防止导入混淆
253+
- 🔧 使用 `uv pip install -e .` 进行可编辑安装开发
254+
- 🧩 在 `src/mcpm/commands/` 目录中保持命令模块化
255+
- 🧪 在 `tests/` 目录中为新功能添加测试
256+
- 💻 使用 `test_cli.py` 脚本进行快速开发测试
257+
258+
259+
### 🔢 版本管理
260+
261+
MCP 使用单一事实来源模式进行版本管理,以确保所有组件之间的一致性。
262+
263+
#### 🏷️ 版本结构
264+
265+
- 📍 规范版本在项目根目录的 `version.py` 中定义
266+
- 📥 `src/mcpm/__init__.py` 导入此版本
267+
- 📄 `pyproject.toml` 使用动态版本控制从 `version.py` 读取
268+
- 🏷️ Git 标签使用相同的版本号,前缀为 'v'(例如,v1.0.0)
269+
270+
#### 🔄 更新版本
271+
272+
发布新版本时:
273+
274+
1. 使用提供的版本升级脚本
275+
```
276+
./bump_version.sh NEW_VERSION
277+
# 示例:./bump_version.sh 1.1.0
278+
```
279+
280+
2. 推送更改和标签
281+
```
282+
git push && git push --tags
283+
```
284+
285+
3. 创建与新版本匹配的 GitHub 发布
286+
287+
此过程确保版本在所有地方保持一致:代码、包元数据和 git 标签。
288+
PyPI 发布由 CI/CD 管道处理,将自动触发。
289+
290+
## 📜 许可证
291+
292+
MIT

0 commit comments

Comments
 (0)