
Brings the AIDE methodology into any MCP client through progressive disclosure of intent, research, and QA specs living alongside your code. Eight tools handle the full lifecycle: aide_discover builds a project tree showing spec locations and types, aide_read pulls full spec content with related files and links, aide_scaffold creates new specs while enforcing naming rules (like auto-renaming .aide to intent.aide when research.aide arrives), and aide_validate catches orphaned specs and naming conflicts before they drift. Also includes aide_inspect for pulling JSDoc and signatures without opening files, aide_upgrade to sync methodology artifacts against canonical versions, and aide_brain as a runtime routing layer. Ships with a one-command bootstrap that wires the server, pipeline agents, and slash commands into Claude Code projects.
MCP server that brings intent-driven development to any AI-powered IDE.
Manage .aide spec files that live next to your code — the domain context
that architects plan from, implementors build from, and QA validates against.
Learn more at aidemd.dev.
aide_init — wires methodology docs, pipeline commands, and this MCP server into your project in a single guided flowaide_scaffold handles the .aide / intent.aide rename rules so you never create conflicting specsaide_cleanup — removes a closed module's plan, todo and brief only when every checkbox is checked, and refuses with the exact open items otherwiseaide_validate — detects orphaned specs, missing descriptions, broken links, and naming conflicts before they cause driftaide_inspect — returns JSDoc, signatures, and kind for named symbols without opening files, giving agents Tier 2 progressive disclosure for codeaide_upgrade — compares your project's AIDE methodology artifacts against canonical versions and writes updates per-categoryaide_brain — on-demand tool that returns ready-to-execute prose telling the agent which MCP tools to call and how to reach whatever brain backend is wired, without the agent knowing which backend it isPick a launch mode — init asks, recommends global, and never switches an existing entry.
Global — pick it on a personal machine: reliable startup, stays on the installed version.
npm i -g @aidemd-mcp/server
aidemd-mcp init
Local — pick it for shared repos and cloud/CI: pinned to one exact version that /aide:upgrade moves forward.
npx -y @aidemd-mcp/server@0.11.1 init
--mode global|local skips the question (non-interactive runs default to local).
This command:
.mcp.json.aide/config/brain.aide (the brain location stays unset until /aide:brain config fills it and writes the brain MCP entry).claude/commands/aide/.claude/agents/aide/ and the kanban-maintainer board agent to .claude/agents/kanban/study-playbook, brain, aide, aide-handoff, kanban, aide-brain-author) to .claude/skills/.aide/docs/aide-tree launcher to .aide/bin/aide-tree.mjsREADME.md (appends if not present)All operations are additive — files that already exist are never overwritten. Safe to re-run at any time.
init asks for no brain location, path or token, and rejects backend flags such as --vault-path. --brain <integration> picks the bundled template (today only obsidian, the default).
After running, open Claude Code and run /aide. On the first run it routes to /aide:brain config, which fills the brain location in .aide/config/brain.aide, writes the brain MCP entry through sync, and seeds the brain. Anything else init could not finish is named in its closing follow-up list.
Run this after editing .aide/config/brain.aide — for example, when you update the brain path argument in mcpServerConfig.args or rename the brain in the name field:
Global:
aidemd-mcp sync
Local (use the version your aide entry pins):
npx -y @aidemd-mcp/server@0.11.1 sync
sync reads .aide/config/brain.aide, copies mcpServerConfig verbatim into .mcp.json under the fixed brain key, and writes the name field as the server label. Every other key in mcpServers (including your aide entry and any personal MCP integrations) is left byte-identical. If a legacy obsidian key is present it is removed in the same write. The command is idempotent — running it twice produces the same .mcp.json bytes, and the second invocation prints already in sync without touching the file. Exit code is 0 on success (including the no-change case), 1 on a missing or malformed brain.aide or invalid .mcp.json, and 2 on --help.
Example output after updating the brain path in mcpServerConfig.args:
Read .aide/config/brain.aide
Wrote brain MCP entry into .mcp.json
command: mcpvault
args: [D:/notes/new-brain]
Done.
If you use a client other than Claude Code, or prefer to configure manually, add the server entry to your client's MCP config file.
Global — recommended on your own machine. Install once, then register:
npm i -g @aidemd-mcp/server
claude mcp add aide -- aidemd-mcp
Or add to your project's .mcp.json:
{
"mcpServers": {
"aide": {
"command": "aidemd-mcp"
}
}
}
Local, pinned — for shared repos and cloud/CI:
claude mcp add aide -- npx -y @aidemd-mcp/server@0.11.1
Or add to your project's .mcp.json:
{
"mcpServers": {
"aide": {
"command": "npx",
"args": ["-y", "@aidemd-mcp/server@0.11.1"]
}
}
}
[!NOTE] The Quick Start command above handles this automatically for Claude Code users.
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonGlobal — recommended on your own machine (after npm i -g @aidemd-mcp/server):
{
"mcpServers": {
"aide": {
"command": "aidemd-mcp"
}
}
}
Local, pinned — for shared repos and cloud/CI:
{
"mcpServers": {
"aide": {
"command": "npx",
"args": ["-y", "@aidemd-mcp/server@0.11.1"]
}
}
}
[!NOTE] Claude Desktop does not inherit the terminal PATH. If you use nvm or Homebrew to manage Node,
npxmay not be found. Runwhich npxin your terminal to get the absolute path and replace"npx"with it in the config above.
Claude Desktop requires a full quit-and-reopen after any config change.
Add to ~/.cursor/mcp.json:
Global — recommended on your own machine (after npm i -g @aidemd-mcp/server):
{
"mcpServers": {
"aide": {
"command": "aidemd-mcp"
}
}
}
Local, pinned — for shared repos and cloud/CI:
{
"mcpServers": {
"aide": {
"command": "npx",
"args": ["-y", "@aidemd-mcp/server@0.11.1"]
}
}
}
Add to .vscode/mcp.json:
Global — recommended on your own machine (after npm i -g @aidemd-mcp/server):
{
"servers": {
"aide": {
"command": "aidemd-mcp"
}
}
}
Local, pinned — for shared repos and cloud/CI:
{
"servers": {
"aide": {
"command": "npx",
"args": ["-y", "@aidemd-mcp/server@0.11.1"]
}
}
}
[!NOTE] VS Code / Copilot uses
"servers"as the root key, not"mcpServers". Using the wrong root key causes the server to silently fail to load.
Add to ~/.windsurf/mcp.json:
Global — recommended on your own machine (after npm i -g @aidemd-mcp/server):
{
"mcpServers": {
"aide": {
"command": "aidemd-mcp"
}
}
}
Local, pinned — for shared repos and cloud/CI:
{
"mcpServers": {
"aide": {
"command": "npx",
"args": ["-y", "@aidemd-mcp/server@0.11.1"]
}
}
}
Scan the project for .aide spec files and return a progressive disclosure tree map showing each spec's type, location, and summary.
Inputs:
path (string, optional): Subdirectory to drill into. When provided, the response opens with the ancestor chain — the cascading intent lineage from root to target, each ancestor showing its description and alignment status — followed by the detailed subtree with summaries and warnings. When omitted, returns a shallow project-wide map (locations and types only).Read an .aide spec file with full context, returning the file content, its classified type (intent/research/plan/todo), related specs in the same directory, and links found in the content.
Inputs:
path (string, required): Path to the .aide file to read.Create new .aide spec files with automatic naming convention enforcement. Handles the rename 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.
Inputs:
directory (string, required): Directory where the .aide file(s) will be created.type (string, required): Type of .aide file to create. One of: intent, research, both, todo, plan.Remove a closed module's pipeline ephemerals — brief.aide, todo.aide and plan.aide — and nothing else. The preconditions are enforced in code. Where the module has a plan.aide, every plan checkbox must be checked and a todo.aide, if present, must be fully checked. Where it has no plan.aide, a fully checked todo.aide is removed on its own, while a brief.aide (removed only together with its plan), a todo.aide with no checkboxes, or a folder with no ephemerals is refused. A refusal removes nothing and names each unchecked item with its file and line. It never touches intent specs, code or .aide/session.aide, and it refuses paths outside the project. Cross-platform with no shell, so cleanup needs no rm permission — allow the tool by name.
Inputs:
path (string, required): Module folder that holds the ephemerals, relative to the project root.dryRun (boolean, optional): Report what would be removed, or what blocks removal, without removing anything. For inspection only — the real call is already safe.allowEmptyPlan (boolean, optional): Let a plan.aide with no checkboxes pass. Overrides nothing else, and has no effect where there is no plan.aide.Return the JSDoc block, signature, and kind for a named function, method, class, interface, or type alias in the workspace — Tier 2 progressive disclosure for code. Agents can understand a symbol's contract without opening the file.
Inputs:
name (string, required): Symbol name to look up.file (string, optional): Restrict search to a single file (relative to project root).Run a health check on .aide spec files in the project. Detects orphaned specs, missing specs, naming conflicts (.aide and intent.aide in the same folder), broken links, orphaned research files, and missing frontmatter descriptions.
Inputs:
path (string, optional): Subdirectory to validate. Defaults to the entire project when omitted.Boot-time precondition reporter. Returns two independent fields the orchestrator branches on separately: outdated (an array of stale AIDE artifact keys, comparing the project's versions.json against the shipped manifest), and brain (a { status, name?, hints } object reporting whether the project's brain.aide config is wired into .mcp.json). brain.status is a closed five-status union: ok | no-brain-aide | brain-aide-invalid | no-mcp-entry | mcp-drift, derived by comparing .aide/config/brain.aide against .mcp.json — no disk path validation. brain-aide-invalid means the file is present but unusable and carries a fault: either missing-sections (naming the required sections that are absent) or malformed (with a reason, which also covers a file that cannot be read). name is the user-declared label from brain.aide; it is absent on no-brain-aide and brain-aide-invalid. /aide:brain config is the recovery for both no-brain-aide and brain-aide-invalid. hints is an array of candidate vault locations the orchestrator can surface during recovery.
Inputs:
(none)
On-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.
Returns { status, instructions } — exactly two fields. No backend, no connector, no name. status mirrors aide_info.brain.status (ok | no-brain-aide | brain-aide-invalid | no-mcp-entry | mcp-drift). instructions is always non-empty: on ok it is the verbatim body of the selected section (orientation or config, per the optional kind input) from the user's .aide/config/brain.aide (no server substitution); on the failure states it carries remediation prose. no-brain-aide and brain-aide-invalid both route to /aide:brain config; brain-aide-invalid is composed from the detector's fault — either the missing required sections, named, or the malformed reason (including a file that is present but unreadable, which is never reported as absent). no-mcp-entry and mcp-drift tell the user to run sync with the launcher their aide entry uses (aidemd-mcp sync or npx -y @aidemd-mcp/server@<version> sync).
Inputs:
(none)
Bootstrap the AIDE development environment into a project using a guided one-at-a-time wizard. On the first call (no category), returns a summary of every step with status and detected framework. On subsequent calls (with category), writes all pending files for that category to disk and returns a manifest.
Inputs:
framework (string, optional): Force a specific framework instead of auto-detecting. One of: claude, cursor, windsurf, copilot.path (string, optional): Custom project root path. Defaults to the server working directory.category (string, optional): Write all would-create files for this category and return a manifest. One of: framework, methodology, commands, agents, skills, mcp, brain, ide, readme. Omit on the first call to get a metadata-only summary.aideMode (string, optional): Launch mode for the aide MCP entry, global (recommended) or local. Pass with category=mcp.brainMode (string, optional): Launch mode for the brain template's launcher, global or local. Pass with category=brain.Compare the AIDE methodology artifacts in this project against canonical versions and return a structured diff grouped by category. On the first call (no category), returns a lightweight summary of every category with drift status. On subsequent calls (with category), writes all diffed or missing files for that category to disk and returns a manifest.
Inputs:
framework (string, optional): Force a specific framework instead of auto-detecting. One of: claude, cursor, windsurf, copilot.path (string, optional): Custom project root path. Defaults to the server working directory.category (string, optional): Write all drifted or missing files for this category and return a manifest. One of: pointer-stub, methodology-docs, version-metadata, commands, agents, skills, mcp, ide, readme. Omit on the first call to get a metadata-only summary.After adding the server to your MCP client, ask your agent to run aide_init to bootstrap the AIDE methodology into your project. This installs the methodology docs, scaffolds pipeline commands, and wires everything up.
Then try: "Scaffold an intent spec for my authentication module" — the agent will use aide_discover to map your project and aide_scaffold to create the spec in the right place with the right naming conventions.
npm install
npm run build
npm test