quality-inspection-platform/docs/mcp_install.md
qihongkun d810abdcee 初始化仓库:AI 接口自动化测试平台
纳入 FastAPI 后端、Vue 管理端、MCP 桥接与文档;通过 .gitignore 排除本地数据库与构建产物。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 15:44:50 +08:00

202 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 把本平台注册成真正的 MCP Server
本仓库已附带 `mcp_bridge.py`,它是一个标准 stdio MCP Server
对外暴露 MCP 协议JSON-RPC over stdio内部桥接到本平台的 HTTP 网关。
只要先启动平台后端,再让 Cursor / Claude Desktop / Codex CLI 启动这个桥接,
它就会被识别成一个真正的 MCP Server并自动暴露所有平台工具含跑批工作流工具
---
## 1. 启动平台后端
```bash
cd /Users/qihongkun/work/My_app/ai_auto_test
# 可选:生产/共享环境建议开启,所有 MCP 调用必须带 API Key
# export MCP_REQUIRE_API_KEY=true
uvicorn app.main:app --host 127.0.0.1 --port 8000
```
确认可访问:
- `http://127.0.0.1:8000/mcp/tools`
---
## 2. 安装到 Cursor
编辑 `~/.cursor/mcp.json`(不存在则新建),加入:
```json
{
"mcpServers": {
"quality-inspection-platform": {
"command": "python3",
"args": ["/Users/qihongkun/work/My_app/ai_auto_test/mcp_bridge.py"],
"env": {
"AI_TEST_BASE_URL": "http://127.0.0.1:8000",
"AI_TEST_API_KEY": "sto-你的API密钥"
}
}
}
}
```
- `AI_TEST_BASE_URL`:平台后端地址。
- `AI_TEST_API_KEY`**必须配置**。写操作与执行类工具(`workflow_run`、`workflow_batch_run`、`ssh_script_run` 等)无 Key 将返回 401桥接会把 Key 放到 `Authorization: Bearer` 与 invoke body 的 `api_key` 字段。
- 后端可选 `MCP_REQUIRE_API_KEY=true`:所有 MCP 工具(含只读、`GET /mcp/tools`)均要求 Key。
在平台 Web 端右上角「个人中心」生成 `sto-` 开头的 API Key。
重启 Cursor 后,在 MCP 面板里就能看到 `quality-inspection-platform`,里面会自动列出全部工具。
---
## 3. 安装到 Claude Desktop
编辑 `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"quality-inspection-platform": {
"command": "python3",
"args": ["/Users/qihongkun/work/My_app/ai_auto_test/mcp_bridge.py"],
"env": {
"AI_TEST_BASE_URL": "http://127.0.0.1:8000",
"AI_TEST_API_KEY": "sto-你的API密钥"
}
}
}
}
```
---
## 4. 安装到 Codex CLI
```bash
codex mcp add quality-inspection-platform \
--command python3 \
--args /Users/qihongkun/work/My_app/ai_auto_test/mcp_bridge.py \
--env AI_TEST_BASE_URL=http://127.0.0.1:8000 \
--env AI_TEST_API_KEY=sto-你的API密钥
```
或在 `~/.codex/config.toml` 中:
```toml
[mcp.servers.quality-inspection-platform]
command = "python3"
args = ["/Users/qihongkun/work/My_app/ai_auto_test/mcp_bridge.py"]
[mcp.servers.quality-inspection-platform.env]
AI_TEST_BASE_URL = "http://127.0.0.1:8000"
AI_TEST_API_KEY = "sto-你的API密钥"
```
---
## 5. 自检(不连客户端,先确认桥接可用)
```bash
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
'{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"catalog_snapshot","arguments":{}}}' \
| AI_TEST_API_KEY=sto-你的API密钥 python3 mcp_bridge.py
```
预期:
- `initialize` 返回 `serverInfo`
- `tools/list` 返回工具清单(应包含 `workflow_batch_*` 等)
- `tools/call` 返回 `content[0].text` 内含调用结果
---
## 6. 暴露的工具(自动转发自平台)
桥接启动时从 `GET /mcp/tools` 拉取列表,**无需改 `mcp_bridge.py`** 即可随平台升级获得新工具。
### 资源管理
- `api_upsert` — 创建/更新接口
- `mock_upsert` — 创建/更新 mock 数据
- `mcp_tool_upsert` — 创建/更新 MCP 工具配置
- `catalog_snapshot` — 全量资源快照(含 `workflow_batches`、目录树、SSH 树)
### 工作流(单次)
- `workflow_upsert` — 创建/更新工作流(支持 `loop`、`condition` + `json_path`
- `workflow_get` — 读取工作流及各节点 `last_run`
- `workflow_node_status` — 单节点最近执行状态
- `workflow_patch_json` — 增量修改工作流 JSON
- `workflow_validate` — 校验 definition JSON
- `workflow_run` / `workflow_run_node` — 执行(需 API Key
- `workflow_analyze_last_run` — 分析最近一次执行
- `workflow_run_list` / `workflow_run_get` — 执行历史
- `workflow_run_replay` / `workflow_run_loki_link` — 重放与 Loki 链接
### 跑批工作流
- `workflow_batch_create` — 创建草稿批跑任务(需 API Key
- `workflow_batch_update` — 更新 `workflow_ids` / `base_url` 等(需 API Key
- `workflow_batch_run` — 按任务配置顺序执行多个工作流
- `workflow_batch_get` — 批跑详情与关联 `workflow_runs`
- `workflow_batch_list` — 批跑任务列表
推荐顺序:`create` → `update`(绑定 `workflow_ids`)→ `run``get`。详见 `docs/mcp_quickstart.md` 示例 H。
### 目录
- `folder_ensure` / `folder_list`
- `api_move_folder` / `workflow_move_folder`
### SSH 脚本
- `ssh_tree` / `ssh_script_get`
- `ssh_script_upsert` / `ssh_script_run`
---
## 7. 工作机制
```
Cursor / Claude / Codex
|
| (MCP stdio JSON-RPC)
v
mcp_bridge.py
|
| HTTP (httpx) + Authorization / api_key
v
http://127.0.0.1:8000/mcp/invoke
```
- 桥接会在启动时调用一次 `/mcp/tools`,把工具映射成 MCP `tools/list` 返回值。
- 每次 `tools/call`,桥接会以 `{tool, arguments}` POST 到 `/mcp/invoke`
- 后端返回 `{ok, tool, data, error}`,桥接将其作为 `content[0].text` 文本返回,并按 `ok` 设置 `isError`
---
## 8. Loki 日志(可选)
若需在管理端或 API 中打开 General/Grafana Loki 探索页,在后端进程环境中配置:
- `GENERAL_LOKI_EXPLORE_URL``LOKI_EXPLORE_URL`
- 可选:`LOKI_DATASOURCE`、`LOKI_ORG_ID`、`LOKI_LABEL_SELECTOR`、`LOKI_TIME_PADDING_SECONDS`
配置后,`GET /api/workflow-runs/{run_id}/loki-link` 可为指定 HTTP 节点生成带时间窗与路径过滤的 Explore URL。
---
## 9. 维护建议
- 平台新增工具时,无需改桥接,重启 MCP 客户端即可重新拉取 `tools/list`
- 团队成员:`git pull` + `pip install -r requirements.txt` + 配置上述 MCP 入口与 `AI_TEST_API_KEY`
- **AI 能力说明(首选)****`docs/mcp_tools_for_ai.md`**
- 人类 curl 示例:**`docs/mcp_quickstart.md`**
- Codex 自动加载:**项目根 `AGENTS.md`**