Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Call graph of a TS/JS repo: who-calls, impact with evidence chains, trace, hotspots.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
제작자가 레지스트리에 설치 정보를 올리지 않았어요. 아래 제작자의 README를 확인하세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 attnstack 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.0)은 7일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, topo^alpin
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Avalanche bulletins and mountain weather forecasts for any place in the Alps.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
中文 | English
改一行代码,怎么知道会波及哪些地方?IDE 的"查找引用"只给一跳,全局搜索只会匹配文本。codegraph 用 tree-sitter 把整个 TypeScript/JavaScript(以及 Python)仓库解析成一张调用图(函数 / 类 / 文件 × 调用 / 继承 / 导入),然后直接回答:
所有结论来自静态解析,每条边都能点回源码。解析不了的地方(动态调用、同名歧义、被局部变量遮蔽)会明确标成 dynamic 列出来,而不是硬塞一个可能错的答案给你。不需要向量库,不需要上传代码,查询结果可复现。
git clone https://github.com/attnstack/codegraph.git && cd codegraph
cargo build --release
./target/release/codegraph index --root fixtures/demo-app
./target/release/codegraph who-calls charge --root fixtures/demo-app
./target/release/codegraph watch --root fixtures/demo-app ./target/release/codegraph impact charge --root fixtures/demo-app ./target/release/codegraph trace Checkout.createOrder format --root fixtures/demo-app ./target/release/codegraph callees charge --root fixtures/demo-app # 它调用了谁 ./target/release/codegraph dead-code --root fixtures/demo-app # 孤儿函数 ./target/release/codegraph cycles --root fixtures/demo-py # import 循环(python 仓库) ./target/release/codegraph hotspots --root fixtures/demo-app
Python 仓库用法完全一样——试试 --root fixtures/demo-py。
impact 的输出长上面截图那样:按风险排序的受影响清单 + 每条的证据链。风险分的算法在架构文档里,一句话版本是"沿调用链每跳衰减 0.8,不同边类型不同权重"。
CLI 之外还有一个 MCP stdio 出口,Agent 可以直接调用同一套查询:
{
"mcpServers": { "codegraph": { "command": "/path/to/codegraph", "args": ["mcp", "--root", "/path/to/your/repo"] } } }
不想装 Rust 工具链的话,仓库带了 Dockerfile:
docker build -t codegraph .
docker run -i --rm -v /path/to/your/repo:/repo codegraph # 起 MCP stdio docker run --rm -v /path/to/your/repo:/repo codegraph index --root /repo # 当 CLI 用
提供 9 个工具:who_calls / impact / trace / callees / dead_code / cycles / hotspots / search / archaeology。改完文件不用手动重建——每次工具调用前会做 mtime/size 预筛,发现漂移自动增量更新。协议实现是手写的最小 JSON-RPC 子集,用官方 TypeScript SDK 做了契约测试(这也是 CI 的一部分)。
archaeology 单独说一下:基于 git blame -C 做代码考古,输入一个符号,返回它每行是哪个 commit 引入的、谁写的、关联哪个 PR。接手别人的老模块时挺好用。
语义相似不等于真有调用关系。改代码影响评估需要的是确定的边,不是"感觉相关的前 k 个"。代价也很实在:解析成本(靠增量更新摊薄)和语言覆盖(目前只有 TS/JS)。如果你要的是"帮我找实现某个业务概念的代码",这是另一类问题,embedding 检索更合适,两者不冲突。
graph LR
A[文件发现 gitignore 感知] --> B[tree-sitter 解析 并行,仅变更文件] B --> C[符号解析 全量视图重跑] C --> D[(SQLite / WAL)] D --> E[查询层 闭包 / 双向 BFS / PageRank] E --> F[CLI] E --> G[MCP stdio] H[git blame] --> E
几个关键取舍(细节在 docs/ARCHITECTURE.md):
我机器上(Ryzen 7 7735H,Windows 11,release 构建)跑合成语料(700 个文件、10.5 万行、1.5 万节点 / 3.3 万边):
| 操作 | 耗时 |
|---|---|
| 全量重建 | 0.77s |
| 单文件变更增量更新 | 0.87s |
| 各查询命令 | 0.19–0.21s |
查询那 0.2s 基本是进程启动和快照装载,算法本身毫秒级。同目录 grep -rn 一遍要 0.35s,而且它只能给你文本行。
说句实话:这个规模下全量重建本来就不慢,增量并不比它快。增量的价值在于正确性模型(上面说的 fuzz 等式)和更大的语料/更慢的磁盘。数字怎么测的、怎么复现,见 scripts/bench.sh。
obj.method() 这类调用很多解析不出来,进了 dynamic 桶。要彻底解决得接 tsc 的类型表,暂时没做。版本历史见 CHANGELOG.md。
MIT