dotdog serves specs to any MCP-compatible agent. Six tools: getEntity, traverse, search, schema, summary, listProjects.
Add to .mcp.json in your project root:
{
"mcpServers": {
"dotdog": {
"command": "npx",
"args": ["-y", "dotdog", "serve"]
}
}
}
Restart Claude Code. Verify:
> List the projects available via dotdog
> What entities are defined in this project?
Add to Claude’s MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"dotdog": {
"command": "npx",
"args": ["-y", "dotdog", "serve"]
}
}
}
Restart Claude Desktop. dotdog appears in the tools menu.
Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"dotdog": {
"command": "npx",
"args": ["-y", "dotdog", "serve"]
}
}
}
Restart Cursor. Agent queries specs via Cmd+I.
Add to .github/copilot-instructions.md or VS Code MCP config:
{
"mcpServers": {
"dotdog": {
"command": "npx",
"args": ["-y", "dotdog", "serve"]
}
}
}
Add to ~/.continue/config.json:
{
"experimental": {
"mcpServers": {
"dotdog": {
"command": "npx",
"args": ["-y", "dotdog", "serve"]
}
}
}
}
Run dotdog behind an MCP gateway for multi-agent access:
# mcp-gateway config
servers:
dotdog:
command: npx
args: ["-y", "dotdog", "serve"]
env:
HOME: "/home/user"
brew tap specdog/tap
brew install dotdog
npm install -g dotdog
dotdog verifies your infrastructure against live cloud resources. No credentials stored — reads from environment variables.
| Provider | Token env var | Setup |
|---|---|---|
| Cloudflare | CLOUDFLARE_API_TOKEN |
Create token with R2/D1/Worker read permissions |
| Supabase | SUPABASE_ACCESS_TOKEN |
Generate access token |
| Vercel | VERCEL_TOKEN |
Create token with read-only scope |
| Netlify | NETLIFY_AUTH_TOKEN |
Personal access token |
| Railway | RAILWAY_TOKEN |
Generate token or use railway login |
| AWS | AWS_PROFILE |
Uses existing ~/.aws/credentials — no additional setup |
Define resources in an ### Infrastructure block, run dotdog compile, then dotdog live --type infra.
### Infrastructure
```yaml
resources:
- provider: cloudflare
resource: r2:my-bucket
entity: FileStorage
- provider: supabase
resource: project:abc123xyz
entity: Database
```