15 個 MCP 工具

索引 / 查詢 / 讀取 / 維運 四類全解

總覽

類別工具
索引index_repository · list_projects · delete_project · index_status
查詢search_graph · trace_path · detect_changes · query_graph · get_graph_schema
讀取get_code_snippet · get_architecture · search_code
維運manage_adr · check_index_coverage · ingest_traces

索引類

index_repository索引把 repo 索引進圖;之後 auto-sync 保持新鮮。

核心參數 repo_path絕對路徑)。首次全索引,之後增量。auto_index 開啟時(config set auto_index true)會在新專案連線時自動執行。結束時可選擇寫出 team-shared graph artifact(見 Graph Artifact)。

list_projects · delete_project · index_status索引列出 / 刪除 / 查狀態。

list_projects 回傳每個專案的 name(用於其他工具的 project 參數)、節點/邊數。 delete_project 移除專案與全部圖資料。index_status 查詢專案目前的索引狀態。

查詢類

search_graph查詢結構搜尋:name pattern、label、檔案過濾、degree 過濾、分頁。

最常用的發現工具。正則 name_pattern(如 .*Handler.*)、label(如 Function)、file_patternmin_degree/max_degreelimit/offset 分頁。這是「先發現確切名稱」的入口——trace_pathget_code_snippet 都靠它找目標。

trace_path查詢BFS 遍歷——誰呼叫它、它呼叫誰。深度 1–5。

別名 trace_call_pathfunction_name + direction(inbound / outbound / both)。這是取代「grep 誰呼叫 X」的殺手級工具——在型別解析的圖上 BFS,<10ms

query_graph查詢執行 Cypher-like 圖查詢(唯讀)。

openCypher 唯讀子集(Cypher 全解)。例如死碼偵測 MATCH (f:Function) WHERE NOT EXISTS { (f)<-[:CALLS]-() } RETURN f.name。子集之外的語法回傳明確的 unsupported … 錯誤,不會靜默回空。

detect_changes查詢把 git diff 映射到受影響符號 + blast radius + 風險分類。

讀取未 commit 的變更,映射到受影響的符號與風險等級。用於「改了這個會影響到誰」的影響分析。

get_graph_schema查詢節點/邊計數、關係 pattern、每個 label 的屬性定義。先跑這個。

探索圖結構的起點:看這個專案有哪些 label、邊型、屬性——決定接下來要問什麼。

讀取類

get_code_snippet讀取用 qualified name 讀函式原始碼。

<project>.<path_parts>.<name> 直接讀函式原始碼——不用先知道檔案路徑。qualified name 可用 search_graph 發現。

get_architecture讀取codebase 總覽:語言、套件、入口點、路由、熱點、邊界、分層、cluster。

一次呼叫拿整個專案的架構摘要。含社群 cluster(Louvain 偵測的功能模組)與 ADR 摘要。跨 repo 時也能給 cross-repo architecture summary。

search_code讀取grep-like 文字搜尋,只在已索引的檔案。

跟 grep 類似,但範圍限於圖索引的檔案——語意上有圖的加持(可顯示該 hit 對應到哪個符號)。

維運類

manage_adr維運Architecture Decision Record 的 CRUD。

把架構決策(ADR)持久化,跨 session 保留下來。query 模式(get/sections)用 server 的快取 query store,可以在同專案重索引進行中繼續服務;寫入仍序列化。

check_index_coverage維運針對一組路徑檢查索引涵蓋率。

檢查給定檔案路徑是否被索引、有無 flagged / skipped / excluded 範圍。agent 的 Verify / Auditor tier 用它做「證據路徑的涵蓋檢查」——clean 結果只代表「沒有記錄缺口」,不是完整證明。

ingest_traces維運收納 runtime traces 來驗證 HTTP_CALLS 邊。

把 runtime trace 資料收進圖,用真實執行資料驗證/補強 HTTP_CALLS 跨服務邊。

CLI 模式

每個 MCP 工具都能當單次本機指令跑(cli 子指令),不會啟動 daemon、不留常駐 process:

codebase-memory-mcp cli index_repository --repo-path /path/to/repo
codebase-memory-mcp cli list_projects
codebase-memory-mcp cli search_graph --project my-project --name-pattern '.*Handler.*' --label Function
codebase-memory-mcp cli trace_path --project my-project --function-name Search --direction both
codebase-memory-mcp cli query_graph --project my-project --query 'MATCH (f:Function) RETURN f.name LIMIT 5'

--json 拿完整 MCP result envelope;--progress 在非互動環境強制顯示進度(只寫 stderr,stdout 保持機器可讀)。

看完這頁你應該能說出:15 個工具的四類分法、search_graph 為何是發現入口、trace_path 如何取代 grep「誰呼叫誰」、以及每個工具都能用 cli 子指令在本機跑。