文件
hyb-oa/docs/mcp-tools.md
T

91 行
4.0 KiB
Markdown

# MCP Tools (Project)
Generated: 2026-03-09
Current Phase: `P19+MCP-1`
Source: 官方 MCP package 文档 + `P19+MCP-1` 执行合同 + 仓库内校验脚本。当前 shell 无法使用 `codex mcp list --json`,因此本目录不以运行时 CLI 枚举作为唯一事实源。
## Enabled Servers
- `postgres`
## Candidate Servers (Not Enabled)
- `github` — github deferred;官方 `@modelcontextprotocol/server-github` 当前暴露读写混合工具集,不满足 `Read-only Tools Baseline`,因此本期不启用,也不纳入 enabled servers。
## Tools
- `postgres:query` — 执行数据库只读排障、schema 核对、账本校验与对账查询;所有查询均应运行在 `READ ONLY` 事务语义下。
## Resources
- `postgres://<host>/<table>/schema` — schema resources,用于读取表结构、字段类型与列定义,不用于业务写入。
## Server: postgres
### 用途
- 数据库只读排障
- Prisma / SQL 迁移核对
- 预算、ERP、资产、采购等账本或主数据只读核验
### 输入与能力范围
- 通过连接串连接 PostgreSQL
- 暴露 `postgres:query` 工具
- 暴露 schema resources 用于表结构读取
- 允许执行 `SELECT` / 只读检查类 SQL
### 允许操作
- 查询表结构与字段定义
- 查询计数、汇总、余额、绑定关系、Outbox 状态
- 为本地回归或审计结论提供只读证据
### 禁止操作
- 禁止 `INSERT / UPDATE / DELETE / DDL`
- 禁止修改预算、工作流、资产、采购、报销等核心业务状态
- 禁止绕过仓库内已有的本地验证命令
- 禁止把 MCP 当作应用运行时依赖
### 凭据要求
- 必须使用只读数据库账号
- 必须使用最小权限连接串
- **不提交真实密钥/连接串**,包括但不限于数据库密码、主机地址、PAT、API Token
### 示例配置
- 仓库示例文件:`.mcp.json.example`
- 仅提供 `postgres` 示例,不提供 `github` 启用段
- 占位连接串固定写为:`postgresql://<READONLY_USER>:<PASSWORD>@<HOST>:<PORT>/<DB>`
### 回滚方式
- 删除本机未跟踪的 `.mcp.json`
- 停止在本地 CLI 中启用 `postgres` MCP
- 保留 `docs/mcp-tools.md` 作为事实源与治理文档,不影响业务系统运行
## Server: github (Deferred)
### 当前不启用原因
- 官方 GitHub MCP server 当前为读写混合工具集
- 现阶段无法以官方能力保证“只读基线”
- 若贸然启用,容易突破 `P19+MCP-1` 的只读边界
### 本期固定结论
- `github` 当前不进入 enabled servers
- `github` 当前不纳入“可立即使用工具目录”
- 本期不提交 GitHub MCP 示例启用配置
### 未来启用前置条件
- 需要新的路线合同显式解锁,如 `P19+MCP-2` 或后续治理 phase
- 需要确认只读模式、最小权限 PAT 策略、审计与回滚边界
- 需要把读写操作边界从 `P19+MCP-1` 的只读基线中拆分出来单独治理
## Local Activation Checklist
1. 确认本机支持 MCP 的 CLI 环境可用;若 `codex mcp list --json` 不可用,仍以本文和 `.mcp.json.example` 为唯一仓库事实源。
2. 将 `.mcp.json.example` 复制为本机未跟踪的 `.mcp.json`。
3. 将占位连接串替换为**只读数据库账号**连接串。
4. 确认不会把 `.mcp.json`、密码或其他真实凭据提交进仓库。
5. 仅启用 `postgres`,不得自行把 `github` 提升为 enabled server。
6. 使用 MCP 后,仍必须继续执行仓库内本地验证命令与回归脚本。
## Safety Rules
- MCP 仅用于只读排障、数据库验证与审计辅助。
- MCP 不得写数据库,不得修改业务状态,不得代替测试。
- `docs/mcp-tools.md` 是 MCP 工具目录事实源;若未来配置与本文冲突,以本文与执行合同为准,先修订合同再变更配置。
- `github deferred` 在本期为硬边界,不得在实现过程中偷偷启用。
## Rollback
- 停止使用本机 `.mcp.json` 中的 `postgres` server。
- 删除本机凭据或改回占位配置。
- 保留文档、示例配置与校验脚本,作为后续 phase 的治理基线。