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 Tool | Covers |
|---|---|
sdl.query | Symbol search, cards, slices, deltas, context, memories, usage |
sdl.code | Code access ladder (skeleton, hot-path, raw window) |
sdl.repo | Repository management, indexing, buffer, policy, PR risk |
sdl.agent | Orchestration, feedback, runtime execution, chain, manual |
Calling Gateway Tools
Every gateway tool accepts anaction discriminator field that routes the call to the correct handler. The full parameter set for that action is passed alongside action:
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
| Category | Tool | Description |
|---|---|---|
| Repository | sdl.repo.register | Register a codebase for indexing |
sdl.repo.status | Health, versions, watcher, prefetch, live-index stats | |
sdl.repo.overview | Codebase summary: stats, directories, hotspots, clusters | |
sdl.index.refresh | Trigger full or incremental re-indexing | |
| Live Buffer | sdl.buffer.push | Push unsaved editor content for real-time indexing |
sdl.buffer.checkpoint | Force-write pending buffers to the durable database | |
sdl.buffer.status | Live indexing diagnostics and queue depth | |
| Symbols | sdl.symbol.search | Search symbols by name (with optional semantic reranking) |
sdl.symbol.getCard | Get a symbol card with ETag-based conditional support | |
sdl.symbol.getCards | Batch-fetch up to 100 cards in one round trip | |
| Slices | sdl.slice.build | Build a task-scoped dependency subgraph |
sdl.slice.refresh | Delta-only update of an existing slice | |
sdl.slice.spillover.get | Page through overflow symbols beyond the budget | |
| Code Access | sdl.code.getSkeleton | Signatures + control flow, bodies elided |
sdl.code.getHotPath | Lines matching specific identifiers + context | |
sdl.code.needWindow | Full source code (policy-gated, requires justification) | |
| Deltas | sdl.delta.get | Semantic diff + blast radius between versions |
| Policy | sdl.policy.get | Read current gating policy |
sdl.policy.set | Update line/token limits and identifier requirements | |
| Risk | sdl.pr.risk.analyze | Scored PR risk with findings and test recommendations |
| Context | sdl.context.summary | Token-bounded portable briefing (markdown/JSON/clipboard) |
| Agent | sdl.agent.orchestrate | Autonomous task execution with budget control |
sdl.agent.feedback | Record which symbols were useful or missing | |
sdl.agent.feedback.query | Query aggregated feedback statistics | |
| Runtime | sdl.runtime.execute | Sandboxed subprocess execution with outputMode control |
sdl.runtime.queryOutput | On-demand retrieval and keyword search of stored output artifacts | |
| Memory | sdl.memory.store | Store or update a development memory with symbol/file links |
sdl.memory.query | Search memories by text, type, tags, or linked symbols | |
sdl.memory.remove | Soft-delete a memory from graph and optionally from disk | |
sdl.memory.surface | Auto-surface relevant memories for a task context | |
| Code Mode | sdl.chain | Multi-step tool chaining with budget tracking and ETag caching |
sdl.manual | Self-documentation — query usage guide, action schemas, output format reference | |
| Meta | sdl.info | Runtime diagnostics — version, Node.js, platform, database, config paths |
sdl.usage.stats | Session and lifetime token savings statistics | |
sdl.action.search | Search SDL action catalog to discover the right tool for a task |
Recommended Tool Order
For most tasks, use tools in this escalation sequence:sdl.repo.status— check repo state and versionsdl.repo.overview— understand codebase structure (start withlevel: "stats")sdl.symbol.search— find relevant symbolssdl.symbol.getCard/sdl.symbol.getCards— understand what symbols dosdl.slice.build— get related symbols for a tasksdl.code.getSkeleton— see code structure without full bodiessdl.code.getHotPath— find specific identifiers in codesdl.code.needWindow— raw code only when necessary
Reference Pages
Repository & Indexing
sdl.repo.register, sdl.repo.status, sdl.repo.overview, sdl.index.refreshSymbol Tools
sdl.symbol.search, sdl.symbol.getCard, sdl.symbol.getCards, plus live buffer toolsGraph Slices
sdl.slice.build, sdl.slice.refresh, sdl.slice.spillover.get, delta and context toolsCode Access
The Iris Gate Ladder:
getSkeleton, getHotPath, needWindow, plus policy toolsAgent & Memory
Orchestration, feedback, memories, chain, manual, info, usage stats
Runtime Execution
sdl.runtime.execute and sdl.runtime.queryOutput — sandboxed subprocess execution