mcp-server-decisions
Click on "Install 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., "@mcp-server-decisionsRecord a decision to use DuckDB for query caching."
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.
π§ MCP Server: Decisions
β‘ Zero External Dependencies β’ Stdlib-only Python β’ Append-only JSONL storage β’ Fully portable
π Key Features
π― Decision Recording β Capture architectural choices with problem statement, solution, rejected alternatives, and target technologies.
π Prediction Linking β Attach testable claims (latency, cost, scalability, reliability) tied to decisions.
β Outcome Validation β Record measured results and automatically compute accuracy scores (0β100 scale).
π Technology Performance Registry β Aggregate success rates and confidence metrics per technology over time.
πͺ Outcome Gate Pattern β In-band nudges inside tool responses prevent decision feedback loops from leaking (3.8% β 14.5% closure rate).
β‘ Zero Dependencies β Portable append-only JSONL log. No database servers, no migrations, no background daemons.
Related MCP server: Axiom-hub
β‘ Quick Example
1οΈβ£ Record a Decision
# Agent or user records a choice:
record-decision(
problem="Query latency exceeds SLA (p99 > 500ms)",
chosen_solution="DuckDB + Parquet caching",
rejected_alternatives=["Redis", "Elasticsearch"],
technologies=["duckdb", "parquet"],
predictions=[
{"prediction_type": "LATENCY", "predicted_value": "p99 < 200ms"},
{"prediction_type": "COST", "predicted_value": "< $50/month"}
]
)
# β Returns: DEC-2026-0001, PRD-2026-0001, PRD-2026-00022οΈβ£ Record an Outcome
record-outcome(
prediction_id="PRD-2026-0001",
actual_value="p99 = 180ms",
measurement_source="MONITORING",
accuracy_score=95
)
# β Returns: SUCCESS β
(95% accuracy)3οΈβ£ Query Prior Decisions & Technology Stats
# Search past decisions before choosing a technology:
query-decisions(technology="duckdb", max_results=5)
# View aggregated technology performance:
python3 scripts/technology_performance_report.py
# β Output:
# technology: duckdb | successful: 12 | failed: 1 | avg_accuracy: 91.2% | confidence: HIGHπ Quick Start & Setup
π¦ Installation
# From PyPI (once published) or local editable install:
pip install -e .π οΈ Client Configuration
Add to your MCP client configuration (e.g. Claude Desktop, Claude Code, Cursor, OpenCode):
{
"mcpServers": {
"mcp-server-decisions": {
"type": "stdio",
"command": "mcp-server-decisions"
}
}
}For client-specific setup guides (Claude, OpenCode, Codex, Antigravity), see π docs/INTEGRATIONS.md.
How It Works
The Loop
Decide β Predict β Implement β Measure β Validate β Learn β Next DecisionRecord a decision β Store the problem, chosen solution, alternatives, and technologies
Make predictions β Attach testable claims (latency, cost, reliability, etc.)
Implement β Build the system
Measure results β Capture actual values from monitoring, logs, benchmarks
Validate β The server calculates accuracy (0-100) and validation status (SUCCESS / PARTIAL_SUCCESS / FAILED)
Learn β Review what worked via the Technology Performance Registry
Next decision β Query past decisions before making new recommendations
The Outcome Gate Pattern
Decision loops leak because predictions aren't validated. This server embeds a reminder directly in tool responses:
Without Outcome Gate:
Decision is made β implementation starts β results come in β nobody checks if prediction was right
With Outcome Gate:
{
"decision_id": "DEC-2026-0001",
"status": "OK",
"OUTCOME_GATE": "β οΈ 2 prediction(s) from this session still lack outcomes: [PRD-2026-0001, PRD-2026-0002]. Record results via record-outcome before ending."
}The nudge is in-band (inside the tool response), where agents are already looking. Result: 3.8% β 14.5% closure rate improvement (validated on internal tool).
Real Example: After recording a decision with 3 predictions, the response includes:
{
"decision_id": "DEC-2026-0042",
"prediction_ids": ["PRD-2026-0051", "PRD-2026-0052", "PRD-2026-0053"],
"status": "OK",
"OUTCOME_GATE": "β οΈ 3 prediction(s) from this session still lack outcomes: [PRD-2026-0051, PRD-2026-0052, PRD-2026-0053]. Record results via record-outcome before ending."
}Next query still shows the gate until all 3 outcomes are recorded. Once they are, the gate disappears automatically.
For the full pattern explanation, see docs/OUTCOME-GATE-PATTERN.md.
ποΈ Architecture & Tech Stack
Storage: Single append-only
JSONLfile (no database setup, no migrations, portable & git-friendly).IDs: Sequential per calendar year (
DEC-2026-0001,PRD-2026-0002,OUT-2026-0003).Accuracy Scoring: Automatic classification (
β₯90SUCCESS,50β89PARTIAL_SUCCESS,<50FAILED).Runtime: Stdlib-only Python 3.10+ (zero external pip runtime dependencies).
Protocol: Model Context Protocol (JSON-RPC 2.0 over stdio).
βοΈ Environment Variables
Variable | Description | Default Path |
| Path to the append-only JSONL log file |
|
π Documentation & Resources
Document | Purpose |
β‘ Quick Start | 5-minute setup guide & first decision |
π Client Integrations | Setup configs for Claude, OpenCode, Codex, Antigravity |
Core design rationale & data models | |
π‘ Detailed Examples | Real JSON-RPC request/response payloads |
πͺ Outcome Gate Pattern | In-band feedback loop design philosophy |
π Wiki | FAQ and advanced topics |
π§ͺ Development & Testing
Run unit & selftests locally:
python3 server.py --selftest
# β β
All self-tests passedSee π CONTRIBUTING.md to contribute features or fixes.
πΊοΈ Roadmap
Core decision / prediction / outcome tracking
Outcome Gate in-band nudges
Technology Performance Registry
Web UI for browsing & searching decisions
Webhooks / notifications on low prediction accuracy
Pre-built decision templates & domain patterns
π License & Disclaimer
MIT Β© 2026 Roberton003 β See LICENSE.
This project is community-built and independent. It is not affiliated with any organization or standard-setting body.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Roberton003/mcp-server-decisions'
If you have feedback or need assistance with the MCP directory API, please join our Discord server