Deterministic, offline, read-only ADR decision memory for coding agents. No model or network calls.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Decision memory for human- and agent-authored plans β architecture decision records that are machine-readable, enforceable in CI, and legible to agents, without leaving git.
Most ADR tooling is a markdown template and a static site generator. That
records a decision; it doesn't make the decision do anything. adrkit treats a
record as typed data with a markdown body and adds one field β affects β
so a tool can answer "which decisions govern this pull request?" and put the
answer where the next decision is being made.
Generated knowledge systems answer "how does the system work now?" adrkit answers "what did people decide, what alternatives were rejected, and which decisions govern this change?" ADR-0037 sets that boundary: generated knowledge systems are downstream read models of adrkit's human-reviewed decision corpus, never decision authorities.
Tools such as OpenWiki can consume ADRs as evidence and turn them into browsable current-state documentation. That is complementary to adrkit: the generated wiki is a downstream read model, while the reviewed records in git retain authority over decision lifecycle and typed relationships. Machine verification of generated content is not human ratification of a decision.
See the provisional generated-knowledge guide for the OpenWiki setup being evaluated and the ownership boundary ADR-0037 sets between the two tools.
The CLI is published as @adrkit/cli
and exposes the adr binary. Published artifacts target Node 22+:
Or add it to a project (Bun-first repos can use bun add -D @adrkit/cli / bunx):
The pure library surfaces install independently:
npm i @adrkit/core @adrkit/evaluator.
See the Quickstart guide and the full command reference.
| If you want to... | Start here | Notes |
|---|---|---|
| Validate or inspect an ADR corpus | @adrkit/cli | npx @adrkit/cli ... on Node 22+ |
| Build your own tooling | @adrkit/core | Pure parser, validator, matcher, and queue APIs |
| Run the deterministic proposal checks | @adrkit/evaluator | Pass 0 is the shipped evaluator surface today |
| Feed prior decisions to coding agents | @adrkit/mcp | Local, read-only stdio MCP server |
| Run adrkit from an OCI image | Container usage | Lockstep multi-architecture image, beginning with the first release containing ADR-0032 |
| Comment governing decisions on pull requests | Use in CI | GitHub Action from this repository |
| Evaluate decision governance with a generated wiki | Generated knowledge guide | Provisional OpenWiki recipe; no runtime coupling |
| Add decision memory to Spec Kit | @adrkit/spec-kit | Published separately for Spec Kit >=0.13.0,<1.1.0 |
| Add decision memory to Copilot, Claude Code, or opencode | adrkit agent plugin | Install from this repository or marketplace |
Beginning with the first lockstep release containing
ADR-0032,
releases are published as a multi-architecture OCI image at
ghcr.io/mbeacom/adrkit. Pin an immutable vX.Y.Z tag in automation; vX
and latest move only after that lockstep release has completed:
The MCP command keeps stdin open because MCP uses stdio. Its repository mount is
read-only, matching the server contract; use an absolute host path in MCP client
configuration. For CLI commands that intentionally write (new, or
migrate without --dry-run), omit --read-only and the mount's :ro
suffix. The image runs as the non-root node user; on a host with a different
UID/GID, add --user "$(id -u):$(id -g)". On SELinux hosts, add the
appropriate bind-mount label (for example, :Z).
The default image treats an unrecognized selector as an adr subcommand.
Explicit selectors are cli/adr/adrkit, mcp/adrkit-mcp,
ci/adrkit-ci, and queue-action/adrkit-queue-action. The default
--help describes these selectors; cli --help opens the CLI command
reference. The container also reserves -h, container-help, and
--container-help; CLI help subcommands such as help lint otherwise pass
through unchanged.
Build the same source locally with Docker or Podman. Purpose-specific cli,
mcp, ci, and queue-action targets are isolated for local policy and SBOM
inspection; the registry publishes only the all-in-one adrkit target:
The two CI entry points preserve the existing GitHub Actions runtime contract:
they expect GITHUB_WORKSPACE, the event payload and repository environment,
INPUT_* values, and a token. For hosted GitHub Actions, the repository-backed
Actions remain the simpler interface:
mbeacom/adrkit/packages/ci@v0 and
mbeacom/adrkit/packages/ci/queue@v0. Container publication and recovery are
documented in docs/RELEASING.md.
The governing-decisions Action also has a repository-root entry point for its
GitHub Marketplace listing. That root form is available beginning with
v0.13.0; the existing packages/ci form remains supported.
GitHub lists only root Action metadata, so the queue Action stays at its nested
path.
adr queue emits the review backlog as a deterministic, read-only projection of
the corpus β byte-for-byte identical for identical inputs:
In CI, the @adrkit/ci Action comments the governing decisions on the PRs that
touch them β read-only, comment-only, no database, no approval. See
Use in CI.
The most differentiated hook: @adrkit/mcp is a local, read-only
Model Context Protocol server that lets an
agent retrieve prior decisions β including the rejected and superseded ones β
before proposing something already tried. No writes, no HTTP/auth, no model,
embedding, or network access, and no persistent index. It exposes exactly four
tools:
| Tool | Purpose |
|---|---|
search_decisions | Filtered search across the corpus |
get_decision | Fetch one record by id |
get_decision_context(files[]) | Decisions governing a set of files |
list_superseded | The graveyard β what was already rejected |
Run it against a repository's corpus:
--cwd (env ADRKIT_MCP_CWD) must be a Git worktree root; --dir (env
ADRKIT_MCP_DIR, default docs/adr) is resolved within it. stdout carries only
JSON-RPC frames; diagnostics go to stderr; the graveyard is included by default.
See the MCP setup guide and
packages/mcp/README.md for the full tool contracts.
Spec Kit takes you from specify to
plan to tasks to implement. What it does not do is check the plan it just
produced against the decisions you already made, or record the new decisions
that plan contains β so every feature starts from an empty context and
re-litigates settled questions.
@adrkit/spec-kit closes that loop:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/adrkit-decision-memory)<a href="https://allmcps.com/mcp/adrkit-decision-memory"><img src="https://allmcps.com/api/badge/adrkit-decision-memory?style=directory" alt="Adrkit decision memory on AllMCPs" /></a>