sdl.symbol.search
Searches the symbol graph by name, with optional semantic reranking or hybrid retrieval. Performs a text search across all symbol names in the repository. Whensemantic: true is specified, the retrieval path depends on configuration: with semantic.retrieval.mode: "hybrid", results are found via FTS + vector search fused with Reciprocal Rank Fusion (RRF); with legacy mode, results are reranked using embedding similarity. Falls back to legacy automatically if hybrid indexes are unavailable.
The tool also triggers predictive prefetch of cards for the top 5 results, anticipating follow-up getCard calls.
Parameters
Repository identifier.
Search query matched against symbol names.
Filter by symbol kind. Valid values:
function, class, interface, type, module, method, constructor, variable.Maximum results to return. Range: 1–1000. Default:
50.Enable semantic reranking or hybrid retrieval.
Include retrieval evidence in the response: sources used, candidate counts, fusion latency, and fallback reason.
Response
Array of matching symbols.
Which retrieval path was used:
"hybrid" or "legacy".Present when
includeRetrievalEvidence: true.Present if results were truncated.
Examples
sdl.symbol.getCard
Retrieves a single symbol card — the core unit of code understanding in SDL-MCP. Returns the full metadata record for a symbol: identity, file location, line range, kind, export status, visibility, parsed signature (with parameter names, types, return type, generics, overloads), a 1–2 line semantic summary, invariants, side effects, dependency edges (imports and calls with labels), metrics (fan-in, fan-out, 30-day churn, test references, canonical test mapping), cluster membership, and process participation. Supports ETag-based conditional requests viaifNoneMatch — if the symbol hasn’t changed, a notModified response is returned with zero data transfer.
Provide exactly one of symbolId or symbolRef.
Parameters
Repository identifier.
Symbol identifier (SHA-256 hash). Provide either this or
symbolRef.Natural symbol reference. Provide either this or
symbolId.ETag from a previous card response. Returns
notModified if the symbol hasn’t changed.Filter out call edges below this confidence threshold. Range: 0–1.
Include full call resolution details: resolver ID, resolution phase, and reason.
Response (full card)
Unique symbol identifier.
Repository identifier.
Relative file path.
{startLine, startCol, endLine, endCol}.function, class, interface, type, module, method, constructor, or variable.Symbol name.
Whether the symbol is exported.
public, protected, private, exported, or internal.Parsed signature.
1–2 line semantic summary of what the symbol does.
Known invariants, e.g.,
"returns non-null".Known side effects, e.g.,
"writes to disk".Human-readable dependency labels.
Usage metrics.
Community detection result:
{clusterId, label, memberCount}.Call-chain participation:
{processId, label, role: "entry"|"intermediate"|"exit", depth}.Content hash for conditional requests.
{ledgerVersion, astFingerprint}.Response (not modified)
Examples
sdl.symbol.getCards
Batch-fetches multiple symbol cards in a single round trip. Identical togetCard but accepts an array of up to 100 symbol IDs or natural references. Each symbol is resolved independently, with per-symbol ETag support via knownEtags. Symbols whose ETags match return notModified instead of the full card.
Provide exactly one of symbolIds or symbolRefs.
Parameters
Repository identifier.
Array of symbol IDs to fetch. Range: 1–100. Provide either this or
symbolRefs.Array of natural symbol references. Range: 1–100. Provide either this or
symbolIds. Each object: {name, file?, kind?, exportedOnly?}.Map of
symbolId → ETag for conditional fetching. Matching symbols return notModified instead of the full card.Filter call edges below this confidence threshold. Range: 0–1.
Include full call resolution details.
Response
Examples
Live Editor Buffer Tools
These three tools enable real-time indexing of unsaved editor content. They are primarily consumed by IDE integrations (such as the VSCode extension) to keep symbol search, cards, and slices current with the latest edits before files are saved.sdl.buffer.push
Pushes an editor buffer event to the live-index overlay. Accepts full buffer content along with metadata (cursor position, selections, dirty state). The overlay store tracks the buffer and schedules a background parse. Onsave events, the overlay is checkpointed into the durable graph database.
Parameters
Repository identifier.
Type of editor buffer lifecycle event.
Relative file path within the repo. Must not contain
...Full file content. Maximum 5 MB.
Editor buffer version number (monotonically increasing).
Whether the buffer has unsaved changes.
ISO timestamp of the event.
Language identifier, e.g.,
"typescript".Current cursor position:
{line, col}.Active text selections: array of
{startLine, startCol, endLine, endCol}.Response
Whether the event was accepted.
Repository identifier.
Current overlay version.
Whether a background parse was queued.
Whether a checkpoint was queued.
Any warnings, e.g., max draft files exceeded.
Example
sdl.buffer.checkpoint
Requests a manual checkpoint of all pending live draft buffers to the durable graph database. Forces the overlay store to write all pending buffer parses immediately, rather than waiting for the idle checkpoint timer.Parameters
Repository identifier.
Optional reason for the checkpoint.
Response
Repository identifier.
Whether the checkpoint was initiated.
Unique checkpoint identifier.
Buffers pending at time of request.
Files successfully checkpointed.
Files that failed to checkpoint.
ISO timestamp of last successful checkpoint.
Example
sdl.buffer.status
Returns the current state of the live editor buffer system for a repository. A diagnostic tool for IDE integrations.Parameters
Repository identifier.
Response
Repository identifier.
Whether live indexing is active.
Buffers awaiting processing.
Buffers with unsaved changes.
Background parse queue size.
Whether a checkpoint is queued.
ISO timestamp of last buffer event.
ISO timestamp of last checkpoint.
"success", "partial", "failed", or null.Error message if last checkpoint failed.
Pending reconciliation tasks.
Whether reconciliation is currently running.