MCP tool surface
Frigg exposes local repository evidence through a fixed public MCP manifest. The default build exposes 19 tools. Internal repository-lifecycle handlers are filtered from tools/list and are not public API.
Discover the live surface
Section titled “Discover the live surface”Treat these runtime values as authoritative, in this order:
- MCP
tools/list workspace.runtime.tools_exposedfrigg://policy/tool-surface.json
Host-side schema caches can lag behind the running binary. Re-read tools/list after changing Frigg versions or FRIGG_MCP_TOOL_SURFACE_PROFILE.
Tool-surface profiles
Section titled “Tool-surface profiles”FRIGG_MCP_TOOL_SURFACE_PROFILE accepts core or extended, case-insensitively.
| Value | Exposed tools |
|---|---|
core |
All 19 product tools, including explore and impact_bundle. |
extended |
The same 19 tools, plus playbook tools when the binary was compiled with --features playbook. |
| omitted, empty, or invalid | Resolves to extended. |
Playbook support is not a default Cargo feature. On a normal build, core and extended expose the same tools.
Public product tools
Section titled “Public product tools”| Tool | Primary contract |
|---|---|
workspace |
Report or adopt the session repository and return runtime and freshness state. |
list_files |
List repository-relative source files with path, language, and path-class filters. |
read_file |
Read a bounded live-disk source window by canonical path. |
read_match |
Reopen a revision-bound search or navigation match. |
explore |
Probe, zoom, or refine within one known file. |
search_text |
Literal or regex source search with ripgrep-shaped filters and result shaping. |
search_hybrid |
Ranked broad discovery across available lexical, graph, and semantic channels. |
search_symbol |
Known-name symbol lookup. |
search_batch |
Run 2–8 independent typed probes and merge their evidence with fixed RRF. |
find_references |
Find reference, declaration, and optional definition rows for a target. |
go_to_definition |
Resolve a target to definition rows. |
find_declarations |
Resolve a target to declarations. |
find_implementations |
Find trait, interface, or other implementation edges. |
incoming_calls |
Find callers. |
outgoing_calls |
Find provisional callee edges. |
document_symbols |
Return a bounded hierarchical file outline. |
inspect_syntax_tree |
Inspect the Tree-sitter node at a source position and its neighborhood. |
search_structural |
Run a Tree-sitter query and return grouped matches or captures. |
impact_bundle |
Resolve one target and compose typed impact sections with independent trust. |
See workspace and file tools, search tools, and navigation tools for parameters and result shapes.
Feature-gated playbook tools
Section titled “Feature-gated playbook tools”These tools appear only when the binary includes --features playbook and the active profile is extended:
| Tool | Use |
|---|---|
playbook_run |
Execute a typed sequence and return a deterministic trace artifact. |
playbook_replay |
Replay a playbook and diff the new trace against an expected artifact. |
playbook_compose_citations |
Compose claims and file-span citations from a trace artifact. |
They support trace development and replay. Normal repository investigation does not require them. See MCP resources, prompts, and playbooks.
Safety and MCP annotations
Section titled “Safety and MCP annotations”Every public tool advertises readOnlyHint=true and destructiveHint=false. PUBLIC_WRITE_TOOL_NAMES is empty.
Frigg’s source-safety boundary allows public tools to:
- read repository files and Frigg indexes;
- change session adoption state through
workspace; - maintain ignored Frigg-owned state, provenance, or caches under
.frigg/.
They do not edit repository source. workspace is the only public session-stateful tool and advertises idempotentHint=false because it can change the session default. Other public tools advertise idempotentHint=true.
Shared response contracts
Section titled “Shared response contracts”The tool schemas use common contracts for compact/full responses, text/JSON/citation reads, completeness, continuations, proof handles, target_ref, and executable recovery actions. Read result and recovery contracts before building an MCP client that consumes results programmatically.
Source Anchors
Section titled “Source Anchors”../frigg/README.md../frigg/crates/cli/src/mcp/types.rs../frigg/crates/cli/src/mcp/tool_surface.rs../frigg/crates/cli/src/mcp/server.rs../frigg/crates/cli/src/mcp/guidance.rs../frigg/crates/cli/tests/rmcp_protocol.rs