Claude Code Explorer MCP 接入实操:51 万行泄漏源码装进聊天框的 8 个工具
2026 年 3 月 31 日,有人发现 Anthropic 发布在 npm 上的 Claude Code 安装包里带着一个 .map 文件,顺着它能把完整未混淆的 TypeScript 源码从 Anthropic 的 R2 存储桶整包拉下来。这批约 1,900 个文件、51 万行代码随后被汇集到 GitHub 仓库 codeaashu/claude-code,仓库作者还顺手配了一个 MCP 服务器——把它接进 Claude Code、Claude Desktop、Cursor 或 VS Code,AI 就能直接列出、搜索、阅读这套源码。这篇讲怎么把它装起来,以及 8 个工具各自怎么用(Claude Code 产品页)。
先说清楚这个仓库是什么
仓库 README 对来龙去脉写得直白,原文引一段:
The original unmodified leaked source is preserved in the
backupbranch.Chaofan Shou (@Fried_rice) discovered that the published npm package for Claude Code included a
.mapfile referencing the full, unobfuscated TypeScript source — downloadable as a zip from Anthropic's R2 storage bucket.—— codeaashu/claude-code README「How It Leaked」一节
所以它不是官方文档仓库,而是泄漏源码的镜像与整理:TypeScript strict 模式、Bun 运行时、React + Ink 终端 UI,src/ 下有 54 个顶层条目。配套的 MCP 服务器独立发布在 npm 上,官方 README 推荐的包名是 warrioraashuu-codemaster(1.1.0,2026-03-31 发布,依赖只有 MCP SDK 和 express 两个);registry 里还有一个同版本号的 @divyesh2000/codemaster,描述一字不差,属于同款重发。两个都能用,下文命令以其中一个为例。
装法有三条,先看图再动手

三条安装路径对照:npm 一键、源码构建、远程 HTTP,以及都要过的 CLAUDE_CODE_SRC_ROOT 检查
最省事的是 npm 一键。在装好 Claude Code CLI 的机器上执行:
claude mcp add warrioraashuu-codemaster -- npx -y warrioraashuu-codemaster
想改代码或者跟踪仓库最新状态,就走源码构建:clone 整个仓库,进 mcp-server/ 目录 npm install && npm run build,再把编译产物注册进去:
git clone https://github.com/codeaashu/claude-code.git cd claude-code/mcp-server npm install && npm run build claude mcp add claude-code-explorer -- node /绝对路径/claude-code/mcp-server/dist/index.js
团队共用可以走 HTTP 传输:npm run start:http 起在 localhost:3000/mcp(Streamable HTTP)和 /sse(旧客户端),配 MCP_API_KEY 环境变量就能加 Bearer 鉴权,Dockerfile 与 Railway 一键部署仓库里都备好了。官方 README 提醒 Vercel 免费档函数 10 秒超时,只适合单次工具调用,长连接场景用 Railway 或自托管。
第一道坎:它启动时要找源码目录
这个服务器不带源码,启动时会硬性检查 src/ 目录在哪,找不到就直接退出。实测报错原文:
Error: Claude Code src/ directory not found at /home/hermes/.npm/_npx/.../node_modules/@divyesh2000/codemaster/src Set CLAUDE_CODE_SRC_ROOT environment variable to the src/ directory path.
解法有两个。要么 clone 上面那条源码路径;要么直接下载仓库 tarball(api.github.com 的 tarball 接口,实测约 9.9 MB),解包后把环境变量指过去:
export CLAUDE_CODE_SRC_ROOT=/解包路径/claude-code-main/src
另一个实测碰到的坑:如果机器的 npm 默认源是 npmmirror 之类国内镜像,npx -y @divyesh2000/codemaster 会报 E404 not in this registry——镜像没同步这个包的 tarball。加 --registry=https://registry.npmjs.org 指回官方源即可。
8 个工具,两个参数名坑

8 个工具的作用与实测 schema:注意 search_source 的 pattern 和 get_tool_source 的驼峰 toolName
工具清单以实测 tools/list 返回为准(下文有实测记录),与官方 README 表格逐条一致。真正容易翻车的是参数名。search_source 的正则参数叫 pattern,传 query 会拿到:
{"jsonrpc":"2.0","id":5,"error":{"code":-32603,"message":"pattern is required"}}
get_tool_source 接驼峰 toolName,传蛇形 tool_name 不报错但返回空内容,更隐蔽。接入后先让 AI 空跑一次 tools/list,把每个工具的 inputSchema 看一眼再干活,比猜参数名省一轮往返。
顺带一提,服务器还注册了 3 个资源(claude-code://architecture 等URI)和 5 个提示词模板(explain_tool、compare_tools 等),在支持 prompts 的客户端里可以直接调用,让 AI 按模板深挖某个工具或对比两个工具的实现。
实测一遍完整链路

实测三段:启动横幅与 initialize 握手、search_source 传错参数再纠正、get_tool_source 读回 BashTool 全文
在 Linux + Node 20 的机器上按 stdio 方式实测(环境变量指向解包出的 src/),启动后 stderr 先打一行横幅:
Claude Code Explorer MCP (stdio) started — src: /…/codeaashu-claude-code-b983a3b/src
随后 initialize 握手返回 serverInfo:{"name":"claude-code-explorer","version":"1.1.0"},协议版本 2024-11-05。用正则 canUseTool|permission mode 搜权限相关代码,命中 10 处,全部带文件路径和行号:
QueryEngine.ts:32: import type { CanUseToolFn } from './hooks/useCanUseTool.js'
QueryEngine.ts:136: canUseTool: CanUseToolFn
QueryEngine.ts:243: // Wrap canUseTool to track permission denials
…共 10 处命中
再用 toolName: "BashTool" 读这个工具的实现,一次返回约 160 KB 文本,开头是 // tools/BashTool/BashTool.tsx 与 // 1145 lines,BashTool 一个目录实测有 18 个文件——bashPermissions、bashSecurity、sedValidation、shouldUseSandbox 这些文件名本身就说明权限校验在这个工具里占了多大比重。
51 万行代码,先拿地图再下钻

get_architecture 一次调用返回的盘点:54 个顶层条目、40 个 agent 工具、102 个斜杠命令
get_architecture 是最值得先跑的工具:一次调用返回完整盘点——54 个顶层条目、40 个 agent 工具(每个都标注文件构成)、102 个斜杠命令、核心文件清单与子系统列表。拿到地图之后按「工具 → 命令 → 子系统」三级下钻:比如想弄清权限系统,先 search_source 搜 canUseTool 定位到 QueryEngine.ts 的 32、136、243 行一带,再用 read_source_file 的 startLine/endLine 参数带区间精读,不用把 51 万行都灌给模型。
研究斜杠命令同理:102 个命令里 87 个以目录形式组织(/agents、/branch、/vim 等),15 个是单文件。list_commands 返回的 JSON 里带每个命令的路径与文件列表,get_command_source 传 commandName 就能读到实现。
几个要心里有数的点
法律与授权上,仓库 license 字段是 NOASSERTION,源码本身来自泄漏,Anthropic 未授权这份汇集。把它当学习材料用没问题,别把源码直接搬进自己的生产项目。时效上,这是 2026-03-31 那个 npm 包的快照,之后官方 Claude Code 的迭代不会反映进来;仓库 backup 分支保留未修改原件,main 分支有整理性改动。工程上,npm 上存在 warrioraashuu-codemaster 与 @divyesh2000/codemaster 两个同版本包,行为一致但属不同发布者,长期用建议钉住其中一个;包没有声明 engines,Node 20 实测可跑,HTTP 模式的鉴权要自己配 MCP_API_KEY,裸奔上公网不可取。
本文依据 codeaashu/claude-code 仓库 README、mcp-server/README 与 npm registry 元数据整理,实测记录来自 2026-10-22 Linux + Node 20 环境(stdio 传输),版权归原作者所有。