frigg-mcp-search-navigation
Use Frigg MCP for repository-aware code discovery and navigation when questions need canonical paths, cross-file movement, symbol or structural search, multi-repository scope, or MCP-backed follow-up. Trigger when users ask cross-file questions, architecture or onboarding questions, refactor impact, symbol or call-flow questions, structural queries, or multi-repository questions that need `workspace_attach`, `search_hybrid`, `search_symbol`, navigation tools, `document_symbols`, `inspect_syntax_tree`, or bounded repository-backed reads.
Frigg MCP Search Navigation
Choose The Right Surface
Frigg is not the default replacement for every terminal read, but it also no longer needs to be treated as “too heavy” for exact scans by default.
- Prefer local shell tools such as
rg,rg --files,fd,git grep,sed, orcatfor quick one-off local inspection in the checked-out workspace. - Reach for Frigg when repository-aware semantics matter: canonical repository-relative paths, cross-file navigation, symbol lookup, structural search, hybrid doc/runtime discovery, bounded repository-backed reads, or multi-repository search.
- Do not avoid
search_textjust because the query is exact. On macOS and Linux, Frigg may userginternally as a lexical accelerator while still preserving repository scope, canonical paths, and downstream navigation flow. - Treat
workspace_attachas the explicit setup boundary. Sessions can start detached even when the client is launched inside a repo.
Default Loop
- If the task is a simple local read or quick one-off path scan, shell tools are fine.
- Call
list_repositories. - If no repo is attached, or you want omitted
repository_idcalls to stay local to one repo, callworkspace_attachexplicitly. Useworkspace_currentwhen you need health, precise, or runtime task status. - Start with
search_hybridfor broad discovery when you do not yet have a stable symbol, string, or path anchor. - Pivot to
search_symbolwhen you know an API, type, or function name, or tosearch_textwhen exact strings, canonical paths,path_regexscoping, or MCP-backed follow-up matter. - Frigg read-only tools default to compact responses. Ask for
response_mode=fullonly when you need diagnostics, freshness detail, or selection notes. - Use navigation tools for impact and code flow:
find_references,go_to_definition,find_declarations,find_implementations,incoming_calls,outgoing_calls. - Prefer
read_matchwhen a prior Frigg result already returnedresult_handleplusmatch_id; useread_filewhen you already know the canonical path. Both default to text-first source output, so ask forpresentation_mode=jsononly when you truly need the structured compatibility payload. Useexplorewhen the extended tool profile is enabled and you need probe/zoom/refine follow-up inside one artifact. - Use
document_symbols(top_level_only=true)orinspect_syntax_treebeforesearch_structuralwhen syntax shape matters more than ranking.
Treat search_hybrid as discovery-first. If top-level warning is present, top-level semantic_status != ok, or response_mode=full shows metadata.lexical_only_mode = true, treat the ranking as weaker evidence and pivot to more concrete tools before making claims. In lexical-only mode, broad natural-language ranking is noticeably less trustworthy than explicit search_symbol or search_text queries.
Compact responses still keep the main contract fields, but they intentionally omit bulky metadata and note payloads. read_file, read_match, and explore(operation=zoom) are also text-first by default now, with compact structured_content metadata and an explicit presentation_mode=json escape hatch when structured payload fields are required. When a tool returns result_handle and per-row match_id values, prefer read_match over manually repeating path, line, and column.
Structural follow-up suggestions are opt-in. Use include_follow_up_structural=true when you want replayable search_structural follow-ups derived from the resolved AST focus rather than from the user's original query. Phase 1 covers inspect_syntax_tree and search_structural; phase 2 extends the same typed follow_up_structural payloads to document_symbols, find_references, go_to_definition, find_declarations, find_implementations, incoming_calls, and outgoing_calls. Do not expect this on search_hybrid or search_symbol.
For technical reviews or blog-style investigations, use this trust order:
search_textfor framing and exact narrative anchorsread_fileplus defs/refs (go_to_definition,find_declarations,find_references) for proofsearch_structuralfor complex AST-shaped evidenceincoming_callsas a useful call-flow hintoutgoing_callsonly as provisional until confirmed elsewhere
Decision Table
- Simple local file read, file listing, or one-off literal scan with no need for repository-aware semantics: shell tools
- Broad architecture, onboarding, or "where does this live?" questions:
search_hybrid, but pivot quickly if lexical-only mode is active - Known API, type, trait, class, or function name:
search_symbol - Exact string or regex probe that needs canonical paths, repository scoping, or direct MCP follow-up:
search_text - Repository-backed file slice or source proof tied to Frigg results:
read_file - Probe, zoom, or refine within one file after discovery:
explorewhen the extended profile is enabled - References, definitions, implementations, callers, or callees: navigation tools
- File outline, AST inspection, or syntax-shape fallback:
document_symbols,inspect_syntax_tree,search_structural - Replayable AST-shaped follow-up probes after an anchored result: re-run the returned
follow_up_structuralsuggestion viasearch_structural - Explicit setup, health, freshness, or precise-generator state: workspace lifecycle tools
References
- Read references/workspace-and-runtime.md for
list_repositories,workspace_attach,workspace_current, write tools, precise generation, semantic refresh, and runtime status. - Read references/discovery-and-evidence.md for
search_hybrid,search_symbol,search_text,read_file, andexplore. - Read references/navigation-and-structure.md for defs/refs/call hierarchy,
document_symbols,inspect_syntax_tree, andsearch_structural. - Read references/workflows.md for repeatable investigation loops.
- Read references/extended-tools.md when the extended tool profile is enabled or when a task explicitly calls for deep-search traces or citation composition.