Token导航 LogoToken导航TokenDH.com
CodeGraph MCP Server logo
开发工具未说明官方级别未说明来源级核验

CodeGraph MCP Server

MCP Server

一个轻量级的代码图构建工具,通过MCP服务器暴露代码图信息,支持TypeScript和Python代码分析,适用于代码查询和影响分析。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
代码分析PythonClaudeTypeScriptClaude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

NabiaTech

提供方

NabiaTech

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

nabi-codegraph-mcp — 最小化代码图 + MCP 服务器(TS + Python)

这是一个 自给自足的启动器 在(某个基础之上)构建一个轻量级的代码图 TypeScript 并且 python,然后通过一个(接口/方式)将其暴露出来 MCP服务器 因此,具有代理功能的客户端(如Claude桌面版、Cursor、Copilot Studio、OpenAI Agents、Azure)可以对其进行查询。

设计目标小巧、实用、易于扩展。无需重型的LSIF/SCIP索引器即可开始使用(不过之后也可以集成它们)。

______________________________________________________________________

你得到的是

  • 摄入(无需构建):

- TypeScript 使用官方方法解析 typescript 编译器API。 - python 使用标准库进行解析 ast 模块。 - 我们提取符号(函数、类、方法、变量、按文件划分的模块)和边(importcallmember_ofdefines)。

  • 图表格式:

- 简单的JSON文件位于 ./data/graph.json 和;带有;用 symbols[] 并且 edges[]。 - 之后很容易替换为 SQLite 或 SCIP。

  • MCP 服务器(code-graph):

- graph.resolve_symbol({ q }) → 通过名称模糊查找符号。 - graph.references({ id }) → 输入边(调用/导入此符号的实体)。 - graph.related({ id, k }) → k 个邻居(导入/调用)。 - graph.impact_from_diff({ patch }) → 已更改的文件 + 一跳邻居影响集。 - 资源code://file/{path}?s=..&e=.. → 为上下文窗口流式传输代码片段。

  • 示例仓库 以测试摄入(或摄取)./example (包含TS + Py文件)。

______________________________________________________________________

先决条件

  • Node.js 20多个版本 (建议使用长期支持版本)。
  • Python 3.10及以上版本 (仅限标准库)。
提示:此仓库避免使用原生数据库绑定,以实现最大程度的可移植性。图数据以JSON格式存储,并由服务器加载到内存中。

______________________________________________________________________

快速入门(5分钟)

# 1) Install deps
npm install

# 2) Build a graph from the example code
npm run ingest -- --target ./example

# 3) Run the MCP server (stdio)
npm run dev:server

你应该能看到 code-graph 启动并宣布工具。

______________________________________________________________________

与Claude桌面版(macOS/Linux/Windows)配合使用

在你的(列表/日志/文件等)中添加一项 Claude Desktop 配置 通过标准输入输出(stdio)注册MCP服务器。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

使用随附的模板,并将此文件夹的绝对路径替换为:

{
  "mcpServers": {
    "code-graph": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/dist/mcp/server.js"],
      "environment": {
        "NABI_GRAPH_JSON": "/ABSOLUTE/PATH/TO/data/graph.json"
      }
    }
  }
}

重启Claude桌面版。在新的聊天中,让它 连接到 code-graph MCP服务器 并尝试使用以下工具:

  • graph.resolve_symbol (与……一起)带着;用;凭借 { "q": "greet" }
  • graph.related 带有返回的符号 id
  • graph.impact_from_diff 贴上补丁
客户在展示MCP(可能是指某种工具或平台)工具的方式上存在差异。在Claude中,您可以在会话侧边栏中查看已连接的工具/资源。

______________________________________________________________________

命令与脚本

# Dev server (TypeScript via tsx)
npm run dev:server

# Compile to dist/ (pure JS ESM)
npm run build
npm start  # runs the built server

# Ingest (scan target directory and build ./data/graph.json)
npm run ingest -- --target ./example
npm run ingest -- --target /path/to/your/repo

# Optional: re-run impact analysis from a diff file
cat my.patch | npm run impact

______________________________________________________________________

如何摄入工作(太长了,读不下去了)

  • TypeScript我们使用TS编译器API遍历每个文件的抽象语法树(AST),收集符号(函数/类/方法/变量)、调用和导入。我们还为每个文件创建了一个 模块符号 作为主播。
  • python一个小 py/ingest_py.py 使用 ast 做同样的事情。它打印 NDJSON(Newline Delimited JSON) 在标准输出(stdout)上,节点编排器会读取并合并这些信息。
  • 边缘分辨率调用通过名称与定义进行匹配,采用了一种简单的启发式方法(首先优先匹配同一文件中的符号,否则匹配第一个找到的)。这种方法设计得相当简洁——足以帮助你初始化图表并使MCP查询变得有用。
之后,你可以插上 Tree-sitter(树坐者,但通常直接译为“树解析器”或保持原名,因其是一个用于解析源代码的库) 或者 SCIP(Secure, Compliant, Integrated, and Portable,可理解为“安全、合规、集成、便携”) 以实现更深入、跨仓库的精确度。

______________________________________________________________________

数据模型

type Range = { startLine: number; startCol: number; endLine: number; endCol: number };
type Symbol = {
  id: string; kind: 'function'|'class'|'method'|'variable'|'module';
  name: string; file: string; range: Range; language: 'typescript'|'python';
  signature?: string; parentId?: string|null;
};
type EdgeType = 'defines'|'call'|'import'|'member_of';
type Edge = { src: string; type: EdgeType; dst: string };
type Graph = { symbols: Symbol[]; edges: Edge[] };

______________________________________________________________________

路线图:该往何处去

  • 添加 SCIP摄入 (scip-ts / scip-python) 并沿着此 AST 路径合并边。
  • 将JSON存储替换为 SQLite 并为大型单体仓库添加索引。
  • 添加 结构重写/代码转换 钩子和 graph.impact_from_diff 精细化处理(图半径加权、流失先验)。
  • 暴露于 搜索资源: graph://symbol?q=... 直接流式传输代码片段。

______________________________________________________________________

故障排除

  • 如果服务器显示“未加载图表”,请运行 npm run ingest 并确认 ./data/graph.json 存在。
  • Windows路径问题?在Claude配置中使用绝对路径,并用引号括起来。
  • 未找到 Python?编辑 PYTHON_BINsrc/ingest/make_graph.ts 到你的解释器路径。

______________________________________________________________________

许可证麻省理工学院(MIT)

目录标签

目录标签

代码分析PythonClaudeTypeScript本地部署MCP服务器代码图

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP