# 铸渊 MCP Server · guanghulab-mcp-server > 让 WorkBuddy / CodeBuddy 等编程 AI 通过 MCP 协议直接操作仓库,无需每次手动发送 Gitea 令牌。 ## 为什么需要这个 | 痛点 | 解决方案 | |------|---------| | 每次新对话要手动发令牌 | MCP Server 存储令牌,AI 端只需一个连接密钥 | | 换号后要重新发令牌 | 重新连接 MCP 即可,密钥不变 | | 令牌暴露在聊天记录中 | 令牌只在服务器端,聊天中只有 MCP 连接密钥 | | AI 不认识仓库结构 | MCP 工具自动提供仓库操作能力 | ## 架构 ``` WorkBuddy (编程 AI) │ │ MCP 协议 (HTTPS + Bearer Token) ▼ Nginx (guanghulab.com/mcp) │ │ 反向代理 ▼ 铸渊 MCP Server (127.0.0.1:8083) │ ├── Gitea API ──→ 代码仓库操作 ├── Git CLI ────→ 本地仓库同步 ├── CVM Script ─→ 服务器开关机 └── Vault API ──→ 密钥管理 ``` ## 提供的 MCP 工具 ### 仓库操作 | 工具 | 说明 | |------|------| | `repo_status` | 查看仓库当前状态 | | `repo_read_file` | 读取文件内容 | | `repo_write_file` | 写入/更新文件 | | `repo_delete_file` | 删除文件 | | `repo_list_files` | 列出目录内容 | | `repo_search_code` | 搜索代码 | ### Git 操作 | 工具 | 说明 | |------|------| | `git_branch_list` | 列出所有分支 | | `git_branch_create` | 创建新分支 | | `git_pull` | 拉取最新代码 | | `git_push_local` | 推送本地更改 | | `git_log` | 查看提交历史 | ### Issue / PR | 工具 | 说明 | |------|------| | `issue_list` | 列出 Issue | | `issue_create` | 创建 Issue | | `pr_list` | 列出 Pull Request | | `pr_create` | 创建 Pull Request | ### 工作流 / 服务器 | 工具 | 说明 | |------|------| | `workflow_list` | 列出工作流运行记录 | | `workflow_trigger` | 触发工作流 | | `cvm_power` | CVM 开关机 | | `server_health` | 服务器健康状态 | ### 密钥 / 大脑 | 工具 | 说明 | |------|------| | `secrets_list` | 列出 Forgejo Secrets | | `vault_status` | Vault 状态 | | `brain_status` | 铸渊大脑状态 | | `brain_update_temporal` | 更新时间核心 | ## 部署 ### 1. 安装依赖 ```bash cd /data/guanghulab/repo/server/mcp-server npm install --production ``` ### 2. 配置 Gitea 令牌 编辑 `ecosystem.config.js`,填入 GITEA_TOKEN: ```bash # 从 Vault 获取令牌(如果已存入 Vault) curl http://127.0.0.1:8080/internal/fetch/ZY_REPO_TOKEN # 或直接在 ecosystem.config.js 的 env.GITEA_TOKEN 中设置 ``` ### 3. Nginx 配置 在 Nginx 的 server 块中添加: ```nginx # MCP Server 端点 location /mcp { proxy_pass http://127.0.0.1:8083; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # SSE 支持 proxy_set_header Connection ''; proxy_buffering off; proxy_cache off; proxy_read_timeout 86400s; proxy_send_timeout 86400s; } ``` ### 4. 启动服务 ```bash pm2 start ecosystem.config.js pm2 save ``` ### 5. 获取连接密钥 ```bash cat /data/guanghulab/mcp-server/.access-key ``` ## WorkBuddy 连接配置 在 WorkBuddy 的 MCP 工具配置中添加: ```json { "mcpServers": { "guanghulab": { "url": "https://guanghulab.com/mcp", "headers": { "Authorization": "Bearer <你的访问密钥>" } } } } ``` 换号时,只需在新账号中重新添加这个 MCP 连接配置即可。 ## 安全 - **Gitea 令牌**:仅存储在服务器端,永不暴露给客户端 - **MCP 访问密钥**:AES-256 级别的随机密钥,存储在 `/data/guanghulab/mcp-server/.access-key` (chmod 600) - **Nginx 层**:HTTPS 加密传输 - **本机绑定**:MCP Server 只监听 127.0.0.1:8083,通过 Nginx 代理暴露 - **无状态**:MCP Server 不存储 AI 对话内容 --- *铸渊 · ICE-GL-ZY001 · TCS-0002∞ · 国作登字-2026-A-00037559*