adm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADM_ROOT | No | The repository root to use. The server uses the current directory to find the repo: the nearest ancestor that has `.decisions/` or `.git/`. To pin a repo, pass `--root C:\repo` or set the environment variable ADM_ROOT = "C:\repo". |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| record_decisionB | Record an ADR-style decision (or a constraint with type="constraint") into .decisions/. Call after making a non-obvious choice. |
| search_decisionsA | BM25 search across decisions and constraints. Active (accepted/proposed) only unless include_inactive or status is set. |
| get_context_for_taskA | Call BEFORE starting work. Returns active constraints in scope and the most relevant decisions for a task description and/or file paths. |
| supersede_decisionB | Replace an existing decision/constraint with a new one. The old record is marked superseded and both are cross-linked. |
| list_constraintsC | List active constraints, optionally only those whose scope covers a path. |
| check_conflictsA | Check a proposed change (diff, plan or description, plus touched files) against active constraint rules. ok=false means an accepted constraint is violated. |
| link_requirementC | Link a decision to SpecGate requirement ids (capability/requirement[#scenario]), test files and/or commits. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| active-constraints | All accepted/proposed constraints for this repo, as markdown. |
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: record vs. supersede, search vs. conflict checking, and linking requirements. Minor overlap exists because list_constraints covers a subset of what search_decisions can return, and get_context_for_task also surfaces constraints, so an agent may occasionally hesitate between lookup and context tools.
All seven tools use consistent snake_case and are verb-first (record_decision, search_decisions, get_context_for_task, list_constraints, supersede_decision, check_conflicts, link_requirement). The pattern is predictable and none of the names are misleading.
Seven tools is well within the ideal 3–15 range for a decision and constraint management server. Each tool maps to a distinct operation, and none feels padded or redundant.
The surface covers the core ADR/constraint lifecycle: record, search, context retrieval, supersede, conflict checking, and requirement linking. Minor gaps exist, such as no direct get-by-id or delete/unlink operation, but supersede and search largely compensate for these.