Token导航 LogoToken导航TokenDH.com
Code Atlas (Aryan Saini26) logo
开发工具stdio官方级别未说明来源级核验

Code Atlas (Aryan Saini26)

MCP Server

CodeAtlas是一个开源工具,通过构建实时代码知识图谱,帮助AI编码代理、开发者和团队更高效地理解和导航代码库。

工具数

27

提示词数

0

GitHub Stars

3

资源数

0
代码分析PythonClaude搜索ClaudeCursor

安装说明

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

作者 / 组织

AryanSaini26

提供方

AryanSaini26

最后核验

2026/5/17 20:21

快速接入

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

命令预览

pip install codeatlas

详细介绍

代码图集

![CI](https://github.com/AryanSaini26/CodeAtlas/actions/workflows/ci.yml) ![codecov](https://codecov.io/gh/AryanSaini26/CodeAtlas) ![PyPI](https://pypi.org/project/codeatlas/) ![Python 3.11+](https://www.python.org/downloads/) ![License: MIT](LICENSE)

一个开源MCP服务器,构建任何存储库的实时代码知识图,并将其暴露给人工智能编码代理,如Claude code和Cursor,以及同一图上的CLI、HTTP API和React web UI。

问题

人工智能编码代理在做实际工作之前,浪费了60-80%的上下文窗口在代码库中定位自己。CodeAtlas为他们提供了预先构建的结构和语义知识,这样他们就可以从第一个标记开始智能导航。

为什么选择CodeAtlas

  • 持久SQLite+FTS5图 --缩放超过1M符号,增量更新;不是公寓 graph.json 每次运行都重新序列化。
  • 基于真正嵌入的语义搜索 --FAISS+句子转换,而不仅仅是关键字匹配。混合模式通过互易秩融合来混合FTS5+矢量。
  • PageRank中心性 --呼叫者加权重要性,而不是基于程度的“上帝节点”启发式方法。加上标签传播社区、git流失热点和覆盖缺口。
  • 29个MCP工具,27个CLI子命令,6种导出格式 --该类别中最宽的试剂和终端表面。
  • 完整的React web用户界面 --交互式力图、搜索、符号详细信息、分析选项卡——所有这些都由FastAPI层支持。只需一个命令即可启动: codeatlas ui.
  • 26种语言通过树保姆 --Python、Types/TSX、Go、Rust、Java、C、C++、C#、Ruby、JavaScript、Kotlin、PHP、Scala、Bash、Lua、Elixir、Swift、Haskell、SQL、Zig、OCaml、Julia、PowerShell、Svelte。

特性

  • 多语言解析 --26种语言的树型AST解析(如上所列)。
  • 知识图谱 --SQLite+FTS5,具有递归CTE图遍历(零基础设施)。
  • 语义搜索 --使用句子变换器进行自然语言代码查询的FAISS向量搜索。
  • 混合搜索 --将关键字(FTS5)和向量(FAISS)结果进行交互排名融合。
  • 图分析 --PageRank、社区检测、循环检测、死代码、热点、覆盖缺口、最短路径、文件耦合。
  • 交互式可视化 --React+反应力图web UI,以及独立的D3.js HTML导出。
  • HTTP/JSON API --FastAPI层位于图形之上,用于定制前端和工具。
  • 实时同步 --监视器文件监视器和GitHub webhook处理程序,用于增量更新。
  • 变更影响分析 --Git感知差异分析,显示哪些符号和文件受到影响。
  • MCP服务器 --通过模型上下文协议公开了29个用于AI代理消费的工具。
  • 图形导出 --DOT(Graphviz)、JSON(D3.js)、Mermaid、GraphML、CSV和Cypher格式。
  • 配置文件 --可选 codeatlas.toml 用于每个repo设置。

快速开始

pip install codeatlas

# Initialize a config file (optional)
codeatlas init

# Index a repository
codeatlas index /path/to/repo

# View graph statistics
codeatlas stats

# Search by keyword
codeatlas query "authentication"

# Search by natural language (requires sentence-transformers)
codeatlas query "where do we handle login errors" --semantic

# Inspect a specific symbol
codeatlas show UserService

# Run code quality audit (cycles, dead code, complexity)
codeatlas audit

# Visualize the graph in your browser
codeatlas viz --open

# Watch for file changes
codeatlas watch /path/to/repo

# Export the graph
codeatlas export --format dot -o graph.dot
codeatlas export --format json -o graph.json
codeatlas export --format mermaid -o diagram.md

# Launch the web UI (API + React frontend, one command)
codeatlas ui

Web用户界面

CodeAtlas附带了基于Vite、Tailwind和反作用力图构建的React+TypeScript前端。它与同一图形存储上的FastAPI层进行通信,因此CLI、MCP服务器和web UI都看到了相同的数据。

# Build the frontend once
cd frontend && npm install && npm run build && cd ..

# Serve API + UI on localhost:8080
codeatlas ui

# Or run them separately during development
codeatlas server --port 8080              # API only
cd frontend && npm run dev                # Vite dev server with /api proxy

UI表面:

  • 仪表盘 --按PageRank、文件热点、语言和符号细分、统计数据列出的顶级符号
  • 搜索 --全文+语义搜索,结果详细信息窗格显示签名、文档字符串、传入/传出引用
  • 分析 --标签式界面,具有PageRank排名、热点识别、社区检测、覆盖差距分析
  • --具有种类/社区着色、图例和文件过滤的交互式力量导向可视化
  • 符号 --详细的符号页面,包括签名、文件、文件位置、进出参考卡
  • 差异 --比较两个git引用之间的符号(添加/删除/修改的列)
  • 设置 -配置API凭据,触发增量/完整重新索引,查看版本信息

安装

# Core (parsing + graph + CLI)
pip install codeatlas

# With MCP server
pip install codeatlas[mcp]

# With semantic search
pip install codeatlas[search]

# Everything
pip install codeatlas[all]

支持的语言

语言扩展名摘录
python.py类、函数、方法、装饰器、文档字符串、导入、继承
Types/TSX.ts, .tsx函数、类、接口、类型别名、导出、泛型、JSDoc
JavaScript.js, .mjs, .cjs类、函数、箭头函数、导入、导出、JSDoc
.go函数、方法、结构、接口、包、类型别名
.rs结构、特征、枚举、impl块、类型别名, /// 文档注释
Java.java类、接口、枚举、记录、构造函数、Javadoc、注释
Kotlin.kt, .kts类、接口、对象、伴随对象、函数、KDoc
C/C++.cpp, .cc, .cxx, .hpp, .hxx, .h类、结构、枚举、命名空间、模板、继承, /////** */ docs
C.cs类、接口、结构、枚举、记录、属性、XML文档注释、继承
红宝石.rb类、模块、方法、常量,需要导入, # 文档注释
PHP.php类、接口、特性、函数、使用导入、PHPDoc
Scala.scala, .sc类、特征、对象、函数、val/var、Scaladoc
Bash.sh, .bash函数、UPPER_CASE常数、, # 文档注释、调用关系
路亚.lua函数、局部函数、函数表达式、变量, -- 文档注释
灵药.ex, .exs模块、协议(接口)、def/defp函数、, @doc 文档字符串
迅速.swift类、结构、协议(接口)、函数、方法、类型别名、, /////** */ docs
哈斯克尔.hs, .lhs函数、数据类型、类型别名、新类型、类型类(接口)、导入、调用关系
结构化查询语言.sql表、视图(类)、函数/过程(函数)、来自视图和函数的跨表调用
C.c函数、typedef结构/枚举(CLASS)、类型别名、包含(IMPORT)、调用关系
之字形.zig函数、结构/枚举/联合(CLASS), @import (IMPORT)、UPPER_CASE常量、调用关系
OCaml.ml, .mli功能(let)、类型(CLASS)、模块(MODULE)、模块方法, open 导入、调用关系
朱莉娅.jl模块、结构(类)、抽象类型(接口)、函数、宏, import/using常数, # 文档注释
PowerShell.ps1, .psm1, .psd1函数、类、方法、构造函数, # doc注释、cmdlet调用关系
斯维尔特.svelte组件(类别), ` 功能、箭头功能, import` 语句、调用关系

配置

CodeAtlas可以配置为 codeatlas.toml 存储库根目录中的文件。生成一个:

codeatlas init

示例 codeatlas.toml:

[codeatlas]
exclude_dirs = [".git", ".venv", "node_modules", "__pycache__", "dist", "build"]

[codeatlas.parser]
max_file_size_kb = 500
include_extensions = [".py", ".ts", ".tsx", ".js", ".mjs", ".go", ".rs", ".java", ".kt", ".kts", ".cpp", ".cc", ".cxx", ".hpp", ".hxx", ".h", ".cs", ".rb", ".php", ".scala", ".sc", ".sh", ".bash", ".lua", ".ex", ".exs", ".swift", ".hs", ".lhs", ".sql", ".c", ".zig", ".ml", ".mli"]

[codeatlas.graph]
db_path = ".codeatlas/graph.db"

如果找不到配置文件,则使用合理的默认值。

忽略包含以下内容的文件 .gitignore / .codeatlas-ignore

CodeAtlas自动尊重回购 .gitignore (如果存在)。添加a .codeatlas-ignore 当你需要额外的规则或否定时,在repo根目录中 gitignore条目;其模式在gitignore规则和 可以覆盖它们。

地点a .codeatlas-ignore 存储库根目录中的文件以排除特定 从索引中删除文件或目录。语法镜像 .gitignore:

# Skip generated artifacts
dist/
build/
*.log

# Skip a specific file (but re-include one via negation)
src/generated/
!src/generated/manifest.ts

支持:评论(#)、空白线条、球形图案(*, **, ?), 仅目录模式(foo/),和否定(!pattern).

关系信心

图中的每条边都标记了置信度,以便代理可以分辨 AST证明了除启发式猜测之外的事实:

信心意义
extracted直接出现在解析器输出中(相同的文件分辨率)。信任。
inferred通过跨文件的唯一名称查找来解决。可能是正确的。
ambiguous存在多个候选目标;启发式选择了一个。小心对待。

codeatlas report 表面计数;原始统计数据也可通过以下方式获得 GraphStore.get_confidence_stats()导出的JSON边带有相同的标签: codeatlas export --format json 发射 {"source", "target", "kind", "confidence"}, 交互式可视化绘制了推断出的虚边和模糊边 点状排列,因此启发式猜测一目了然。

社区观点

通过 --communitiescodeatlas exportcodeatlas viz 运行标签 在图上传播,并包括 community_id 在每个节点上。在 交互式可视化,节点由社区和工具栏切换绘制 在社区着色和善良着色之间切换。

CLI命令

命令描述
codeatlas init生成一个 codeatlas.toml 配置文件
codeatlas index [path]将存储库索引到知识图中
codeatlas index [path] --incremental仅重新索引已更改的文件
codeatlas index [path] --watch索引,然后继续关注文件更改
codeatlas index [path] --workers N跨N个进程并行解析文件
codeatlas diff [path]显示自上次索引以来更改的文件
codeatlas stats显示图形统计信息(文件、符号、关系)
codeatlas list-files列出所有带有语言和符号计数的索引文件
codeatlas query 在代码库中进行全文搜索
codeatlas query --semantic自然语言语义搜索
codeatlas query --hybridFTS+语义搜索组合
codeatlas query --json将结果输出为JSON数组
codeatlas show 检查符号的签名、文档、deps和调用链
codeatlas show --json以JSON格式输出符号详细信息
codeatlas audit运行代码质量分析(周期、死代码、复杂性)
codeatlas audit --json以JSON格式输出审核结果
codeatlas audit --include-tests在死代码分析中包含测试文件符号
codeatlas find-path 查找两个符号之间的最短依赖路径
codeatlas coupling显示文件耦合分析
codeatlas hotspots [path]显示风险最高的文件(数字流失×程度图)
codeatlas hotspots [path] --json将热点输出为JSON
codeatlas hubs显示中心符号,图中连接最紧密的(“上帝”)节点
codeatlas hubs --json将集线器符号输出为JSON
codeatlas rank按PageRank对符号进行排名(按呼叫者重要性加权,而不是原始程度)
codeatlas rank --kind class --json排名限制为一种,输出为JSON
codeatlas communities通过标签传播检测紧密连接的子系统
codeatlas communities --json将社区分组输出为JSON
codeatlas coverage-gaps显示测试覆盖率为零的公共符号
codeatlas report [path]生成完整的健康报告(周期、死代码、热点、差距)
codeatlas report [path] --json以JSON格式输出健康报告
codeatlas pre-commit添加CodeAtlas增量索引挂钩 .pre-commit-config.yaml
codeatlas impact [path]分析当前git更改对图形的影响
codeatlas export以DOT或JSON格式导出图形
codeatlas export --communities包括每个节点 community_id (以及DOT中社区的颜色节点)
codeatlas viz生成交互式D3.js图形可视化
codeatlas viz --communities按检测到的社区划分颜色节点;添加工具栏切换(社区/种类)
codeatlas watch [path]实时监视文件更改和更新图形
codeatlas webhook [path]启动GitHub webhook服务器以进行推送触发的更新
codeatlas trace 从符号跟踪调用链(深度受限的BFS)
codeatlas find-usages 查找每个呼叫站点和符号参考
codeatlas languages列出所有支持的语言和文件扩展名
codeatlas clean删除 .codeatlas 目录
codeatlas serve启动MCP服务器
codeatlas server启动HTTP/JSON API(FastAPI+Uvicorn)
codeatlas ui启动API并在一个命令中提供构建的web UI
codeatlas install-completion [shell]打印shell完成激活行(bash/zsh/fish)

MCP服务器

启动MCP服务器,以便与Claude Code、Cursor或任何与MCP兼容的代理一起使用:

codeatlas serve

Claude代码配置

添加到您的Claude Code MCP设置中:

{
  "mcpServers": {
    "codeatlas": {
      "command": "codeatlas",
      "args": ["serve"]
    }
  }
}

可用的MCP工具(29)

工具说明
get_file_overview源文件的结构摘要
get_dependencies符号取决于什么,取决于什么
get_symbol_details一次调用中符号的完整元数据+关系
list_symbols_by_kind列出一种类型的所有符号(例如“显示所有类别”)
trace_call_chain从符号遍历完整调用图
get_impact_analysis如果符号发生变化,会发生什么
search_symbols带有可选种类/文件过滤器和查询扩展的全文搜索
find_similar_code自然语言语义搜索
get_module_overview目录/模块摘要
get_file_dependencies文件级依赖关系图
get_graph_stats索引图的汇总统计
export_graph以DOT或JSON格式导出图形
detect_circular_dependencies在代码库中查找导入/调用周期
find_dead_code查找传入引用为零的符号
analyze_complexity符号中心性(最耦合/关键代码)
find_path_between_symbols两个符号之间的最短依赖路径
get_file_coupling跨文件关系密度分析
get_change_impactGit感知的变更影响分析
find_by_decorator查找所有标记有给定装饰器/注释的符号
get_symbol_historyGit责备/记录符号的历史记录(触及它的提交)
get_hotspots最高风险文件:git流失×程度图
get_symbol_coverage哪些测试函数引用给定的符号
get_api_surface所有公共非测试符号-导出的API
get_coverage_gaps测试覆盖率为零的公共符号——在新测试中优先考虑这些符号
get_file_content返回文件的原始源内容,可以选择切片到行范围
find_usages查找每个调用点、导入和引用一个符号(与跟踪相反)
get_symbol_context一次调用中的符号元数据+周围的源代码片段

图形可视化

生成代码库的交互式力导向图:

# Generate and open in browser
codeatlas viz --open

# Save to a specific file
codeatlas viz -o my-graph.html

# Filter to specific directory
codeatlas viz --file-filter src/core/

可视化功能:

  • 使用D3.js进行强制布局
  • 按符号类型(类、函数、接口等)对节点进行颜色编码
  • 悬停以突出显示符号的直接连接
  • 按名称筛选符号的搜索栏
  • 用鼠标缩放和平移
  • 拖动节点以重新排列

GitHub 网络钩子

对于推送时的自动图形更新:

codeatlas webhook /path/to/repo --port 9000 --secret YOUR_WEBHOOK_SECRET

然后将您的GitHub repo webhook配置为POST到 http://your-server:9000/webhook.

建筑

Source Files --> Tree-sitter AST --> Symbols + Relationships --> SQLite Graph
                                                                    |
                                                 +--------+---------+--------+
                                                 |        |         |        |
                                              FTS5     FAISS     Graph    D3.js
                                             Search   Vectors   Analysis   Viz
                                                 |        |         |        |
                                                 +--------+---------+--------+
                                                              |
                                                   CLI + MCP Server --> AI Agents

设计决策:

  • SQLite over Neo4j:零基础设施,Python附带,FTS5用于关键字搜索,递归CTE用于图遍历
  • pgvector上的FAISS:在没有数据库服务器的情况下本地运行
  • 正则表达式上的树保姆:增量解析,处理所有边缘情况,跨语言一致性

发展

# Clone and set up
git clone https://github.com/AryanSaini26/CodeAtlas.git
cd CodeAtlas
python3.12 -m venv .venv
.venv/bin/pip install -e ".[all,dev]"

# Run tests with coverage (1038 tests, 92.2%)
.venv/bin/pytest -v --cov=codeatlas --cov-report=term-missing

# Lint / format
.venv/bin/ruff check src tests
.venv/bin/ruff format src tests

# Benchmarks (clones requests + click, runs timing/memory/token-savings)
python benchmarks/bench.py

释放

发布是通过GitHub Actions完全自动化的。要剪切新版本,请执行以下操作:

# Bump version, tag, and push — CI will build and publish to PyPI
make release VERSION=0.2.0

要求:

  1. 在PyPI.org上为此回购配置了PyPI可信发布(不需要API令牌)
  2. GITHUB_TOKEN 是自动的,不需要额外的秘密

许可证

麻省理工学院

目录标签

目录标签

代码分析PythonClaude搜索本地部署知识图谱多语言支持语义搜索代码可视化

支持客户端

ClaudeCursor

接入字段

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

stdio

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

token

工具数量(toolCount,工具数)

27

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP