ev-diagnosis-mcp
Server diagnosis kesalahan EV (kendaraan energi baru) MCP dengan data perbaikan bahasa Tiongkok: pencarian kode kesalahan, diagnosis terstruktur dengan penyebab berperingkat dan tingkat biaya perbaikan, masalah umum spesifik model, dan 190 entri pengalaman perbaikan langsung. Tanpa dependensi, basis pengetahuan JSON lokal, tanpa kunci API.
Dokumentasi
ev-diagnosis-mcp
新能源汽车维修诊断的 MCP 服务。给 AI 客户端补上通用模型里没有的那部分:中文新能源维修的实战经验、故障码到原因到报价的完整链路、车型高发关联。
零第三方依赖,纯本地数据,不联网、不调模型、不传数据。
English: README_EN.md
在线看真实输出样例(不用装):https://ev-intake.app.workbuddy.host/demo.html
它解决什么
通用大模型回答"比亚迪汉EV冬天续航掉得快",给的是教科书式的可能原因列表。真正值钱的是这类东西:
雨季/涉水后绝缘故障高发,多数源于连接器进水而非电池本体,优先查线束与接口。 特斯拉绝缘故障多为底部磕碰或充电口进水,分段兆欧表测量是王道。
这类判断不在通用语料里,来自维修现场。本服务把 190 条这样的经验做成可检索数据,外加 896 条标准故障码定义、146 条中文维修条目、44 条车型通病映射。
安装
npx -y ev-diagnosis-mcp # 直接用(已发布后)
node server.mjs # 本地源码
客户端配置:
{
"mcpServers": {
"ev-diagnosis": {
"command": "npx",
"args": ["-y", "ev-diagnosis-mcp"]
}
}
}
完整示例见 mcp-config.example.json。支持 MCP 协议 2024-11-05 / 2025-03-26 / 2025-06-18。
工具(7 个)
| 工具 | 干什么 | 数据 |
|---|---|---|
diagnose_full | 输车型+现象+故障码,直接出结论:原因概率排序、检查顺序(先不花钱后花钱)、报价分档、车型高发关联、车主白话 | 综合 |
lookup_fault_code | 故障码查询:精确 / 前缀 / 中文关键词。返回原因、诊断步骤、方案、工时、报价、配件、避坑 | 146 条 |
lookup_dtc | 标准故障码定义:英文原文 + 术语级中文对照 + 制造商,并提示本库是否有中文维修条目 | 896 条 |
search_experience | 老师傅实战经验检索,按关键词,不限故障码 | 190 条 |
list_model_issues | 车型通病:车型 × 故障码关联 | 44 条 |
symptom_to_codes | 现象反查故障码 | 40 条 |
kb_stats | 数据规模、每条数据集的来源与真实性等级 | — |
另提供 resources(kb://datasets、kb://provenance、kb://fault-codes、kb://dtc-index、kb://experience)和 2 个 prompts(diagnose_intake、owner_explain)。
输出长什么样
diagnose_full({"brand":"特斯拉","model":"Model 3","symptom":"涉水后无法上电,仪表报高压系统故障","extra":"昨晚暴雨,涉水深度约20cm"}) 的真实输出(节选):
## 可能原因(按概率排序,启发式估计,非统计值)
1. 高压线束破损对地 — 约 21%
2. 涉水导致连接器进水 — 约 18%
3. 电池包内部绝缘下降 — 约 15%
## 检查与处理顺序(先不花钱的,后花钱的)
1. [排查·几乎不花钱] 用绝缘检测仪测整包正/负对地绝缘阻值(标准>500Ω/V)
2. [排查·几乎不花钱] 分段断开高压部件(电池、MCU、OBC、压缩机)分别测量定位漏点
...
6. [维修·换密封件 500-2000 元] 断开维修开关MSD并验电
## 报价分档
- 换密封件:500 - 2000 元
- 换 OBC:3000 - 8000 元
- 换壳体/拆包:8000 - 20000 元
## 老师傅经验
- P0AA6:雨季/涉水后绝缘故障高发,多数源于连接器进水而非电池本体,优先查线束与接口。
- P0AA6:特斯拉绝缘故障多为底部磕碰或充电口进水,分段兆欧表测量是王道。
## 可以直接发给车主的一段话
您这车出现「涉水后无法上电,仪表报高压系统故障」,最常见的原因是高压线束破损对地,
大概 21% 的可能性(经验排序,不是统计值)。处理上会先用绝缘检测仪测整包正/负对地绝缘阻值,
这一步基本不花钱;确认不了再往下查。费用大概 500 到 20000 元,具体看坏在哪一档,修之前会跟您确认。
高压部分要断电验电后再动,我们自己不会带电操作。
数据来源与真实性
这件事必须说清楚,否则没法判断结论能信几分。用 kb_stats 随时可查:
| 数据集 | 条数 | 来源 | 等级 |
|---|---|---|---|
| 标准故障码定义 | 896 | ModelScope Never84/Vehicle_DTC_Diagnostic_Trouble_Code_Definitions,Apache 2.0 | A |
| 车型与电池类型 | 34 | 公开车型参数 | A |
| 中文故障码维修库 | 146 | 团队维修知识库(含国标与整车厂公开手册整理) | B |
| 老师傅实战经验 | 190 | 团队维修知识库沉淀 | B |
| 车型通病 | 44 | 团队维修知识库沉淀 | B |
| 现象 → 故障码 | 40 | 团队维修知识库沉淀 | B |
| 常用配件 | 56 | 公开配件信息 | B |
- A = 公开数据集或真实工单,可追溯
- B = 结构化整理,字段按行业惯例补全,未逐条实车验证
- C = 样例数据(本版不含)
diagnose_full 里的概率是启发式排序(经验与通病是否佐证、排查成本高低),不是统计概率,输出里也已标注。报价是行业通行区间,需按车型年款与实际工位校准。
导入真实工单后,条目会被标成 source=real_workorder,等级自动升为 A,并在 kb_stats 里单独计数。导入脚本:tools/import_workorders.py(CSV / Excel / JSON)。
本服务输出为维修辅助参考,不构成维修结论。高压作业须由具备资质人员按整车厂手册执行。
测试
npm test # 或 node test.mjs
37 条断言:协议握手、工具清单、7 个工具实调、resources、prompts、异常输入(未知工具 / 未知方法 / 空输入)。当前全绿。
看单次输出:node preview.mjs diagnose_full '{"brand":"比亚迪","model":"汉EV","symptom":"冬天续航掉得快"}'
发布到目录
需要 GitHub 与 npm 账号(本仓库里 GITHUB_USER 是占位符,用 python tools/prepare_release.py --user <你的GitHub用户名> 一键替换):
- 官方 MCP Registry:
mcp-publisher init→ GitHub 登录 →mcp-publisher publish。其他目录多从它同步,命名空间io.github.<用户名>/ev-diagnosis一旦确定不可改 - npm:
npm publish --access public - Glama:仓库加
mcp-servertopic,自动爬取 - mcp.so / Smithery / LobeHub / Awesome MCP Servers / Cline Marketplace:见
delivery/publish/市场提交文案.md
路线图
- 真实工单导入后重算等级,把 B 类数据逐步替换成 A 类
- 车型通病从 44 条扩到 200 条以上(靠真实工单,不靠造数)
- 鉴权与计费(现在完全开放,等有用户再做)
许可
代码 MIT。数据部分:896 条标准码来自 Apache 2.0 数据集,其余为团队知识库,允许在本服务内使用。