-
Notifications
You must be signed in to change notification settings - Fork 0
Tool Reference
SymForge exposes 32 MCP tools. They are grouped by the job an agent is trying to do.
Use this page for
picking the right tool after SymForge is installed and connected.
| Tool | Purpose |
|---|---|
health |
Full index, watcher, parse, runtime, sidecar, capability, git temporal, and routing status |
health_compact |
Smaller health summary for tight context budgets |
get_repo_map |
Bounded repository map with language/file/symbol summaries |
explore |
Concept-driven exploration across symbols, files, and patterns |
ask |
Natural-language codebase question routed to the right internal path, with route confidence and rationale; tool-recommendation questions return a workflow-grouped tool catalog |
conventions |
Detect local coding, test, naming, and error-handling conventions |
context_inventory |
Show what files/symbols have already been loaded this session |
investigation_suggest |
Surface likely gaps in the current investigation |
| Tool | Purpose |
|---|---|
get_file_context |
Start here for source files: outline, imports, references, consumers, and git activity |
get_file_content |
Exact raw content, line ranges, chunks, match excerpts, and symbol excerpts |
get_symbol |
Full source of one or more symbols |
get_symbol_context |
Symbol body plus callers, callees, type dependencies, and edit-prep context |
inspect_match |
Deep-dive one search match in enclosing symbol context |
| Tool | Purpose |
|---|---|
search_symbols |
Find symbols by name, kind, language, or path prefix |
search_text |
Search text with enclosing symbol context; supports literal, OR terms, regex, and structural AST patterns |
search_files |
Find/rank paths, resolve exact or ambiguous paths, and optionally use frecency or co-change ranking |
| Tool | Purpose |
|---|---|
find_references |
Call sites, imports, type usages, implementations, and qualified usages |
find_dependents |
File-level dependency graph |
what_changed |
Changed files by git ref, timestamp, or working tree |
diff_symbols |
Symbol-level diff between git refs |
analyze_file_impact |
Reindex one file and report changed symbols and affected dependents |
validate_file_syntax |
Syntax diagnostics with line/column locations for supported code/config files |
| Tool | Purpose |
|---|---|
edit_plan |
Inspect impact and recommend an edit sequence |
replace_symbol_body |
Replace an entire symbol body by name |
edit_within_symbol |
Scoped find/replace inside one symbol |
insert_symbol |
Insert code before or after a named symbol |
delete_symbol |
Delete a symbol and attached docs |
batch_edit |
Apply multiple symbol-scoped edits atomically |
batch_insert |
Insert before or after multiple symbols |
batch_rename |
Rename a symbol and update references project-wide |
| Tool | Purpose |
|---|---|
index_folder |
Reindex a repository from scratch, with optional idempotency_key for safe retries |
checkpoint_now |
Atomically write the in-memory index to .symforge/index.bin, optionally verifying after write; in daemon-proxy mode the checkpoint runs against the daemon's authoritative index, and a degraded local fallback discloses itself in the receipt |
trace_symbol remains only as a daemon compatibility alias for older clients.
Generated client allow-lists should not grant it. Use:
-
get_symbol_contextfor multi-hop symbol context; -
find_referencesfor callers, imports, type usages, and implementations.
Core tool responses include machine-readable status metadata where the MCP transport can carry it. This lets agents distinguish:
- found
- not found
- ambiguous
- invalid request
- empty result
- internal failure
The human-readable text remains, but agents should prefer the stable status metadata when deciding whether a step succeeded.
search_files ranks path matches by default.
Frecency:
{
"query": "cache",
"rank_by": "frecency"
}Co-change:
{
"query": "routes",
"rank_by": "path+cochange",
"anchor_path": "src/auth/routes.rs"
}Use debug_ranking=true when you need an explanation of the ordering.
search_text can use AST patterns when structural=true.
search_text(query="fn $NAME($$$) { $$$ }", structural=true, language="Rust")
$NAME captures one AST node. $$$ captures zero or more nodes.
SymForge edit tools are intended to replace raw text-copy editing for source code. Important behaviors:
- symbol-addressed range resolution
- doc-comment-aware ranges
- automatic indentation where supported
- tee snapshots: the pre-write file is preserved under
.symforge/tee/before every edit lands - atomic writes, then reindexing from the persisted on-disk bytes (never the in-memory buffer)
- optional
idempotency_key: same key + same canonical request replays the stored result; same key + different request is a deterministic conflict - result-status metadata and per-operation batch statuses
- optional explicit
working_directoryrouting into sibling git worktrees; routed responses self-describe withwrote_to,indexed_path, andrerouted
- Routed single-symbol edits compound correctly: when the worktree target has
diverged from the indexed copy (for example, after an earlier routed edit),
the edit base is re-read and re-parsed from the target bytes, and the
envelope reports
Source authority: worktree target (rebased). - Routed writes never overwrite the index entry for the indexed copy — the index keeps describing the indexed root truthfully.
- Routed batch tools (
batch_edit,batch_insert,batch_rename) fail closed with an actionable error when the worktree target has diverged, because their splices are resolved against the index snapshot; use the single-symbol tools for sequential routed edits to the same file.
SymForge also exposes MCP prompts for higher-level workflows:
symforge-reviewsymforge-architecturesymforge-triagesymforge-onboardsymforge-refactorsymforge-debug
These prompts return procedure-oriented instructions and resource links that tell the agent which SymForge tools to call next.
Static resources:
symforge://repo/healthsymforge://repo/outlinesymforge://repo/mapsymforge://repo/changes/uncommitted-
symforge://tools/catalog— workflow-grouped index of SymForge's tools
Resource templates:
symforge://file/context?path={path}&max_tokens={max_tokens}symforge://file/content?...symforge://symbol/detail?path={path}&name={name}&kind={kind}symforge://symbol/context?name={name}&file={file}
- Use
get_file_contextbefore reading source files. - Use
search_symbols,search_text, orsearch_filesbefore broad raw scans. - Use
get_file_contentfor exact docs/config prose. - Use
edit_planbefore non-trivial edits. - Use
analyze_file_impactafter targeted edits. - Use
index_folderafter broad multi-file work or root changes.