ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

codegraph 跑 MCP 给 Claude Code 省 Token:Key 用 TaoToken

codegraph 跑 MCP 给 Claude Code 省 Token:Key 用 TaoToken codegraph 以 MCP 形式挂进 Claude Code把项目脑图存进 SQLite用 codegraph_trace 查调用链替代 grep 全量扫描模型请求那侧走 TaoToken 统一通道Key 从 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 创建。这两件事看着不相干其实是一条流水线前者压掉「去哪儿找代码」的成本后者管住「用哪个模型回话」的账。很多人只换了模型通道检索还是老样子token 该烧还是烧也有人把 MCP 装上了模型却还挂在默认通道上跑两条调用链就被额度卡住。这篇按「先建索引 → 再挂 MCP → 最后切模型通道」的顺序把两条线一次捋顺配置都能直接复制。1. grep 全量扫描才是 Claude Code 烧 Token 的真凶1.1 一句「谁调用了这个函数」背后的读盘量在没挂任何检索类 MCP 的情况下你让 Claude Code 找一条调用链它的默认动作是退回 ripgrep按关键词把整个仓库扫一遍命中的文件连同上下文一起塞进上下文窗口。一个小仓库无所谓几万个文件的工程就完全是另一回事——同一次提问里命中的片段可能有几十处模型要逐段读、逐段判断哪段才是真正相关的调用点。这些内容全都是真实计费的输入 token而且大部分读完之后并不会被用上属于纯浪费。更麻烦的是这个动作会重复。你接着问「那这个函数的返回值在哪儿被改过」它不会记得刚才扫过的文件结构而是重新扫一遍。一轮改 bug 下来同一个目录可能被读了五遍。费钱只是其中一个后果另一个后果是慢——每次都在等它读盘和判断交互体感就下来了。1.2 codegraph 换了个思路先建图再查图codegraph 的做法是把「读文件」这一步提前做掉。它扫描一遍项目把文件、类、函数、调用关系抽出来存进一个本地 SQLite 文件。之后你再问调用链模型不是去遍历源码目录而是通过 MCP 调用 codegraph 提供的工具在图上做一次查询直接拿到结构化的结果。差别很直观grep 是「我不知道在哪儿所以全都翻一遍」codegraph 是「我先有一张地图直接按图索骥」。前者每次提问都全量扫描后者只在索引过期的时候重新建一次。索引文件在本地不涉及把源码传到任何远端这一点对私有仓库很重要。2. 装 codegraph把项目脑图落进 SQLite2.1 环境准备与安装准备好 Node 18 以上的运行时和 npm然后全局装。不同版本的 codegraph 子命令可能略有差异装完之后建议先跑一次帮助命令确认一下当前版本的参数名别照着旧博客硬抄。node -v npm install -g codegraph codegraph --help装完之后你会在 PATH 里拿到一个 codegraph 可执行文件下一步挂 MCP 的时候Claude Code 就是靠这个命令拉起服务进程的。如果codegraph --help报 command not found先检查 npm 的全局 bin 目录有没有在 PATH 里这一步没通后面 MCP 一定起不来。2.2 跑一次索引确认 SQLite 文件真的生成了进到你的项目根目录跑一次索引。输出路径建议统一放在仓库下的.codegraph/目录里方便后面写配置的时候引用相对路径。cd ~/work/your-repo codegraph index --root . --out .codegraph/graph.db ls -lh .codegraph/graph.db看到graph.db有实际大小几百 KB 到几十 MB 都正常取决于项目规模说明索引这一步成了。索引耗时跟项目大小相关大仓库第一次可能要等几分钟跑完之后建议把它加进.gitignore别把二进制文件提交上去。之后代码有大改动再重跑一次索引刷新就行不用每次都建。3. 用 MCP 把 codegraph 挂到 Claude Code3.1 用 claude mcp add 一条命令注册Claude Code 自带 MCP 管理命令最省事的方式是直接 add 一个 stdio 类型的 server。注意--后面那一段是真正拉起的进程和参数别写错。claude mcp add codegraph -- codegraph mcp --db ./.codegraph/graph.db claude mcp listclaude mcp list里能看到 codegraph 这一项状态是已连接就说明服务进程能被正常拉起。如果列表里显示失败通常是命令路径不对或者 db 文件路径写错先把这两点排掉。3.2 团队共享时用 .mcp.json 更稳如果这套配置要给整个团队用写在项目根目录的.mcp.json里更好跟着仓库走每个人拉下来就能用。字段格式是固定的type写stdio命令和参数分开填{ mcpServers: { codegraph: { type: stdio, command: codegraph, args: [mcp, --db, ./.codegraph/graph.db], env: {} } } }把这份文件提交进仓库之前确认里面没有混进任何私密信息——MCP 这一段本来也不该放 KeyKey 是模型通道那边的事两码事。3.3 codegraph_trace 和 codegraph_explore 的分工挂上之后Claude Code 会多出几个工具最常用的是两个。codegraph_trace用来查调用链给一个函数名它返回这个函数被谁调用、又调用了谁直接把上下游关系摆出来。codegraph_explore用来批量取源码你要看某个模块里几个相关函数的实现一次把它们的源码取回来而不是让模型一个个文件去 open。这两个工具刚好覆盖了最常见的两类提问。前者对应「改这个函数会不会影响别处」后者对应「这几段逻辑我要一起看」。用它们替代裸 grep 之后同一轮对话里被读进来的无关文件会大幅减少这才是省 token 的来源。4. Claude Code 的模型通道切到 TaoToken4.1 先去把 API Key 建出来检索这条线搞定之后模型请求这条线还挂在原来的地方。打开 TaoToken 注册进控制台创建一个 API Key复制下来后面配置里统一用占位符YOUR_API_KEY表示。顺手在模型广场看一眼当前可用的模型 ID先记下来——这个东西不要凭印象写写错了 Claude Code 会直接报模型不存在。4.2 settings.json 里把三件套写死Claude Code 的用户级配置在~/.claude/settings.json在env字段里写三个变量就够了。注意 Base URL 末尾不要带/v1这一点跟很多 OpenAI 兼容配置的习惯不一样抄错了就会 404。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_MODEL_ID } }YOUR_MODEL_ID以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 模型广场当时列表为准别照着旧截图填。改完之后重开一个终端让 Claude Code 重新读一遍配置。4.3 临时会话用环境变量更灵活不想动全局配置也可以只在一个终端会话里导出环境变量关掉终端就失效。适合临时切到别的模型试试效果export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELYOUR_MODEL_ID claude一旦同时存在全局配置和会话变量以会话里的为准。排查「为什么改了没生效」的时候先 echo 一下这几个变量能省不少时间。5. 验证MCP 有没有生效这轮调用有没有记上账5.1 让 Claude Code 主动调一次 codegraph_trace重启 Claude Code在项目目录里开一个新会话直接问一个具体的调用关系比如「谁调用了 handleSubmit」。如果 MCP 挂对了你会看到它在回复里调用 codegraph 的工具而不是噼里啪啦读一堆文件。这一步是整个配置里最关键的验证点——工具没被调用说明 MCP 那一段没生效跟模型通道没关系别在 Key 上瞎折腾。5.2 回控制台对一下这次调用的用量模型那边有没有真正走 TaoToken去控制台看用量最直接。发一条测试消息回到 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的用量页面看有没有新增记录。有记录说明ANTHROPIC_BASE_URL和 Key 都填对了没记录但 Claude Code 又能正常回话那多半是还在用别的通道。6. 排障MCP 起不来、401、模型名填错6.1 MCP 侧工具列表里没有 codegraph最常见的三种情况一是codegraph命令不在 PATHClaude Code 拉不起进程二是--db指的路径是相对路径而 Claude Code 的工作目录跟你手动执行的不一样三是索引文件还没生成服务起来了但查不到东西。前两种去claude mcp list里看状态第三种回项目目录重跑一次索引进程。这三种跟 API Key 一点关系都没有别一上来就怀疑 Key。6.2 通道侧401 和多写了一个 /v1401 基本就两种原因Key 复制的时候漏了字符或者配置里写的是别处的 Key。Base URL 的话重点检查是不是手滑写成了https://taotoken.net/api/v1——Claude Code 走的是 Anthropic 协议这个 Base 不需要再补/v1多写一段就是 404 或路径错误。这两条改完都要重启 Claude Code 才生效。6.3 模型名对不上的时候如果报的是模型不存在直接去模型广场核对一遍当前可用的 ID把ANTHROPIC_MODEL换成列表里真实存在的那个。不要用带日期后缀的猜测名也不要照抄别人的截图版本更新后列表是会变的。7. 长期跑这套组合的几个习惯7.1 索引什么时候重建改代码之后索引不会自动更新这是 codegraph 这类工具的共性。建议的节奏是拉到新代码之后、开始一轮比较大的重构之前各跑一次codegraph index。日常小改动可以不重建但如果你发现 codegraph_trace 返回的调用链跟你实际代码对不上那就是索引过期了重建一次即可。7.2 Key 和 MCP 分开管Key 属于账号凭证放在~/.claude/settings.json或者环境变量里不要写进仓库MCP 的.mcp.json属于项目配置可以跟着仓库走。两者不要混在一个文件里尤其是.mcp.json一旦不小心把 Key 提交上去撤回起来很麻烦。同一把 Key 可以复用到别的工具上去 控制台 API Keys 里统一管理比在每个工具里各存一份好。配完之后想再确认一下通道本身通不通可以先在 TaoToken 模型对话 里用同一把 Key 发一条消息能回话再回到 Claude Code 里跑 codegraph。要长期在项目里这么写代码去 Coding Plan 看一眼套餐够不够用Claude Code 侧的变量名和配置文件位置对照 接入文档 再核一遍免得下次换机器又要重新猜。
返回列表