mcpField
M
mcp-server-decisions

mcp-server-decisions

Local
github.com/Roberton003Memory & Knowledge0Updated 8w ago

About mcp-server-decisions

mcp-server-decisions is an open-source MCP server for teams, developers, and AI agents to record technical decisions alongside testable predictions and observed results. Its append-only JSONL log and outcome-gate reminders support auditable decisions and feedback on technology choices.

Key features

  1. 01Record decisions, alternatives, and predictions
  2. 02Link decisions to measurable outcomes
  3. 03Flag predictions awaiting validation
  4. 04Query by keyword, technology, or domain
  5. 05Aggregate technology performance

Use cases

  1. 01Document an architectural choice and its rationale
  2. 02Validate predictions after implementation
  3. 03Review past decisions and technology outcomes

MCP support

It exposes four tools to MCP clients over JSON-RPC on stdio for recording and querying decisions, predictions, and outcomes. Tool responses also flag predictions that remain unvalidated.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"roberton003-mcp-server-decisions": {
"command": "uvx",
"args": [
"mcp-server-decisions"
],
"env": {
"MCP_DECISIONS_LOG_PATH": "<MCP_DECISIONS_LOG_PATH>"
}
}
}
}
Run commanduvx mcp-server-decisions
Environment variables to set
MCP_DECISIONS_LOG_PATHPath to decisions log file (default: ~/.local/share/mcp-decisions/decisions_log.json)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypimcp-server-decisions1.0.2

Tools

4

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
domainstringNoTechnical domain (e.g., 'data-engineering', 'backend', 'ai')
statusenumNoDecision statusACTIVE | SUPERSEDED | DEPRECATED
adr_refstringNoReference to an associated ADR, if any (e.g., 'docs/adr/adr-012-duckdb.md')
problemstringYesThe problem or technical opportunity identified
predictionsarrayNoInitial predictions known at decision time (optional)
technologiesarrayYesTechnologies involved in this decision (e.g., ['duckdb', 'parquet'])
chosen_solutionstringYesThe solution that was chosen
rejected_alternativesarrayYesAlternatives considered and rejected

Details

From the project README

🧠 MCP Server: Decisions

An open-source MCP server that helps teams record architectural decisions, connect them to testable predictions, and validate outcomes over time. It gives AI agents and developers a lightweight, auditable memory for technical choices.

Python 3.10+ MCP License: MIT PyPI Glama

Architectural Decision Feedback Loop with Outcome Gates

✨ Project Highlights

  • Outcome-linked decisions — connect each technical choice to measurable predictions and observed results.
  • In-band outcome gates — tool responses identify predictions that still need validation before the work is considered complete.
  • Portable storage — append-only JSONL keeps the log inspectable, easy to back up, and free from database setup.
  • Zero runtime dependencies — Python's standard library is enough to run the server.
  • MCP-native interface — expose decision tracking through JSON-RPC over stdio to MCP-compatible clients.
  • Technology feedback — aggregate validated outcomes to inform future technology choices.

🧰 Technical Stack

LayerTechnology
ProtocolModel Context Protocol over JSON-RPC 2.0
RuntimePython 3.10+
StorageAppend-only JSONL file
PackagingPyPI / Hatchling
TestingBuilt-in self-test command
LicenseMIT

🔄 Architecture

flowchart TD
    A[MCP client or AI agent] --> B[JSON-RPC over stdio]
    B --> C[mcp-server-decisions]
    C --> D[Record decision]
    C --> E[Attach prediction]
    C --> F[Record outcome]
    C --> G[Query decisions and technology history]
    D --> H[(Append-only JSONL log)]
    E --> H
    F --> H
    G --> H
    F --> I[Validation status and accuracy]
    I --> J[Future technical decisions]

📌 What It Provides

The server exposes four tools:

ToolPurpose
record-decisionStore the problem, chosen solution, alternatives, technologies, and predictions.
record-predictionAdd a measurable prediction to an existing decision.
record-outcomeRecord the observed result and classify the prediction as success, partial success, or failure.
query-decisionsSearch decisions by keyword, technology, domain, or result limit.
Example flow
Decide → Predict → Implement → Measure → Validate → Learn

A decision can produce an outcome-gate reminder such as:

{
  "decision_id": "DEC-2026-0001",
  "status": "OK",
  "OUTCOME_GATE": "2 prediction(s) still lack outcomes."
}

The reminder is a workflow signal, not a claim about adoption or measured impact. See the Outcome Gate Pattern for the design and trade-offs.

📊 Current Project Status

AreaStatus
Decision, prediction, and outcome trackingAvailable
Outcome-gate remindersAvailable
Technology performance reportAvailable
PyPI packagePublished as 1.0.2
External adoption metricsNot collected yet
Web UI and notificationsRoadmap

The project is early-stage. Contributions, examples from real projects, and feedback are welcome.

🚀 Setup

Prerequisites
  • Python 3.10 or newer
  • An MCP-compatible client
Install from PyPI
python3 -m pip install mcp-server-decisions
Run the self-test
python3 -m pip install -e .
python3 server.py --selftest
Configure an MCP client
{
  "mcpServers": {
    "mcp-server-decisions": {
      "command": "mcp-server-decisions"
    }
  }
}

For client-specific configuration and troubleshooting, see Client Integrations. For a guided first run, see Quick Start.

Configure the log path

By default, the server writes to ~/.local/share/mcp-decisions/decisions_log.json. Set MCP_DECISIONS_LOG_PATH to use another file:

MCP_DECISIONS_LOG_PATH=/path/to/decisions.json mcp-server-decisions

🗂️ Project Structure

.
├── server.py                         # MCP server and tool implementations
├── scripts/                          # Reports derived from the decision log
├── docs/                             # Architecture, examples, and integrations
├── .github/ISSUE_TEMPLATE/           # Reusable bug and feature templates
├── CONTRIBUTING.md                   # Development and contribution workflow
├── QUICKSTART.md                     # Guided setup and first decision
├── server.json                       # MCP Registry metadata
├── pyproject.toml                    # PyPI package metadata
└── LICENSE                           # MIT license

📚 Documentation

🛣️ Roadmap

  • Core decision, prediction, and outcome tracking
  • Outcome-gate reminders
  • Technology performance reporting
  • Web UI for browsing and searching decisions
  • Notifications for low prediction accuracy
  • Reusable decision templates and domain patterns

🤝 Contributing

Issues and pull requests are welcome. Start with CONTRIBUTING.md, run the self-test, and explain the problem or use case in the pull request.

📄 License

MIT © 2026 Roberto Nascimento

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.