원클릭으로
grapha-search
Use when work in this repo needs to find symbols, read callers/callees, get 360° context, or list file symbols.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when work in this repo needs to find symbols, read callers/callees, get 360° context, or list file symbols.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when starting any coding conversation — sets the Grapha workflow and points at the right specialist.
Use when work in this repo needs forward dataflow traces to terminals, reverse traces to entry points, or entry-point listings.
Use when work in this repo needs blast-radius checks, type complexity, code smells, or module size and coupling analysis.
Use when work in this repo needs to persist or recall symbol annotations (ownership, invariants, role) or concept bindings (business term → code).
| name | grapha-search |
| description | Use when work in this repo needs to find symbols, read callers/callees, get 360° context, or list file symbols. |
| Task | MCP tool | CLI fallback |
|---|---|---|
| Find symbols by name / kind / file / role | mcp__grapha__search_symbols | grapha symbol search "<query>" --context |
| 360° context: callers, callees, impls, annotations | mcp__grapha__get_symbol_context | grapha symbol context <symbol> |
| Many contexts in one shot | mcp__grapha__batch_context | (loop CLI calls) |
| Public/API-like surface of a type | mcp__grapha__get_api_surface | grapha symbol api <type> |
| Usage sites grouped by target/type member | mcp__grapha__find_usages | grapha symbol usages <symbol> |
| List symbols inside a file | mcp__grapha__get_file_symbols | grapha symbol search --file <path> |
| List symbols for many known files | mcp__grapha__batch_file_symbols | grapha symbol files <path>... |
| File / module layout | mcp__grapha__get_file_map | grapha repo map |
mcp__grapha__search_symbols({ query: "<q>", fields: "score,id,locator,doc_comment,annotation,signature" })grapha symbol search "<q>" --contextfuzzy: true (--fuzzy) only if there are no results.kind (function, struct, ...), module, file (path or glob like Sources/*/RoomPage.swift), role (entry_point, terminal, internal).exact_name: true, declarations_only: true, or public_only: true to cut synthetic and accessor noise.file.swift::symbol syntax when several symbols share a name.id (preferred) or name to get_symbol_context — you get callers, callees, implementors, containment, type references, and any stored annotation in one call.batch_context({ symbols: [...] }) instead of N separate calls.get_api_surface / grapha symbol api instead of reading every extension by hand.find_usages / grapha symbol usages to get grouped usage sites. Add exclude_files / --exclude for generated wrappers or module export files.get_file_symbols before Read-ing a file: get the symbol layout, then Read only the slice you need.batch_file_symbols({ files: [...] }) or grapha symbol files ... before doing many individual reads.Grapha should answer the code question; FACE should organize the records. For broad searches or file/module result sets, request compact fields from Grapha and pipe the JSON to face:
grapha symbol search "<q>" --limit 200 --fields score,file,locator,kind,module \
| face --by file --within kind
grapha symbol search "<q>" --limit 200 --fields score,file,locator,kind,module \
| face --by module --within file --within score --preset bm25
Use face --schema when you are unsure which fields are available, and save face --format=json envelopes when you expect to drill repeatedly.
limit, fields, and cluster options where available because MCP cannot pipe directly to FACE.grapha index . (and mcp__grapha__reload if MCP is mounted), then retry — the snippets are stored at index time.