Skip to content

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.

Treat these runtime values as authoritative, in this order:

  1. MCP tools/list
  2. workspace.runtime.tools_exposed
  3. frigg://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.

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.

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.

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.

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.

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.

  • ../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