Skip to main content
SDL-MCP exposes 35 tool actions through a 4-tool gateway that reduces tools/list overhead by 81%. Every MCP client, whether Claude Code, Cursor, Windsurf, or any other, gets the same tools with the same validated behavior.

The Tool Gateway

Instead of registering 35 individual MCP tools (which would cost ~3,742 tokens per conversation just to list), SDL-MCP consolidates everything into 4 namespace-scoped gateway tools:
Gateway ToolCovers
sdl.querySymbol search, cards, slices, deltas, context, memories, usage
sdl.codeCode access ladder (skeleton, hot-path, raw window)
sdl.repoRepository management, indexing, buffer, policy, PR risk
sdl.agentOrchestration, feedback, runtime execution, chain, manual
Before:  35 tools × full JSON Schema = ~3,742 tokens at conversation start
After:    4 tools × thin schema       =   ~713 tokens at conversation start
                                         ─────────────────────────────────
                                         ~3,029 tokens saved per conversation
This 81% reduction means less context overhead before the agent has done any work.

Calling Gateway Tools

Every gateway tool accepts an action discriminator field that routes the call to the correct handler. The full parameter set for that action is passed alongside action:
{
  "action": "symbol.search",
  "repoId": "my-repo",
  "query": "validateToken",
  "limit": 20
}
Flat tool names (e.g., sdl.symbol.search called directly) are also supported for backward compatibility. Both paths go through the same Zod validation and handler code.
In addition to canonical camelCase fields, common aliases are accepted: repo_id, root_path, symbol_id, symbol_ids, from_version, to_version, slice_handle, spillover_handle, if_none_match, known_etags, known_card_etags, edited_files, entry_symbols, and relative_cwd.

All 35 Tools at a Glance

CategoryToolDescription
Repositorysdl.repo.registerRegister a codebase for indexing
sdl.repo.statusHealth, versions, watcher, prefetch, live-index stats
sdl.repo.overviewCodebase summary: stats, directories, hotspots, clusters
sdl.index.refreshTrigger full or incremental re-indexing
Live Buffersdl.buffer.pushPush unsaved editor content for real-time indexing
sdl.buffer.checkpointForce-write pending buffers to the durable database
sdl.buffer.statusLive indexing diagnostics and queue depth
Symbolssdl.symbol.searchSearch symbols by name (with optional semantic reranking)
sdl.symbol.getCardGet a symbol card with ETag-based conditional support
sdl.symbol.getCardsBatch-fetch up to 100 cards in one round trip
Slicessdl.slice.buildBuild a task-scoped dependency subgraph
sdl.slice.refreshDelta-only update of an existing slice
sdl.slice.spillover.getPage through overflow symbols beyond the budget
Code Accesssdl.code.getSkeletonSignatures + control flow, bodies elided
sdl.code.getHotPathLines matching specific identifiers + context
sdl.code.needWindowFull source code (policy-gated, requires justification)
Deltassdl.delta.getSemantic diff + blast radius between versions
Policysdl.policy.getRead current gating policy
sdl.policy.setUpdate line/token limits and identifier requirements
Risksdl.pr.risk.analyzeScored PR risk with findings and test recommendations
Contextsdl.context.summaryToken-bounded portable briefing (markdown/JSON/clipboard)
Agentsdl.agent.orchestrateAutonomous task execution with budget control
sdl.agent.feedbackRecord which symbols were useful or missing
sdl.agent.feedback.queryQuery aggregated feedback statistics
Runtimesdl.runtime.executeSandboxed subprocess execution with outputMode control
sdl.runtime.queryOutputOn-demand retrieval and keyword search of stored output artifacts
Memorysdl.memory.storeStore or update a development memory with symbol/file links
sdl.memory.querySearch memories by text, type, tags, or linked symbols
sdl.memory.removeSoft-delete a memory from graph and optionally from disk
sdl.memory.surfaceAuto-surface relevant memories for a task context
Code Modesdl.chainMulti-step tool chaining with budget tracking and ETag caching
sdl.manualSelf-documentation — query usage guide, action schemas, output format reference
Metasdl.infoRuntime diagnostics — version, Node.js, platform, database, config paths
sdl.usage.statsSession and lifetime token savings statistics
sdl.action.searchSearch SDL action catalog to discover the right tool for a task
For most tasks, use tools in this escalation sequence:
  1. sdl.repo.status — check repo state and version
  2. sdl.repo.overview — understand codebase structure (start with level: "stats")
  3. sdl.symbol.search — find relevant symbols
  4. sdl.symbol.getCard / sdl.symbol.getCards — understand what symbols do
  5. sdl.slice.build — get related symbols for a task
  6. sdl.code.getSkeleton — see code structure without full bodies
  7. sdl.code.getHotPath — find specific identifiers in code
  8. sdl.code.needWindow — raw code only when necessary

Reference Pages

Repository & Indexing

sdl.repo.register, sdl.repo.status, sdl.repo.overview, sdl.index.refresh

Symbol Tools

sdl.symbol.search, sdl.symbol.getCard, sdl.symbol.getCards, plus live buffer tools

Graph Slices

sdl.slice.build, sdl.slice.refresh, sdl.slice.spillover.get, delta and context tools

Code Access

The Iris Gate Ladder: getSkeleton, getHotPath, needWindow, plus policy tools

Agent & Memory

Orchestration, feedback, memories, chain, manual, info, usage stats

Runtime Execution

sdl.runtime.execute and sdl.runtime.queryOutput — sandboxed subprocess execution

Build docs developers (and LLMs) love