Server vs Spec Driven Development
A side-by-side look at the Server and Spec Driven Development MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Server for coding agents work as a local process; choose Spec Driven Development for coding agents as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Server when
- You need dedicated capabilities in the Coding Agents domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You want tools like
aide_discover, aide_read, aide_scaffold.
Choose Spec Driven Development when
- You need dedicated capabilities in the Coding Agents domain.
- You prefer a local stdio subprocess transport.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Coding Agents | Coding Agents |
| Quality signal | 64/100 · Good | 44/100 · Fair |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 4 | 439 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 9 | Not listed |
| Full listing | View Server | View Spec Driven Development |
Tools & capabilities
Server tools 9
aide_discoverScan for .aide spec files in this project. Returns a tree map of where specs live, following progressive disclosure. Without a path: returns a lightweight project-wide map — file locations and types only, no content. Use this once to understand the project's spec architecture. With a path: the response opens with the ancestor chain — the cascading intent lineage from project root down to the target directory, with each ancestor showing its description and alignment status (aligned/misaligned when set). The ancestor chain gives you the full inherited context before you read a single spec body. After the ancestor chain comes the detailed subtree of the target directory — summaries extracted from file content and anomaly warnings. Use this to drill into the area you're working on. .aide files are progressive disclosure specs that live next to orchestrator code — they contain intent (strategy, implementation contracts, anti-patterns), research (sources, data, patterns), or QA checklists (todo). Read .aide files BEFORE reading code — they are the context layer between folder structure and implementation details. File types (.aide, intent.aide, research.aide, plan.aide, todo.aide): - .aide — Intent spec (default). Strategy, contracts, anti-patterns. - intent.aide — Same as .aide, used only when research.aide exists in the same folder. - research.aide — Raw research. Sources, data points, pattern synthesis. - plan.aide -- Architect's implementation plan. Checkboxed steps for the implementor. - todo.aide — QA re-alignment document. Captures where implementation drifted from intent. Never have both .aide and intent.aide in the same folder.aide_readRead an .aide spec file with full context. Returns the file content, its classified type (intent/research/plan/todo), related specs in the same directory, and links found in the content (relative paths, inline references, URLs). Use this after aide_discover to drill into a specific spec.aide_scaffoldCreate new .aide spec files with automatic naming convention enforcement. Handles the naming rules: intent specs are .aide by default, but become intent.aide when research.aide exists in the same folder. Creating a research.aide auto-renames any existing .aide to intent.aide. Types: - intent — Strategy, contracts, anti-patterns - research — Sources, data, patterns (triggers rename of existing .aide) - both — Creates research.aide + intent.aide pair - todo — QA re-alignment document for QA agents - plan -- Architect's implementation plan (no naming interaction with intent/research)aide_validateHealth check for .aide spec files in the project. Detects orphaned specs (in folders with no orchestrator), missing specs (orchestrators with 3+ helper imports but no .aide), naming conflicts (.aide + intent.aide in same folder), broken links, orphaned research (research.aide without intent spec), and missing descriptions (specs with no description field in frontmatter).aide_upgradeCompare the AIDE methodology artifacts in this project against the canonical versions and return structured JSON results grouped by category. Use this when the user asks to update AIDE, sync AIDE, refresh AIDE, check for AIDE updates, or bring AIDE up to date. This is NOT for editing user .aide specs — it inspects methodology infrastructure only. The tool uses a two-call pattern for progressive disclosure: **First call (no `category` param):** Returns a lightweight summary — every category with file names, statuses, and counts, but NO file content. Use this to understand what has drifted and present a summary to the user. Ask which categories they want to apply. **Second call (with `category` param):** The tool writes all differs/missing files directly to disk itself and returns a manifest — file results with `filePath`, `status` (`"updated"`, `"created"`, or `"unchanged"`), and `name`, but NO `canonicalContent`. The agent never sees file content and never uses the Write tool for methodology files. Repeat the second call for each category the user confirms. As the calling agent, you must: 1. Call without `category` first to get the summary 2. Present each drifted category (differs/missing) and ask the user which to apply 3. For each confirmed category, call again with `category=X` — the tool writes the files and returns a manifest. Report what was updated/created to the user. 4. For the `mcp` category, the manifest still includes `prescription` data — merge the entry into the existing MCP config yourself (read → merge → write). If `malformed`, tell the user — do not overwrite. 5. For `ide`, the manifest may include `instructions` for VS Code extension install — execute that command for the user. Zed config is written directly by the tool. 6. For `brain`, `category=brain` never writes; the manifest entry carries an `instructions` field directing the agent to invoke `/aide:brain config`, which is the single canonical home for brain.aide creation. **IMPORTANT — one-at-a-time wizard pattern using AskUserQuestion:** Do NOT present all categories at once. Walk the user through ONE category at a time using AskUserQuestion with Yes/Skip options. Stop after each question and wait for confirmation before calling with that category. Categories: pointer-stub, methodology-docs, version-metadata, commands, agents, skills, mcp, ide, readme, brain. Upgrade surface (user code and user .aide specs are never touched): - AIDE pointer stub in the agent config file - Canonical methodology docs under .aide/docs/ - versions.json metadata under .aide/docs/ - Slash commands for all pipeline phases - Pipeline agent files, skill templates - MCP server entry in the project's MCP config - IDE file association config (Zed settings, VS Code extension) Supports Claude Code, Cursor, Windsurf, and Copilot. Auto-detects the framework or accepts an override.aide_infoBoot-time reporter called by the orchestrator at startup. Returns two independent top-level fields that the orchestrator must branch on separately: **`outdated` (array of stale artifact keys) — soft notification.** Compares the host's `.aide/versions.json` against the canonical manifest shipped with this npm package. Each element names an artifact key that is behind. An empty array means everything is current. A missing `.aide/versions.json` (old install predating version tracking) silently collapses to `[]`. Staleness is informational — the orchestrator continues with a heads-up to the user. **`brain` (precondition state) — hard gate.** Reports whether the host's brain MCP entry is wired and consistent. Shape: `{ status, name?, hints }`. The orchestrator must halt and direct the user to resolve the issue before continuing if `status` is not `'ok'`. No path validation is performed — the package never stats any directory on disk; state derives entirely from comparing `.aide/config/brain.aide` against `.mcp.json`. The four `brain.status` values: - `ok` — `.aide/config/brain.aide` exists and the host's `.mcp.json` `brain` entry matches the parsed `mcpServerConfig`. `name` is the user-declared descriptive label from brain.aide. The pipeline may proceed. - `no-brain-aide` — `.aide/config/brain.aide` is missing or unparseable. No `name` field. Remediation: run `/aide` and complete the brain wiring interview. - `no-mcp-entry` — brain.aide parsed successfully but the host's `.mcp.json` is absent, malformed, or has no `mcpServers.brain` key. `name` is present. Remediation: run `npx @aidemd-mcp/server@latest sync`. - `mcp-drift` — brain.aide and `.mcp.json` both exist but their `brain` entries disagree on `command` or `args`. `name` is present. Remediation: run `npx @aidemd-mcp/server@latest sync`. `hints` is always present on every status — an array of candidate brain root paths the orchestrator can surface during recovery. No parameters needed — uses the server's working directory.aide_brainOn-demand brain entry-point tool. Call this when you need to reach the brain mid-task — do NOT call it on every /aide boot. Boot-time brain precondition state is already reported by aide_info.brain.status; firing aide_brain at boot duplicates that work unnecessarily. **Optional `kind` parameter** — closed two-value vocabulary: `"orientation"` (default) or `"config"`. - `"orientation"` — returns the orientation section: a runtime briefing delivered when an agent reaches for the brain mid-task. Omitting `kind` is equivalent to passing `"orientation"`. - `"config"` — returns the integration-specific wiring flow, used by `/aide:brain config` to walk through brain setup. Install-time seed sections (`playbookIndex`, `studyPlaybook`, `updatePlaybook`, `researchIndex`) are NOT surfaced via this tool — agents reach those via the brain's read tool against the on-disk seed files. **Response shape: `{ status, instructions }` — exactly two fields. No `backend`, no `connector`, no `name`, no `kind`.** `status` — mirrors the `BrainState` tagged union from `buildBrainState`. The four-state vocabulary: `ok`, `no-brain-aide`, `no-mcp-entry`, `mcp-drift`. Branch on `status` alone — no other discriminant is present. `instructions` — always non-empty on every branch. Act on this field directly: - On `ok`: the verbatim bytes of the selected section from the host's `.aide/config/brain.aide`, byte-identical to what the user wrote between that section's markers. No trimming, no normalization, no `${...}` substitution. The selected section takes over from here — the tool has no further role. - On `no-brain-aide`: fixed remediation prose directing the user to run `npx @aidemd-mcp/server@latest init`. Do not proceed as if the brain were available. - On `no-mcp-entry`: fixed remediation prose directing the user to run `npx @aidemd-mcp/server@latest sync` and restart Claude Code. Do not proceed as if the brain were available. - On `mcp-drift`: fixed remediation prose directing the user to run `npx @aidemd-mcp/server@latest sync` and restart Claude Code, explicitly forbidding the agent from patching `.mcp.json` itself. Non-ok remediation prose is identical regardless of `kind` — the file is broken for both sections in the same way.aide_initBootstrap the AIDE development environment into a project. Returns structured JSON for agent consumption — not prose. The tool uses a two-call pattern for progressive disclosure: **First call (no `category` param):** Returns a lightweight summary — every step with `name`, `status` (would-create/would-overwrite/would-skip/exists), `category`, and `filePath`, but NO `content` fields. Also returns `brainHints` (brain root candidates) and detected `framework`. Use this to understand what needs to be done and which categories require user prompts. **Second call (with `category` param):** The tool writes all `would-create` AND approved `would-overwrite` files directly to disk itself and returns a manifest — steps with `filePath`, `status` (`created`, `overwritten`, or `exists`), and `name`, but NO `content`. `would-skip` steps stay `would-skip` in the manifest (tool writes nothing for them). The agent never sees file content and never uses the Write tool for new files. **Exception — MCP steps:** For MCP steps, the manifest includes `prescription` data (key name and entry object) so the agent can read the existing config, merge, and write. The tool never touches MCP config directly. **Exception — brain category:** When calling with `category=brain`, also pass `brainPath` with the user-confirmed brain root path. The tool creates the brain root scaffold directories directly. **Exception — IDE VS Code steps:** IDE steps that need external tooling (VS Code CLI) return instructions for the agent to execute, since those aren't simple file writes. **Agent branch logic — silent-on-create, prompt-on-overwrite:** After the first call, walk the categories using this rule: - **Pure-create category** (all steps are `would-create`, `would-skip`, or `exists`): apply silently by calling with `category=X` immediately — no AskUserQuestion. A category with nothing on disk to overwrite has no decision the user can inform. - **Overwrite-bearing category** (any step is `would-overwrite`): pause and use AskUserQuestion with structured options. Name the files that would be overwritten. If the user approves, call with `category=X` — the tool overwrites and returns `overwritten` in the manifest. If the user declines an overwrite but wants the new files, call with `category=X` — the tool writes only `would-create` steps; the `would-overwrite` step stays `would-overwrite` in the manifest. - **Inherent-decision categories** (framework, brain root path, MCP config merge, IDE choice): always use AskUserQuestion regardless of disk state. These are not file-write decisions — filesystem contents cannot resolve them. **IMPORTANT — one-at-a-time wizard pattern using AskUserQuestion:** Do NOT present a summary table of all categories. Do NOT offer "all" as an option. Do NOT ask conversational questions — use the `AskUserQuestion` tool with structured options at every pause point. 1. Call without `category` first to get the metadata 2. Present ONLY the detected framework — use AskUserQuestion with Yes/{alternatives} options. STOP. 3. Walk categories in order: methodology, commands, agents, skills, mcp, brain, ide, readme. For each: - Pure-create: apply silently (call with `category=X`), report results, move to next. - Overwrite-bearing: use AskUserQuestion naming the would-overwrite files. STOP. Wait for selection, then call with `category=X`. Report manifest (created N, overwrote M). Move to next. - Inherent decision: always use AskUserQuestion. STOP. 4. For brain: use AskUserQuestion with brainHints as labeled options (user can pick Other for custom path). STOP. Then call with `category=brain` and `brainPath`. 5. For MCP: use AskUserQuestion with Merge/Skip options. Merge the `prescription` entry into the existing config yourself (read → merge → write). STOP. 6. For IDE: use AskUserQuestion with multiSelect for Zed/VS Code/Neither. STOP. Each pause point is ONE AskUserQuestion → wait for selection → then proceed. Never show multiple categories at once. Never ask open-ended conversational questions.aide_inspectReturn JSDoc, signature, and kind for a named symbol without opening the full file — Tier 2 progressive disclosure for code. When an agent knows a function name from an import list or orchestrator file, call inspect to learn what the symbol does, what it accepts, and what it returns, based on its contract alone. Searches across TypeScript and JavaScript source files (ts, tsx, js, jsx, mjs, cjs). Use the optional `file` parameter to narrow the search to a single file when the location is already known.
Spec Driven Development tools
No tool names declared yet. Check the project README from the listing page.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Server
{
"mcpServers": {
"aidemd-mcp-server": {
"command": "npx",
"args": [
"-y",
"@aidemd-mcp/server@latest"
]
}
}
}
Spec Driven Development
{
"mcpServers": {
"spec-driven-development": {
"command": "npx",
"args": [
"-y",
"mcp-server-spec-driven-development@latest"
]
}
}
}
Frequently asked questions
Server is categorized under Coding Agents and uses a local stdio subprocess. Spec Driven Development belongs to Coding Agents and uses a local stdio subprocess. Pick Server for coding agents work and Spec Driven Development for coding agents.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Server is listed as free. Auth: no auth required. Spec Driven Development has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add aidemd-mcp-server and spec-driven-development as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Server has a quality signal of 64/100 (Good) with 2 views, 0 installs and 4 GitHub stars. Spec Driven Development has 44/100 (Fair) with 1 views, 0 installs and 439 GitHub stars.