ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ClaudeCode 测试 Ontology MCP 实战:settings.json 配置与验证全流程

ClaudeCode 测试 Ontology MCP 实战:settings.json 配置与验证全流程 1. 为什么要在 ClaudeCode 里接一个 Ontology MCPClaudeCode 本身已经能读写文件、跑命令、查 Git但它默认不知道你团队里「需求—用例—缺陷—版本」之间的业务关系。你问它「REL-1.2.0 能不能上」它只能泛泛而谈因为它看不到结构化的测试质量数据。Ontology MCP 就是补上这一环把本地测试对象模型封装成 MCP 工具让 ClaudeCode 通过标准协议查询版本风险、需求质量和回归范围。这篇聚焦本地测试场景从settings.json骨架配置入手给出可复制的 MCP 服务声明并用 TaoToken 统一 Key 通道接入模型调用。适合正在做 AI 测试助理、MCP 实战、企业 AI 落地的同学。跑完你能得到一个最小闭环ClaudeCode 调用本地 MCP 工具基于真实数据输出上线风险速览而不是编造结论。我试过把这套流程跑通后最大的感受是MCP 解决「AI 怎么连工具」Ontology 解决「AI 怎么理解业务对象」。两者缺一不可。2. TaoToken 前置统一 Key 通道与 MCP 声明在配置 MCP 之前先把模型调用通道理顺。ClaudeCode 需要访问大模型TaoToken 提供统一的 API Key 通道避免在多个服务间来回切换密钥。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。操作顺序很简单先到控制台创建 API Key再在 ClaudeCode 的配置里引用这个 Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite API Keys 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。拿到 Key 后模型对话可以在 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 验证连通性。注意API Key 只放在本地环境变量或 ClaudeCode 配置里不要提交到 Git 仓库。团队协作时用.env加.gitignore隔离。如果你后续要做长期编码或 Agent 任务可以了解 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite ClaudeCode 相关说明在 https://taotoken.net/claudecode?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeutm_campaignrewrite 。3. settings.json 骨架配置与 MCP 服务声明ClaudeCode 的 MCP 配置可以写在项目级settings.json里也可以写在用户级配置中。项目级的好处是团队共享同一套 MCP 声明换机器不用重新配。下面是一个可复制的骨架包含模型通道和 MCP 服务两部分。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-your-taotoken-key }, mcpServers: { sqa-ontology: { command: /Users/you/sqa-ontology-demo/.venv/bin/python, args: [ /Users/you/sqa-ontology-demo/mcp_server.py ], env: { ONTOLOGY_DATA: /Users/you/sqa-ontology-demo/ontology.json } } } }几个关键点command必须指向虚拟环境里的 Python 绝对路径不要用系统 Python否则 MCP SDK 可能找不到。args里放mcp_server.py的绝对路径。env里可以传 Ontology 数据文件位置方便脚本读取。如果你更习惯用命令行注册等价操作是claude mcp add --transport stdio sqa-ontology -- \ /Users/you/sqa-ontology-demo/.venv/bin/python \ /Users/you/sqa-ontology-demo/mcp_server.py注册完用claude mcp list查看状态再用claude mcp get sqa-ontology确认路径和传输方式。Status 显示Connected才算成功。MCP 服务端本身只暴露只读工具第一版不做写入避免误改真实数据。工具声明用 FastMCP 写起来很简洁from mcp.server.fastmcp import FastMCP mcp FastMCP(sqa-ontology-mcp) mcp.tool() def query_release_risk(release_id: str): return get_release_risk(release_id) mcp.tool() def query_requirement_quality(requirement_id: str): return get_requirement_quality(requirement_id) mcp.tool() def get_regression_scope(requirement_id: str): return recommend_regression_scope(requirement_id)三个工具分别对应版本风险、需求质量、回归范围。数据来源是本地ontology.json结构上把 Release、Requirement、TestCase、Bug、Module 五类对象和它们的关系显式表达出来。4. 验证请求让 ClaudeCode 调用 MCP 工具配置完成后重启 ClaudeCode在对话里直接下指令请使用 sqa-ontology MCP 的 query_release_risk 工具分析 REL-1.2.0 的上线风险。 要求 1. 必须基于 MCP 返回的数据 2. 不要编造不存在的需求、Bug 或用例 3. 输出未关闭 Bug 数量、优先级分布、模块分布 4. 输出建议回归范围 5. 不要直接给出“可以上线/不可以上线”的绝对结论。如果 MCP 生效ClaudeCode 会先调用工具拿到结构化数据后再组织语言。实测下来它能识别 REL-1.2.0 当前仍有 2 个未关闭 Bug其中 1 个 P1并给出建议回归范围。这个结论来自数据关联版本包含需求需求关联用例用例失败发现 Bug未关闭 P1 形成上线风险。验证 MCP 是否真的被调用可以看两个信号一是 ClaudeCode 输出里出现工具调用记录二是返回内容包含只有本地数据才有的字段比如具体 Bug ID、模块名、用例数。如果它只是泛泛回答「建议加强测试」说明 MCP 没生效。你还可以用模型对话页做一次通道验证https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 确认 API Key 和 Base URL 没问题再回到 ClaudeCode 排查 MCP 层。5. 本篇常见错排查错误一claude mcp list显示 Failed 或 Disconnected。先检查command路径是否存在用ls -l确认 Python 绝对路径。再手动执行python mcp_server.py如果出现 JSON-RPC EOF 报错不一定是代码问题——stdio MCP Server 本来就是给 ClaudeCode 拉起并通信的不适合在普通终端里人工交互。错误二MCP 显示 Connected但 ClaudeCode 不调用工具。检查工具名是否和指令里写的一致大小写敏感。另外确认settings.json里mcpServers的键名和claude mcp get返回的名称一致。错误三Python 版本不对导致import mcp失败。MCP Python SDK 需要 Python 3.10。系统默认 3.9 会装不上直接用 3.11 重建虚拟环境cd ~/sqa-ontology-demo python3.11 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip pip install mcp python -c import mcp; print(mcp ok)错误四API Key 无效或 Base URL 写错。确认ANTHROPIC_BASE_URL是https://taotoken.net/api不要多加路径。Key 从 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 重新生成一次排除复制遗漏。错误五Ontology 数据文件路径不对。在settings.json的env里显式传ONTOLOGY_DATA脚本里用os.environ.get读取避免相对路径在不同工作目录下失效。6. 继续接入与长期使用建议排障和接入相关的问题优先看 API Keys 和接入文档https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 与 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。验证模型连通性用模型对话页https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。如果你要把这套 MCP 用于长期编码或 Agent 任务Coding Plan 更合适https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。落地节奏建议分三步阶段一只做只读查询输出风险摘要阶段二生成测试报告草稿、Bug 草稿、回归建议人工确认后使用阶段三对低风险动作做受控写入关键动作保留确认和审计。对测试团队来说只读查询加风险汇总风险最低、价值最高也最容易建立信任。最后提醒一句MCP 工具声明里不要直接连生产库本地测试用ontology.json这类静态数据就够了。等流程跑顺再考虑接真实数据源并且始终保留人工确认环节。
返回列表