@mhdd_24/adr-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@mhdd_24/adr-mcpCreate a new ADR for migrating to PostgreSQL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@mhdd_24/adr-mcp
Architecture Decision Records management.
Same architecture as @mhdd_24/sublime-mcp.
Full documentation: docs/WIKI.md
How it works (30 seconds)
You (chat) → MCP client → adr-mcp → ADR APIs / CLIs / local toolsRelated MCP server: mcp-adr
Prerequisites
Requirement | Notes |
Node.js 18+ | ESM TypeScript MCP server |
Credentials / CLIs | See environment variables below |
Install
Option A — npm (after publish)
npm install -g @mhdd_24/adr-mcpOption B — npx
npx @mhdd_24/adr-mcpOption C — clone and build
git clone https://github.com/Mhdd-24/ADR-MCP.git
cd ADR-MCP
npm install
npm run build
node dist/index.jsConfigure Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"adr": {
"command": "npx",
"args": ["-y", "@mhdd_24/adr-mcp"],
"env": {
"ADR_DIR": "..."
}
}
}
}Local development:
{
"command": "node",
"args": ["/absolute/path/to/ADR-MCP/dist/index.js"]
}Environment variables
Variable | Description |
| ADR directory |
Tools
Tool | Description |
| Show ADR directory. |
| List ADR files. |
| Generate a new ADR markdown stub. |
License
ISC
Available Tools
3 toolsadr_listB
List ADR files.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | ADR directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'list' which implies a read-only operation, but it doesn't disclose what is returned (file names, paths, contents), whether subdirectories are included, or any formatting/pagination. This is minimal and leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no filler. It is efficiently front-loaded, though it is so brief that it borders on under-specification. For conciseness alone, it earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description is too sparse. It fails to clarify what the output looks like, how the 'dir' parameter affects results, or how this tool differs from siblings in terms of use cases. An agent would need to inspect other sources to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the 'dir' parameter has a description ('ADR directory'). The tool description adds no extra meaning beyond that. Since the schema already documents the parameter adequately, a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List ADR files.' uses a specific verb ('list') and a clear resource ('ADR files'). It is distinct from siblings adr_status (which likely reports status) and adr_new (which creates new ADRs), so an agent can differentiate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus adr_status or adr_new. The description doesn't state typical scenarios (e.g., 'use this to see all existing ADRs' or 'for status, use adr_status'). An agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adr_newC
Generate a new ADR markdown stub.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Decision title | |
| context | No | Context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the bare action of generating a stub. It does not disclose side effects such as file creation, naming conventions, or filesystem writes, nor what 'stub' contains — a significant gap for a creation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no filler or redundancy. It is efficient but borders on under-specification given the total absence of supplementary behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description is thin: with no annotations, no output schema, and no guidance on what the stub contains or what the tool returns, an agent lacks enough context to invoke it with full confidence. Required/optional parameter info is present in the schema, but the operational outcome of generation is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the baseline of 3 applies. The description adds no parameter-level meaning beyond the schema's 'Decision title' and 'Context', leaving the role of context in the generated stub undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate') and resource ('a new ADR markdown stub'), making the core action clear. It is distinguishable from siblings adr_status and adr_list by the generate-verb and new-stub object, though it does not explicitly name or differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus adr_status or adr_list, nor any when-not-to-use conditions. The intended usage must be inferred entirely from the tool name and one-line purpose, with no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adr_statusC
Show ADR directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure burden. 'Show' implies a read-only operation, but the description does not explain what output is produced, whether any state changes occur, or what 'ADR directory' actually contains. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded, with no wasted words. However, it is under-specified: a single terse sentence does not provide enough information to be considered appropriately sized for a tool with no annotations and sibling ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and an output schema, the description is the only source of behavioral and selection context. It fails to explain what status information is shown or how it relates to adr_list, leaving an agent without enough context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so schema coverage is trivially complete. With no parameters, there is no parameter semantic burden for the description to carry; the baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Show ADR directory.' uses a clear verb ('show') and names a resource ('ADR directory'), so it is not a tautology. However, it does not clarify what 'status' means or how this differs from the sibling tool adr_list, which likely also presents ADR information. The purpose is therefore vague rather than fully specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use adr_status instead of adr_list or adr_new. It does not mention context, prerequisites, or exclusions, so an agent cannot decide between sibling tools based on this text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
adr_list - First observed
adr_new - First observed
adr_status
TDQS
Scored across 3 tools
adr_status and adr_list overlap in purpose, both providing visibility into ADRs (directory vs. files), which could confuse an agent. adr_new is clearly distinct as a creation action.
All tools share the adr_ prefix, making the pattern predictable. However, suffixes mix nouns and verbs (status, list, new) rather than following a strict verb_noun convention.
Three tools is well-scoped for a focused ADR management server, covering the essential actions without unnecessary complexity.
Creating and listing ADRs are covered, but there is no tool to view the content of a specific ADR, nor update or delete records. This leaves a notable gap in the lifecycle.
Related MCP Connectors
Manage portable AI agent playbooks, Agent Skills, MCP configurations, personas, and memory.
List, read, edit, and deploy your GenMB AI-generated apps from any MCP client.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Related MCP Servers
- AlicenseAqualityCmaintenanceAutomatically generates Architecture Decision Records (ADRs) from Claude Code conversations using Claude Opus. Features AI quality review, duplicate detection, and dependency graph.95 npm3MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to create, manage, diagram, and export Architecture Decision Records (ADRs) directly from conversation.15MIT
- AlicenseNot gradedqualityAmaintenanceArchitectural decision tracker with staleness detection — records decisions and alerts when code changes invalidate them.MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that turns a folder of Markdown ADRs into live tools for AI agents: search, author, validate, link, and trace architectural decisions, with preview-by-default writes.1MIT