Odel
mcp server decisions

mcp server decisions

Local
@roberton003PythonMITUpdated 4 days ago

Decision tracking with prediction validation and outcome gates for AI agents

🧠 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