Skip to content

External MCP sources

sdd is an MCP client. You register servers that know your design system, org libraries, or AST/code search. sdd calls them when the process needs that context.

text
Design-system MCP  ──┐
Org library MCP    ──┼──►  sdd (client)  ──► handoff / stage work
AST search MCP     ──┘         │
                               │ match: stage · workflow · intents · keywords

There is no “sdd MCP server for Cursor to drive sdd next” in this model. Process stays the CLI (sdd new / next / …). MCP is for pulling external knowledge.


Use cases

Use caseExample sourceTypical stages
UI/UX kit@acme/design-system-mcpdesign, implement, stories
Org / internal librarycustom MCP over your packagesdesign, implement
AST / code search engineorg or third-party AST MCPimplement, code_research
API cataloginternal API MCPdesign, lld, implement

Configure a source

bash
cd your-app
sdd init --here --ai copilot   # creates empty .sdd/mcp.yaml

# Design system
sdd mcp sources add \
  --id design-system \
  --description "Acme design system" \
  --command npx \
  --arg -y --arg @acme/design-system-mcp \
  --stages design,implement \
  --intents ui,design \
  --keywords button,component,token \
  --tool search_components \
  --tool-arg query={{query}} \
  --priority 20

# External AST / code search
sdd mcp sources add \
  --id code-ast \
  --command npx \
  --arg -y --arg @acme/ast-search-mcp \
  --cwd '{{projectRoot}}' \
  --stages implement,code_research \
  --intents code \
  --tool search \
  --tool-arg query={{query}} \
  --tool-arg root={{projectRoot}} \
  --priority 30

List / match / test / fetch:

bash
sdd mcp sources list
sdd mcp sources list --stage implement --query "primary button"
sdd mcp sources test design-system --query "button"
sdd mcp fetch --query "primary button" --intents ui

When sdd calls a source

MomentBehavior
Handoff (sdd agent, process that writes handoff)If auto_fetch_on_handoff: true, match sources to stage + workflow + title, call each invoke.tool, embed under External MCP context
sdd mcp fetchExplicit pull now
Stage / keywords / intents don’t matchSource skipped

Config file: .sdd/mcp.yaml

Templates in args:


Commands

CommandPurpose
sdd mcp sources listShow sources
sdd mcp sources add …Register source + when + invoke
sdd mcp sources test <id>List tools or call invoke
sdd mcp sources remove <id>Drop source
sdd mcp fetchPull matching sources now

Local AST (optional, not MCP)

Built-in TypeScript slices (no external server):

bash
sdd context --path src/app.ts --symbol main --stdout

See Code context.