mcpField
T
tokennuke

tokennuke

本地服务
github.com/BigJai开发工具034 周前更新

关于 tokennuke

TokenNuke 是为编码 Agent 和开发者索引代码仓库的 MCP 服务。它结合语法感知的符号提取、混合搜索、调用图和直接源码读取,并可增量索引变更文件。

主要功能

  1. 01索引本地和远程仓库
  2. 02提取 10 种语言的符号
  3. 03混合关键词与向量搜索
  4. 04按字节偏移读取符号源码
  5. 05追踪调用方和被调用方
  6. 06增量重新索引已修改文件

适用场景

  1. 01入门代码库时查找相关代码
  2. 02修改函数前检查其调用方
  3. 03重构前梳理依赖关系
  4. 04比较索引间的符号变更

MCP 相关

FastMCP 通过 stdio 或 HTTP 暴露 15 个代码索引和搜索工具。MCP 客户端可用其索引仓库、搜索符号与文本并检查源码关系。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bigjai-tokennuke": {
"command": "uvx",
"args": [
"tokennuke"
]
}
}
}
启动命令uvx tokennuke

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypitokennuke1.3.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

TokenNuke

智能代码索引 MCP 服务。提供 15 个工具,支持 10 种语言、tree-sitter AST 提取、混合搜索(FTS5 + 向量)、调用图、远程仓库索引和增量索引。

节省 99% 的令牌——通过字节偏移定位直接获取准确的函数源码,无需读取整个文件。

原名为 codemunch-pro。代码不变,名称更好。

安装

pip install tokennuke

快速开始

Claude Desktop / Cline

添加到 MCP 客户端配置中:

{
  "mcpServers": {
    "tokennuke": {
      "command": "tokennuke"
    }
  }
}
HTTP 服务
tokennuke --transport streamable-http --port 5002

15 个 MCP 工具

工具描述
index_folder为本地目录建立索引(增量式,基于 SHA-256)
index_repo为 GitHub/GitLab 仓库建立索引(下载 tarball,无需 git)
list_repos列出所有已建立索引的仓库及其统计信息
invalidate_cache强制为仓库重新建立索引
file_tree获取目录树及文件数量
file_outline列出单个文件中的符号
repo_outline列出仓库中的所有符号(摘要)
get_symbol获取单个符号的完整源码(O(1) 字节定位)
get_symbols批量获取多个符号
search_symbols混合搜索(FTS5 + 向量 RRF)
search_text在文件内容中进行全文搜索
get_callees这个函数调用了什么?
get_callers谁调用了这个函数?
diff_symbols与上次建立索引相比有哪些变化?(PR 审查)
dependency_map这个文件依赖什么?哪些文件依赖它?

10 种语言

Python、JavaScript、TypeScript、Go、Rust、Java、C、C++、C#、Ruby

全部通过 tree-sitter-language-pack 实现——无需编译,提供预构建二进制文件。

主要功能

O(1) 符号获取

每个符号都会存储其字节偏移和长度。get_symbol 会直接定位到函数源码——无需读取整个文件。从 40KB 文件中获取一个 200 字节的函数,可节省 99.5% 的令牌。

增量索引

文件会经过哈希处理(SHA-256)。只会重新解析变更过的文件。修改一个文件后,为包含 10K 个文件的仓库重新建立索引只需几毫秒。

混合搜索(FTS5 + 向量)

使用互惠排名融合,将 BM25 关键词匹配与语义向量相似度相结合。搜索“身份验证中间件”,即可找到 auth_middleware、verify_token 和 login_handler。

调用图

通过 AST 跟踪函数调用。get_callees("main") 会显示 main 调用了什么。get_callers("authenticate") 会显示谁调用了 authenticate。支持深度遍历。

远程仓库索引

通过 URL 为任意公开的 GitHub 或 GitLab 仓库建立索引——无需 git 二进制文件。通过 API 下载 tarball,解压并建立索引。缓存保存在本地,并通过 SHA 检查数据新鲜度。支持使用身份验证令牌访问私有仓库,也支持稀疏路径。

全文内容搜索

搜索原始文件内容——字符串字面量、TODO 注释、配置值、错误消息等。不仅限于符号名称。

工作原理

  1. 解析——tree-sitter 为每个源文件构建 AST
  2. 提取——遍历 AST,查找函数、类、方法、类型和接口
  3. 存储——为每个仓库创建 SQLite 数据库,其中包含 FTS5 虚拟表
  4. 嵌入——FastEmbed(ONNX,仅用 CPU)生成 384 维向量,用于语义搜索
  5. 构图——从函数体中提取调用表达式,存储并解析边
  6. 提供服务——FastMCP 通过 stdio 或 HTTP 暴露 15 个工具

架构

~/.tokennuke/
├── myproject_a1b2c3d4e5f6.db    # Per-repo SQLite database
├── otherproject_7890abcdef.db
└── ...

Each DB contains:
├── files          # Indexed files with SHA-256 hashes
├── symbols        # Functions, classes, methods, types
├── symbols_fts    # FTS5 full-text search index
├── symbols_vec    # sqlite-vec 384-dim vector index
├── call_edges     # Call graph (caller → callee)
└── file_content_fts  # Raw file content search

使用场景

  • AI 编码 Agent:让 Agent 精准访问代码库,同时避免耗尽上下文
  • 代码审查:修改函数签名前,查找所有调用方
  • 新人上手:通过语义搜索查找符号——搜索“错误处理在哪里?”即可找到相关代码
  • 重构:在模块间移动函数之前,绘制调用图
  • 文档编写:提取所有公开 API 及其签名和文档字符串

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。