D101 新增:MCP双实例部署指南
This commit is contained in:
parent
18606dbb85
commit
5fc7295154
119
brain/d101-mcp-deploy-guide.md
Normal file
119
brain/d101-mcp-deploy-guide.md
Normal file
@ -0,0 +1,119 @@
|
||||
# repo-mcp-server 双实例部署指南
|
||||
|
||||
## 背景
|
||||
|
||||
问题:之之用冰朔的MCP令牌操作仓库,结果写到了冰朔的仓库。
|
||||
|
||||
根因:repo-mcp-server 只有一个实例,硬编码指向 `bingshuo/guanghulab`。
|
||||
|
||||
方案:部署两个MCP服务器实例,各自绑定不同仓库。
|
||||
|
||||
## 架构
|
||||
|
||||
```
|
||||
WorkBuddy(冰朔) → https://guanghulab.com/mcp → nginx → 3903 repo-mcp-bs (bingshuo/guanghulab)
|
||||
WorkBuddy(之之) → https://guanghulab.com/zz-mcp → nginx → 3904 repo-mcp-zz (bingshuo/zhizhi)
|
||||
```
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### 1. 先确认之之的仓库名
|
||||
|
||||
之之的仓库路径是什么?如果她有自己的Forgejo仓库,路径类似 `bingshuo/zhizhi`。
|
||||
如果她的仓库嵌套在冰朔的仓库里(比如 `bingshuo/guanghulab/zhizhi/`),
|
||||
那MCP服务器需要改为指向子目录——但Gitea API不支持子目录级别的仓库操作。
|
||||
|
||||
**需要的确认信息:**
|
||||
- 之之的Gitea用户名和仓库名
|
||||
- 之之的Gitea API Token(有写权限的)
|
||||
|
||||
### 2. 更新代码
|
||||
|
||||
```bash
|
||||
cd /opt/guanghu/guanghulab
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
`ecosystem.config.js` 已更新,包含两个MCP实例。
|
||||
|
||||
### 3. 设置环境变量
|
||||
|
||||
```bash
|
||||
# 冰朔的 Gitea Token(当前已经在用的)
|
||||
export GITEA_TOKEN_BS="当前GiteaToken"
|
||||
export REPO_MCP_SECRET_BS="当前MCP密码"
|
||||
|
||||
# 之之的 Gitea Token(需要之之在Forgejo生成自己的Token)
|
||||
export GITEA_TOKEN_ZZ="之之的Token"
|
||||
export REPO_MCP_SECRET_ZZ="之之的MCP密码"
|
||||
```
|
||||
|
||||
之之在Forgejo生成Token的路径:
|
||||
`用户设置 → 应用 → 生成访问令牌`
|
||||
权限选择:`读写仓库内容`
|
||||
|
||||
### 4. 重启PM2
|
||||
|
||||
```bash
|
||||
pm2 start ecosystem.config.js
|
||||
```
|
||||
|
||||
检查两个实例都在运行:
|
||||
```bash
|
||||
pm2 list
|
||||
# 应该看到 repo-mcp-bs 和 repo-mcp-zz 都在线
|
||||
```
|
||||
|
||||
### 5. 配置Nginx反向代理
|
||||
|
||||
在 nginx 配置中添加之之的MCP路由:
|
||||
|
||||
```nginx
|
||||
# 冰朔的MCP(已有)
|
||||
location /mcp {
|
||||
proxy_pass http://127.0.0.1:3903/mcp;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_buffering off;
|
||||
proxy_request_buffering off;
|
||||
proxy_http_version 1.1;
|
||||
}
|
||||
|
||||
# 之之的MCP(新增)
|
||||
location /zz-mcp {
|
||||
proxy_pass http://127.0.0.1:3904/mcp;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_buffering off;
|
||||
proxy_request_buffering off;
|
||||
proxy_http_version 1.1;
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
nginx -t && systemctl reload nginx
|
||||
```
|
||||
|
||||
### 6. 之之配置WorkBuddy
|
||||
|
||||
之之的 WorkBuddy mcp.json 应该指向她的专属端点:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"guanghulab": {
|
||||
"url": "https://guanghulab.com/zz-mcp",
|
||||
"headers": {
|
||||
"Authorization": "Bearer 之之的MCP密码"
|
||||
},
|
||||
"disabled": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 注意
|
||||
|
||||
- 两个实例使用同一份代码(mcp-servers/repo-mcp-server/index.js),只是环境变量不同
|
||||
- 一键升级:代码更新后 `pm2 restart all` 两个都重启
|
||||
- 之之的MCP密码和Gitea Token由之之自己保管,冰朔不共享
|
||||
Loading…
x
Reference in New Issue
Block a user