Elite Reasoning MCP
Elite Reasoning MCP is a Model Context Protocol server that adds persistent workflow memory, evidence-gated execution, reasoning safety, and quality assurance to AI coding agents via 90+ tools. Key capabilities:
Workflow & Planning
Create and track evidence-gated workflows (
workflow_run,workflow_update_step,elite_doctor,smoke_test_gate)Route complex requests and optimize prompts (
orchestrate_request_tool,polish_prompt,select_reasoning_protocol)
Memory & Knowledge
Persist decisions, mistakes, and context across sessions with trust/privacy gating (
record_decision,record_mistake,ingest_context,memory_context_pack)Query a temporal knowledge graph and sync memory across teams (
sync_team_memory)
Risk Analysis & Safety
FMEA, Swiss Cheese audits, pre-mortem simulations, and bias scans (
fmea_analysis,swiss_cheese_audit,simulate_future_regrets,bias_scan)Pre-commit code audits and anti-pattern checks (
pre_commit_audit,check_anti_patterns)
Decision Support
Adversarial 5-perspective reviews, build-vs-buy analysis, and Socratic stress-testing (
decision_council_review,adopt_vs_build,socratic_challenge)
Quality & Calibration
Track output quality trends and benchmark performance (
record_quality_score,get_quality_trend,benchmark_track)Log predictions with confidence levels and compute Brier scores for accuracy calibration (
calibration_predict,calibration_resolve,calibration_score)
Adaptive Learning & Autonomy
Record missed detections, register prevention rules, and auto-generate improvement goals (
record_missed_detection,register_prevention_rule,generate_autonomous_goals,autonomous_scan)
Goals & OKRs
Define, track, and manage OKR-style goals with measurable key results (
set_goal,check_goals,update_goal)
Quantitative Reasoning
Bayesian updates, expected value calculations, compound growth modeling, and root cause analysis (
bayesian_update,calculate_expected_value,five_whys,after_action_review)
Eval & Research
Export eval harnesses for Promptfoo/DeepEval, run local eval suites, and decompose prompts into requirements and risks (
export_eval_harness,run_elite_eval_suite,nuclear_prompt_breakdown)
Team Collaboration
Bi-directional memory sync, skill sharing, and team user management (
sync_team_memory,share_skill,list_team_users)
System Diagnostics
Health checks, tool usage stats, and autonomous system introspection (
self_diagnose,get_tool_usage_stats,get_autonomous_status)
Click on "Deploy 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., "@Elite Reasoning MCPDebug the function that calculates Fibonacci numbers"
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.
Elite Reasoning MCP v8.1.0
An evidence-gated verification, selection, and measurement layer for coding agents.
Why Elite Reasoning?
Coding agents often miss one requirement in a long request, claim completion without evidence, or repeat a previously identified mistake. Elite Reasoning provides a local Model Context Protocol workflow layer that makes requirements explicit, records execution state, retrieves scoped memory, and checks completion evidence.
The default product is intentionally narrow: it compiles a task contract, lets the host perform the work, and returns explicit verification results. Deterministic checks can establish only the behavior they inspect; they do not prove that generated code is correct or secure. Experimental reasoning techniques remain available through non-default profiles and are not part of the core product claim.
Install locally, connect an MCP-compatible client, and inspect exactly what was checked, what failed, and what remains unknown.
Current evidence summary
Claims below are generated from
claims.json. Implementation checks describe covered behavior; the internal pilot is not evidence of broad model improvement.
Internal fixture pilot constraint pass rate — A seven-case internal fixture pilot observed 5/7 treatment drafts and 0/7 baseline drafts passing all extracted constraints. The bundled drafts were hand-authored protocol fixtures—not live randomized model outputs—and the primary exact McNemar result (p=0.0625) was not significant at alpha=0.05. Status: internal pilot; replication: not independently replicated.
Deterministic syntax and security checks — Local deterministic checks cover Python syntax and selected unsafe patterns. Their scope is limited to implemented rules; passing them does not prove correctness or absence of vulnerabilities. Status: implementation verified; replication: repository tests only.
Exact-quote grounding behavior — The grounding path checks exact quote occurrence against retrieved evidence and exposes degraded or uncertain states. Quote matching alone does not prove source quality or full claim entailment. Status: implementation verified; replication: repository tests only.
Boundary guard analysis catch rate on real code fixtures — Against the bundled 22-fixture Python corpus (12 buggy, 10 clean), the boundary guard analysis (formerly labeled SMT solver) detected 11 of 12 buggy fixtures with 0 false positives — raw recall 91.67%, raw F1 95.65%, and 100% recall over the 11 bugs it is designed to catch. The one miss is a dynamic computed subscript the analyzer cannot detect. An earlier 19-fixture "v1" corpus measurement (66.67% raw recall) is retracted: that corpus is not recoverable from this repository's history and its numbers are superseded. This tests the verification machinery on hand-authored fixtures, not end-to-end model improvement. Status: implementation verified; replication: repository tests only.
Diagnostic slicer token bound — The diagnostic slicer compresses Python syntax errors into structured slices estimated under 50 tokens. Token count is approximate. Compact diagnostics do not guarantee improved model repair behavior. Status: implementation verified; replication: repository tests only.
Zero false positive rate on clean code — Zero false positives observed on all 10 clean Python fixtures in the bundled corpus, across the syntax, division, and array verifiers. An earlier version of this claim said 7 fixtures; the named test in fact covered only 3, and the corrected, fully-covering count is 10. Sample size is small; real-world false positive rate may differ. Status: implementation verified; replication: repository tests only.
Function-call denominator detection (v3.2.0) — v3.2.0 detects unguarded division by len/sum/count/size on 2 fixtures with 0 false positives on guarded code. Coverage is limited to direct function calls with ast.Name arguments. Status: implementation verified; replication: repository tests only.
Negative constant index detection (v3.2.0) — v3.2.0 detects items[-1] on potentially empty collections. 1 fixture, 0 false positives. Only constant negative indices detected. Status: implementation verified; replication: repository tests only.
Import hallucination detection (v3.2.0) — v3.2.0 detects 3/3 hallucinated Python imports with 0 false positives on stdlib. Cannot detect hallucinated submodules of real packages. PyPI allowlist is manually curated. Status: implementation verified; replication: repository tests only.
SLM micro-diagnostic token bound and measured compression on 6 committed fixtures — On the 6 traceback fixtures committed to this repository, v8.0.0 compresses tracebacks into single-line directives of 7-9 whitespace-delimited tokens (under the 15-token bound), reducing word count by 35.71%-77.50% (mean 56.85%). Those 6 fixtures are hand-written, not a sample of real-world tracebacks. Line number and primary exception cause are preserved. Status: implementation verified; replication: repository tests only.
Best-of-8 dual-execution-agreement selection — E3 confirmatory replication — In a preregistered confirmatory replication on Llama-3.2-1B-Instruct Q4_0 (28-task hidden-test suite, 140 fresh pairs), best-of-8 sampling with dual-execution-agreement selection passed the preregistered per-pair primary on all-hidden-tests-pass: 15 vs 7, exact McNemar p = 0.021484, at 14.9x token cost. Two caveats are published with it. The effect concentrates in 4 of the 28 tasks and does not survive a post-hoc task-level clustering test (sign-flip p = 0.125), though the continuous hidden-test-fraction secondary is cluster-robust (+5.1pp, task-cluster bootstrap 95% CI [+0.46pp, +10.57pp]). And part of the discordance reflects anchor re-draw rather than selection (drift-free p = 0.0625); Amendment 1's explanation of that drift is refuted, and process failures around the unblinding are recorded, in docs/E3_CONFIRMATORY_AMENDMENT_2.md. One model, one suite; not independently replicated. Status: internal pilot; replication: not independently replicated.
Grammar-constrained decoding raises tool-call emission — E6b preregistered A/B (powered replication, one rep per task) — In a preregistered A/B on llama3.2-1b-q4_0 (98 paired runs on 98 distinct tasks — one run per task — under a scripted host loop where the model chooses every MCP call), constraining decoding with a committed GBNF grammar whose root keeps free prose available raised per-run tool-call emission from 5/98 to 17/98 (exact McNemar p = 0.016901). One run per task means every pair is an independent cluster, so the test's independence assumption holds by construction and the result carries no clustering caveat. The grammar mechanically guarantees any attempted call parses — that part is construction, not measurement; the measured part is that the model still chose to call, and that calls executed. This is a tool-call-emission result on this loop only: not an adherence-quality, coding-quality, or IDE-host claim, and not comparable to the earlier E5 or E6 datasets (different suites and seeds; E6's 40 pairs were never pooled with these 98). One model, one suite; not independently replicated. Status: internal pilot; replication: not independently replicated.
Best-of-8 sampling plus dual-execution-agreement selection raises hidden-test PASS FRACTION — E10 preregistered A/B (one rep per task) — In a preregistered A/B on llama3.2-1b-q4_0 (198 paired runs on 198 distinct tasks — one run per task), a composite pipeline of best-of-8 sampling plus dual-execution-agreement selection raised the FRACTION of hidden tests the produced solution passes, from a mean of 0.2697 to 0.3071 (mean paired delta +0.0374; discordant 59:37; exact two-sided sign test p = 0.031548). One run per task means every pair is an independent cluster, so the test's independence assumption holds by construction and the result carries no clustering caveat. This is a partial-credit measure, not a task-completion one: on the same pairs, all-pass was 4/198 for the baseline and 3/198 for the treatment, so the pipeline did NOT produce more fully-correct solutions. The endpoint was chosen after seeing a descriptive secondary of an earlier null experiment on the same arms, and the design was powered at about 0.72 against a shrunk effect — below the 0.80 convention. The treatment costs 14.2x the tokens and 12.8x the wall-clock. One model, one suite, one budget; not independently replicated. MANDATORY CAVEAT (2026-08-29): 91.8% of this effect comes from tasks where the baseline draft did not even parse, and 37.6% of it from drafts truncated by the harness's own 1100-token generation cap. It may not be stated as evidence that the pipeline writes better code. See docs/E10_MECHANISM_AMENDMENT_1.md. Status: internal pilot; replication: not independently replicated.
Who This Is For
Developers using Cursor, Claude Desktop, Windsurf, or VS Code who want explicit requirement and completion checks.
Teams evaluating lower-cost coding models that need auditable constraints and evidence rather than unsupported quality scores.
AI engineers building agent loops that need a compact typed MCP workflow and local-first state.
Maintainers who want scoped memory, release diagnostics, and transparent limitations.
The Problem & The Solution
Common agent failure | Core Elite behavior |
A requirement is overlooked | Compiles explicit constraints linked to the task |
Completion is claimed without validation | Requests test, syntax, grounding, or outcome evidence |
A previous mistake is repeated | Retrieves approved, scoped anti-pattern memory |
A citation cannot be supported | Returns degraded or uncertain grounding instead of inventing evidence |
Multi-step work gets lost | Records an ordered, durable workflow when persistence is enabled |
A check is outside the verifier's scope | Reports the limitation rather than treating it as proof of correctness |
Related MCP server: MCP Reflection Tool
⚡ Quick Start
One-Line Install
pip install elite-reasoning-mcpFor an isolated CLI installation:
uv tool install elite-reasoning-mcp
# Verify the actual binary your IDE will run
elite-reasoning-mcp --version
elite-reasoning-mcp doctor --json
# Run an offline bad-draft → corrected-draft verification demo
elite-reasoning-mcp demo
# Preview, then atomically install, an IDE configuration
elite-reasoning-mcp init --ide cursor --dry-run
elite-reasoning-mcp init --ide cursor --yes
# Export redacted evidence from a durable workflow
elite-reasoning-mcp export-evidence <run_id> --json
# Preview a safe standalone upgrade command
elite-reasoning-mcp upgrade --dry-runAdd to your IDE
Antigravity / Gemini CLI (~/.gemini/config/mcp_config.json):
{
"mcpServers": {
"elite-reasoning": {
"command": "elite-reasoning-mcp",
"args": [],
"env": {
"ELITE_BRAIN_DIR": "~/.elite-reasoning/brain",
"ELITE_TOOL_PROFILE": "core"
}
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"elite-reasoning": {
"command": "elite-reasoning-mcp",
"env": {
"ELITE_BRAIN_DIR": "~/.elite-reasoning/brain",
"ELITE_TOOL_PROFILE": "core"
}
}
}
}Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"elite-reasoning": {
"command": "elite-reasoning-mcp",
"args": [],
"env": {
"ELITE_BRAIN_DIR": "~/.elite-reasoning/brain",
"ELITE_TOOL_PROFILE": "core"
}
}
}
}Windsurf (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"elite-reasoning": {
"command": "elite-reasoning-mcp",
"env": {
"ELITE_BRAIN_DIR": "~/.elite-reasoning/brain",
"ELITE_TOOL_PROFILE": "core"
}
}
}
}VS Code + Continue (~/.continue/config.yaml):
mcpServers:
- name: elite-reasoning
command: elite-reasoning-mcp
env:
ELITE_BRAIN_DIR: ~/.elite-reasoning/brain
ELITE_TOOL_PROFILE: coreZed (~/.config/zed/settings.json):
{
"context_servers": {
"elite-reasoning": {
"command": {
"path": "elite-reasoning-mcp",
"args": [],
"env": {
"ELITE_BRAIN_DIR": "~/.elite-reasoning/brain",
"ELITE_TOOL_PROFILE": "core"
}
}
}
}
}Activate the Continuous Pipeline
If your client exposes MCP prompts, start a task with /goal <your objective>. The goal prompt anchors a durable run_id and tells the host to follow the continuation object returned after every Elite call.
Add this to your IDE's system prompt (e.g., ~/.gemini/GEMINI.md or Cursor Rules):
## ⚡ RULE #0 — ELITE MCP PIPELINE
For every non-trivial prompt, call `elite_prepare(user_prompt="<exact message>", persist=true)` first and retain `run_id`.
After EVERY Elite response, inspect `continuation`:
- If `stop_final_response=true`, do not answer yet.
- Call `required_tool` with `required_args`, replacing placeholders with current code, repository root, tests, or final draft.
- Repair `FAIL`, `UNKNOWN`, `NOT_CHECKED`, `REPEAT`, and stale evidence; then follow the new continuation.
- If context becomes long or the next step is forgotten, call `elite_verify(check="status", run_id="<saved run id>")` to recover it.
- Answer only when `checkpoint="done"` and `stop_final_response=false`.
For coding tasks the normal sequence is prepare → syntax after the first edit → Git scope → executed tests → outcomes. Skip the pipeline only for trivial acknowledgements such as "ok" or "thanks".Enforcement boundary: MCP cannot make a host model issue another call after the model stops using tools. Continuation directives,
/goal, IDE rules, durable recovery, final evidence gates, and optional repository hooks reduce omission risk in layers; they are not an absolute host-level guarantee.
Restart the IDE after changing its MCP configuration or host rules.
🚀 Features
Feature claims below are scoped to what the measurement program (docs/PRODUCT_REVIEW_AND_MEASUREMENT.md, docs/E1–E3 results) supports. Where a capability is experimental or not on the shipped path, it says so.
🔍 Automated Evergreen Discoverability & AI Search Specs (v8.0.0)
Sub-millisecond CPython AST introspection extracts live tool contracts, docstrings, and schemas without executing the server runtime. Automatically keeps llms.txt, llms-full.txt, and RFC .well-known/mcp/server-card.json permanently in sync with the codebase for instant indexing by AI search engines (Perplexity, ChatGPT Search, Claude).
⚡ Micro-Diagnostic Compressive Slicer (<15 Tokens) (v8.0.0)
Compresses verbose tracebacks into single-line pointers ([L42] ZeroDivision: count -> Fix: guard count > 0). Measured on the 6 traceback fixtures committed to this repository (Python, TypeScript, Go, Rust): directives of 7–9 whitespace-delimited tokens, under the 15-token bound, with 35.71%–77.50% word-count reduction (mean 56.85%) — reproduce with .venv/bin/python evals/ab_harness/measure_slm_compression.py (CLAIM-010). Those 6 fixtures are hand-written and were authored alongside the compressor; they are not a sample of real-world tracebacks, so the range above does not generalize. Compact diagnostics do not by themselves improve model repair behavior — in the E2 measurement, verifier-driven repair loops were harmful at 1B, which is why the shipped flow favors a single clean verification pass over retry churn.
🧬 Contract Requirement Extraction (v2)
Compiles the task prompt into checkable, verbatim requirements. The v2 extractor achieves 100% verbatim requirement recall on the labeled spec corpus (previously 46%; see docs/E3_CONTRACT_V2_AND_CEILING_FINDING.md). The earlier "3-rule distillation" prompt-shaping mechanism measured null in the E2 arms and carries no fidelity claim.
🎯 Best-of-N Draft Selection — elite_verify(check="select")
CodeT-style dual execution agreement (Chen et al. 2022): given N candidate drafts sampled by the host, the selector parse-filters, majority-votes on execution probes in sandboxed subprocesses, and screens unintended crashes — never consulting ground-truth tests. In a preregistered confirmatory replication on Llama-3.2-1B-Instruct Q4_0 (28-task hidden-test suite, 140 fresh pairs), best-of-8 sampling with dual-execution-agreement selection passed the preregistered per-pair primary on all-hidden-tests-pass: 15 vs 7, exact McNemar p = 0.021484, at 14.9x token cost. Two caveats are published with it. The effect concentrates in 4 of the 28 tasks and does not survive a post-hoc task-level clustering test (sign-flip p = 0.125), though the continuous hidden-test-fraction secondary is cluster-robust (+5.1pp, task-cluster bootstrap 95% CI [+0.46pp, +10.57pp]). And part of the discordance reflects anchor re-draw rather than selection (drift-free p = 0.0625); Amendment 1's explanation of that drift is refuted, and process failures around the unblinding are recorded, in docs/E3_CONFIRMATORY_AMENDMENT_2.md. One model, one suite; not independently replicated. (CLAIM-011)
⚡ Program Dependence Graph (PDG) Backward Slicing (experimental, not on shipped path)
A real def-use backward slicer exists in the codebase but is not wired into the shipped verification path, and there is no Control Dependence Graph. Treat it as experimental code, not a product capability.
📐 Dynamic Type Lattice & Range Inference
Infers variable types and numerical bounds across untyped Python code in <1ms without type annotations. Catches incompatible binary operations (str - int, list * dict) and propagates intervals through arithmetic expressions.
🔀 Deterministic Boundary Guard Analysis (formerly labeled "CEGIS/SMT")
Polarity- and alias-aware guard analysis over the AST that flags unguarded division, indexing, and boundary bugs. Measured: 0% false alarms at full recall on a 113-solution labeled corpus (previously 20.4%; see docs/E1_VERIFIER_FIX_RESULTS.md). There is no Craig interpolation and verdicts are AST-decided; engine labels now say so truthfully.
🛡️ Multi-Agent Capability Attenuation DAG (experimental, not on shipped path)
Least-privilege capability delegation code exists under core/policy/, but it is not reachable from the shipped MCP entry point. Treat it as experimental code, not a product capability.
🌐 Real-Time Interactive Telemetry & Discoverability Canvas
Built with Next.js 16 (Turbopack) and React 19. Features live interactive Program Dependence Graph slicing sliders, AST proof obligation canvases, SEO discoverability metrics, and real-time WebSocket state streaming with WCAG 2.1 AA accessibility.
🧠 Evidence-Gated Continuous Workflow
elite_prepare creates a durable contract and returns a continuation directive. Every later elite_verify response repeats the exact next checkpoint, so the instruction is refreshed after edits instead of appearing only at the beginning. Verification distinguishes PASS, FAIL, UNKNOWN, and NOT_CHECKED, binds evidence to exact subject/repository digests, and reopens stale checkpoints after post-verification edits.
🛡️ Anti-Pattern Memory
Past mistakes can be recorded with root-cause analysis and retrieved by scoped search. The associative-graph (HippoRAG-style) recall layer is wired on the live path (knowledge-graph edges are created on store and traversed on recall; measured memory-hit rate 1.0 in E4), and a preregistered planted-pitfall A/B (E4, 40 pairs, 20 families; docs/E4_MEMORY_PREREGISTRATION.md) found that persisting and recalling first-encounter failures did not produce the hypothesized positive discordance (CM:C discordants = 0:0); any per-encounter effect is below what N = 40 can detect, with a measured first-encounter pitfall rate of 0.525 and memory-hit rate of 1.0. No "learns from its errors" claim is made.
📊 Confidence Calibration & Honest Statistics
Track prediction accuracy with proper Brier scores, and paired-sample exact McNemar tests with Clopper-Pearson 95% confidence intervals in the A/B harness. The previously published "Double-Blind RCT" scorecard was fabricated and has been retracted (see docs/PRODUCT_REVIEW_AND_MEASUREMENT.md, section 3); anti-fabrication CI gates now reject simulated baselines and hardcoded significance strings.
⚖️ Decision Council (legacy catalog only — not functional in current builds)
The 5-perspective adversarial review tool belonged to the legacy catalog, which current builds do not expose (see "Legacy Catalog" below).
🔒 Prevention Rules & 8-Layer Middleware Chain
Custom auto-triggered rules for your workflow. Every tool call passes through usage logging, latency measurement, prevention rules, anti-pattern injection, cost tracking, fallback guidance, and real transient retries. Structured gateway responses retain a stable warnings field.
💾 Cryptographically Scrubbed Persistent Memory
Cross-session knowledge stays scoped, trust-weighted, and privacy-gated. Secret-like content is redacted before storage; low-trust, sensitive, expired, and remotely imported items remain quarantined until an explicit approval action promotes them.
🏥 Release Doctor & Self-Healing Janitor
elite_verify(check="doctor") checks runtime identity, protocol version, dependencies, DB schema, capability routing, exposed tool count, active IDE mismatch, and release blockers before shipping. Runs the full science-grade release gate in scripts/release_check.py — tests with a coverage floor, lint/format, focused typing plus a repo-wide typing-debt ratchet, baselined security scan, package hygiene, and wheel/MCP smokes.
🏗️ Architecture
Your Task
↓
elite_prepare → playbook + expected outcomes + allowed_tools
↓
host follows playbook (usually 1–2 elite_verify calls, then host_work)
↓
elite_verify(check="outcomes") → DONE or REPEAT
↓
if REPEAT: fix unmet items and verify again (do not answer yet)
↓
┌──────────────────────────────────────────────┐
│ Local-first telemetry and memory boundaries │
│ Metadata by default; raw retention opt-in │
│ Remote memory remains quarantined until review │
└──────────────────────────────────────────────┘🔧 Core Tools (v3.0.0)
The v3 architecture exposes exactly three cohesive tools. A minimal tool surface keeps routing simple for smaller host models; no routing-precision figure is claimed.
Tool | Parameters | Purpose |
|
| Compiles checkable task contracts, explicit constraints, playbook, repository digest lock, and continuation directive. |
|
| Deterministic verification gateway supporting 19 check types: |
|
| Scoped episodic & semantic memory with trust scoring, quarantine isolation, and cryptographic secret scrubbing. Includes associative-graph (HippoRAG-style) recall via |
Legacy Catalog (not functional in current builds)
Earlier releases advertised a 90+ tool legacy catalog behind ELITE_TOOL_PROFILE=legacy. In current builds that profile flag is parsed and stored but performs no branching, so the legacy catalog is not functional and none of those tools are exposed. The listing has been removed from this README to avoid advertising unavailable capability; the historical catalog remains in Git history.
⚙️ Configuration
Environment Variables
Variable | Default | Description |
|
| Where to store persistent memory |
|
|
|
|
|
|
| unset | Must be |
| unset | Must be |
| localhost only | Comma-separated approved sync hosts. |
| unset | Must be |
| unset | Must be |
| unset | Required with a sync API key before the optional hub can bind beyond localhost. |
| unset | Optional sync-hub JSON mapping of user IDs to distinct API keys for auditable multi-user attribution. |
|
| Server-side actor label for a single-user hub using |
| unset | Required with |
|
| Enable legacy monkey-patch interceptor |
| (built-in) | HTTPS Gemini endpoint; a non-Google host also requires |
The local profile is created with owner-only permissions at ~/.elite-reasoning/config.json; it is not read from the repository checkout and must never be committed. Neutral configuration and team-memory shapes are available in docs/examples/local-profile.example.json and docs/examples/team-memory.example.json. Keep credentials in process environment variables or an OS keychain, not in JSON.
Development Setup
# Clone the repo
git clone https://github.com/Snehgabani/elite-reasoning-mcp.git
cd elite-reasoning-mcp
# Install with dev dependencies
uv sync --extra dev
# Run the release gate used by CI
uv run python scripts/release_check.py
# Build package
uv build🧪 Testing
# Run all tests
ELITE_BRAIN_DIR=/tmp/elite-test uv run pytest tests/ -v --tb=short
# Run the full release gate: tests, lint, types, high-severity scan,
# package privacy/content inspection, wheel CLI, and MCP smoke
uv run python scripts/release_check.py
# Run with coverage
uv run pytest tests/ --cov=core --cov-report=htmlThe test suite covers:
✅ Persistent store (CRUD, FTS, graph, goals, benchmarks)
✅ Graph store (nodes, edges, temporal queries, hypotheses)
✅ Connection pooling and stale connection recovery
✅ FTS sanitization (injection prevention)
✅ Workflow flight recorder and MCP tool exposure
✅ stdio MCP protocol identity, structured output, and
isError=truefailures✅ privacy-safe telemetry, secret migration, approved sync, and memory quarantine
✅ ordered workflow evidence, prevention events, retry, fallback, and local monitoring
✅ Quality-gated memory quarantine
✅ Release doctor and eval harness exporters
🔐 Security & Trust
Elite Reasoning MCP is local-first by default: memory is stored under ELITE_BRAIN_DIR, telemetry stores metadata rather than prompt content, and external API access is opt-in through environment configuration.
The default profile does not expose network sync tools. In the explicit legacy profile, every sync request requires confirm=true, an allowlisted endpoint, redirect blocking, and environment grants for external or outbound traffic. The optional sync hub binds to localhost by default; external binding needs configured credentials and ELITE_SYNC_BIND_ALL_INTERFACES=1. For multi-user deployments, configure distinct credentials with SYNC_USER_KEYS_JSON; the hub derives contributor attribution from the credential and never trusts a caller-supplied user ID. Imported remote records are stored as low-trust quarantined memory until an operator explicitly approves them. External LLM judging is disabled unless both GEMINI_API_KEY and ELITE_SYNC_ENABLE_LLM_JUDGE=1 are set.
Public repository hardening includes:
SECURITY.mdwith supported versions, private vulnerability reporting, and memory/privacy boundariesDependabot for Python, GitHub Actions, and telemetry UI dependencies
CodeQL scanning for Python security issues
Dependency Review on pull requests
OpenSSF Scorecard visibility for supply-chain posture
Immutable GitHub Action pins, with Dependabot update coverage
GitHub build provenance and PyPI digital attestations for release distributions
An allowlisted source distribution plus a release gate that rejects local profiles, generated UI output, databases, and credential-like files
A checksum-verified, read-only Gitleaks workflow that scans full Git history and the checked-out files with redacted findings
Release-gate evidence via
scripts/release_check.py
Security reports should use GitHub private vulnerability reporting, not public issues.
For the next tracking and monitoring layer, see the Elite Telemetry Roadmap.
🤝 Contributing
Contributions are welcome. Start with CONTRIBUTING.md, GOVERNANCE.md, and the security boundaries in SECURITY.md.
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Run the release gate (
uv run python scripts/release_check.py)Document MCP behavior, privacy impact, and validation evidence in your PR
Commit your changes (
git commit -m 'feat: add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Commit Convention
We use Conventional Commits:
feat:— New featuresfix:— Bug fixeschore:— Maintenancedocs:— Documentation
📄 License
MIT © Sneh Gabani
Available Tools
3 toolselite_memoryCDestructive
Search, record, or explicitly approve scoped memory items.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| scope | No | global | |
| action | No | search | |
| confirm | No | ||
| content | No | ||
| memory_id | No | ||
| memory_type | No | fact | |
| trust_score | No | ||
| privacy_class | No | internal |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| action | Yes | |
| status | No | |
| deleted | No | |
| warnings | No | |
| memory_id | No | |
| quarantined | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey mutation and destructiveness (readOnlyHint=false, destructiveHint=true), and the description adds only 'scoped' and 'explicitly approve'. It does not disclose that 'forget' is a destructive action, how 'confirm' guards it, or what side effects 'record'/'approve' have. No contradiction with annotations, but little behavioral context is added beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with no fluff. However, the single sentence is too underspecified for a tool with 9 parameters and at least 5 distinct actions, so it scores slightly below an effective structural outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, writable, multi-action tool with 9 undocumented parameters, the description only gives a title-level action overview. It does not explain action-specific requirements, safeguards like confirm, or what each memory item operation needs, so the definition is not sufficient for reliable invocation by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter clarity, but it only hints at 'scope' and references action names. The meaning of content, memory_id, memory_type, trust_score, privacy_class, and confirm remains opaque, leaving an agent unable to assemble correct calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('memory items') and multiple concrete verbs ('Search, record, approve') that match the tool's core actions. It does not explicitly distinguish elite_memory from sibling tools, and omits the forget and associative actions available in the enum, so it is clear but not fully complete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus elite_prepare or elite_verify, nor about which action values should be chosen in common scenarios. The description implies it handles memory operations but gives the agent no decision criteria for selecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elite_prepareB
Start a non-trivial task. Retain run_id and obey the returned continuation after each later Elite call. Not the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| persist | No | ||
| user_prompt | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| goal | No | |
| steps | Yes | |
| do_not | No | |
| intent | Yes | |
| run_id | Yes | |
| status | No | |
| playbook | No | |
| warnings | No | |
| persisted | Yes | |
| stop_when | No | |
| complexity | Yes | |
| confidence | Yes | |
| budget_tier | Yes | |
| constraints | No | |
| deliverable | No | |
| next_action | No | |
| continuation | No | |
| repeat_until | No | |
| allowed_tools | No | |
| task_contract | No | |
| memory_context | Yes | |
| validation_gates | Yes | |
| expected_outcomes | No | |
| capability_warnings | Yes | |
| evidence_requirements | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false/neutral, so the description carries the burden. It discloses that the tool returns a stateful run_id and a continuation that must be followed in later calls — key behavioral context beyond any structured signal — and it warns the agent that this call is not the final answer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core verb, and uses short directive phrases that an agent can parse quickly. Slight deduction because the juxtaposition of 'Run it is' not clearly the same sentence as 'Not the answer', but overall it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The described model ('start a task → retain id → follow continuation') is complete enough to attempt a intercepted call, and the workflow-specific directives are present. However, it fails to explain what a 'continuation' looks like, how it relates to siblings, or whether the 'persist' parameter affects that assumed the behavioral guarantee.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two parameters (user_prompt, persist) with zero description coverage, and the tool description adds no parameter details. 'user_prompt' does not even self-evidently map to 'start a non-trivial task' — it takes its purpose entirely from the ambiguous title. The description fails entirely to compensate for the schema's lack of explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Start a non-trivial task') and signals its role in the workflow ('Not the answer'). However, it does not name the underlying resource or define what qualifies as 'non-trivial', and only loosely differs from siblings like elite_verify and elite_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction to 'Retain run_id and obey the returned continuation after each later Elite call' implies this is the entry point for a multi-step workflow, and 'Not the answer' is a weak exclusion. It gives useful context for when to call it, but stops short of explicitly contrasting it with elite_verify or elite_memory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elite_verifyCRead-onlyIdempotent
Run one check, persist evidence by run_id, then follow the returned continuation before answering.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| check | No | doctor | |
| draft | No | ||
| query | No | ||
| run_id | No | ||
| command | No | ||
| language | No | python | |
| step_index | No | ||
| project_root | No | ||
| allowed_files | No | ||
| forbid_dependency_changes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| check | Yes | |
| status | No | |
| evidence | No | |
| warnings | No | |
| limitations | No | |
| continuation | No | |
| schema_version | No | |
| subject_digest | No | |
| verification_status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'persist evidence by run_id,' which is a state-changing write, while the annotations declare readOnlyHint=true and destructiveHint=false. This is a direct contradiction about whether the tool modifies state. The continuation workflow is useful behavioral context, but the contradiction makes the description misleading and undermines an agent's safety assumptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact sentence with no filler and a clear temporal sequence: run, persist, follow continuation, then answer. It is front-loaded with the primary action. It could earn a 5 if it also named the check categories or prerequisites, but as written it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, this is a complex tool with 11 optional parameters, an enumerated check list, and a continuation protocol. The description leaves critical operational details unspecified: what the check enum values mean, how the continuation is obtained or invoked, what inputs like command or code relate to, and whether any prerequisites exist. It is not sufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters, so the description must compensate, but it only weakly hints at two parameters: 'run one check' maps to check, and 'persist evidence by run_id' explains run_id's purpose. It leaves code, draft, query, command, language, step_index, project_root, allowed_files, and forbid_dependency_changes entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action: 'Run one check' and mentions evidence persistence, so it is not a tautology. However, it never explains what a 'check' verifies or what the tool's domain scope is; the title in annotations ('Verify runtime and capabilities') carries much of the purpose signal. It also does not differentiate the tool from its siblings beyond relying on the 'verify' name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: run a check, persist evidence by run_id, and follow the returned continuation before producing an answer. This tells the agent the required workflow and sequencing. It does not, however, state when not to use this tool or how it compares to elite_memory and elite_prepare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v8.1.0- Changed
elite_verify2 fields changed- changed
Input schema / properties / check / enumPrevious value: -[ - "doctor", - "capabilities", - "constraints", - "evidence", - "syntax", - "tests", - "grounding", - "outcomes", - "diff", - "cegis", - "diagnostics", - "types", - "outline", - "callgraph", - "status", - "progress", - "privacy", - "monitoring" -]New value: +[ + "doctor", + "capabilities", + "constraints", + "evidence", + "syntax", + "tests", + "grounding", + "outcomes", + "diff", + "cegis", + "select", + "diagnostics", + "types", + "outline", + "callgraph", + "status", + "progress", + "privacy", + "monitoring" +] - changed
Input schema / properties / code / maxLengthPrevious value: -20000New value: +60000
95 tool updates
v3.2.0- Removed
adopt_vs_build - Removed
after_action_review - Removed
analyze - Removed
analyze_prompt_sequence - Removed
archive_goal - Removed
assess_confidence - Removed
audit - Removed
autonomous_scan - Removed
bayesian_update - Removed
benchmark_track - Removed
bias_scan - Removed
browse_tool_usage - Removed
build_experiment_tree - Removed
calculate_expected_value - Removed
calibration_predict - Removed
calibration_resolve - Removed
calibration_score - Removed
check_anti_patterns - Removed
check_goals - Removed
compound_growth - Removed
decision_council_review - Removed
delete_goal - Removed
delete_prevention_rule - Removed
elite_doctor - Removed
elite_doctor_json - Added
elite_memory - Removed
elite_outcome_scorecard - Added
elite_prepare - Added
elite_verify - Removed
export_eval_harness - Removed
five_whys - Removed
fmea_analysis - Removed
fmea_risk_gate - Removed
generate_autonomous_goals - Removed
get_autonomous_status - Removed
get_elite_workflow - Removed
get_prompt_quality_trend - Removed
get_quality_trend - Removed
get_tool_usage_stats - Removed
get_user_profile - Removed
get_user_thinking_model - Removed
ingest_context - Removed
introspect - Removed
learn - Removed
list_prevention_rules - Removed
list_team_users - Removed
memory_context_pack - Removed
memory_search_context - Removed
memory_sync_decisions - Removed
memory_sync_mistakes - Removed
memory_sync_rules - Removed
nuclear_prompt_breakdown - Removed
orchestrate_request_tool - Removed
plan - Removed
polish_prompt - Removed
pre_commit_audit - Removed
predict - Removed
predictive_prevention - Removed
query_temporal_graph - Removed
reasoning_preflight - Removed
recommend_open_source_integrations - Removed
record_decision - Removed
record_hypothesis - Removed
record_missed_detection - Removed
record_mistake - Removed
record_prompt_intent - Removed
record_prospective_failure - Removed
record_quality_score - Removed
register_prevention_rule - Removed
remember - Removed
remember_context - Removed
research_benchmark_catalog - Removed
resolve_hypothesis - Removed
resolve_prospective_failure - Removed
roi_tool_budget - Removed
run_elite_eval_suite - Removed
search_decisions - Removed
search_thinking_patterns - Removed
select_reasoning_protocol - Removed
self_diagnose - Removed
set_goal - Removed
share_skill - Removed
simulate_future_regrets - Removed
smoke_test_gate - Removed
socratic_challenge - Removed
swiss_cheese_audit - Removed
sync_team_memory - Removed
update_goal - Removed
update_thinking_pattern - Removed
update_user_config - Removed
validate_predictions - Removed
verify_capabilities_tool - Removed
workflow_run - Removed
workflow_status - Removed
workflow_update_step
92 tool updates
v1.2.1- First observed
adopt_vs_build - First observed
after_action_review - First observed
analyze - First observed
analyze_prompt_sequence - First observed
archive_goal - First observed
assess_confidence - First observed
audit - First observed
autonomous_scan - First observed
bayesian_update - First observed
benchmark_track - First observed
bias_scan - First observed
browse_tool_usage - First observed
build_experiment_tree - First observed
calculate_expected_value - First observed
calibration_predict - First observed
calibration_resolve - First observed
calibration_score - First observed
check_anti_patterns - First observed
check_goals - First observed
compound_growth - First observed
decision_council_review - First observed
delete_goal - First observed
delete_prevention_rule - First observed
elite_doctor - First observed
elite_doctor_json - First observed
elite_outcome_scorecard - First observed
export_eval_harness - First observed
five_whys - First observed
fmea_analysis - First observed
fmea_risk_gate - First observed
generate_autonomous_goals - First observed
get_autonomous_status - First observed
get_elite_workflow - First observed
get_prompt_quality_trend - First observed
get_quality_trend - First observed
get_tool_usage_stats - First observed
get_user_profile - First observed
get_user_thinking_model - First observed
ingest_context - First observed
introspect - First observed
learn - First observed
list_prevention_rules - First observed
list_team_users - First observed
memory_context_pack - First observed
memory_search_context - First observed
memory_sync_decisions - First observed
memory_sync_mistakes - First observed
memory_sync_rules - First observed
nuclear_prompt_breakdown - First observed
orchestrate_request_tool - First observed
plan - First observed
polish_prompt - First observed
pre_commit_audit - First observed
predict - First observed
predictive_prevention - First observed
query_temporal_graph - First observed
reasoning_preflight - First observed
recommend_open_source_integrations - First observed
record_decision - First observed
record_hypothesis - First observed
record_missed_detection - First observed
record_mistake - First observed
record_prompt_intent - First observed
record_prospective_failure - First observed
record_quality_score - First observed
register_prevention_rule - First observed
remember - First observed
remember_context - First observed
research_benchmark_catalog - First observed
resolve_hypothesis - First observed
resolve_prospective_failure - First observed
roi_tool_budget - First observed
run_elite_eval_suite - First observed
search_decisions - First observed
search_thinking_patterns - First observed
select_reasoning_protocol - First observed
self_diagnose - First observed
set_goal - First observed
share_skill - First observed
simulate_future_regrets - First observed
smoke_test_gate - First observed
socratic_challenge - First observed
swiss_cheese_audit - First observed
sync_team_memory - First observed
update_goal - First observed
update_thinking_pattern - First observed
update_user_config - First observed
validate_predictions - First observed
verify_capabilities_tool - First observed
workflow_run - First observed
workflow_status - First observed
workflow_update_step
TDQS
Scored across 3 tools
Each tool has a distinct phase: elite_memory handles memory persistence/retrieval, elite_prepare initiates a task run, and elite_verify checks and records evidence. There is no meaningful overlap or ambiguity about which tool to select.
All tools share the elite_ prefix and use snake_case, creating a recognizble namespace. The only minor inconsistency is that elite_prepare and elite_verify are verbs while elite_memory is a noun, so the verb/noun pattern is not perfectly uniform.
Three tools is a tightly scoped set for a specialized reasoning workflow: memory, task preparation, and verification. Each tool provides a clear capability without bloat and is within the ideal range.
The set covers the core reasoning lifecycle: starting a task, using scoped memory, and verifying evidence before answering. Some explicit run management like status, retry, or finalization is delegated to returned continuations, making it slightly indirect but still workable.
Maintenance
Related MCP Connectors
33 tools that make AI write, implement, and verify intent against explicit, testable constraints.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
- WauldoOAuthcom.wauldo
Stateless agentic tools over MCP: concept extraction, long-context, knowledge graph, planning.
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides 30+ unified reasoning operations including systematic thinking, mental models, debugging approaches, statistical analysis, interactive notebooks, and advanced problem-solving frameworks for enhanced decision-making and complex reasoning tasks.136 npm53MIT
- AlicenseNot gradedqualityDmaintenanceProvides a 'reflect' tool that creates cognitive checkpoints for AI assistants, forcing structured step-by-step reasoning through complex problems to improve accuracy and maintain context during task execution.7 npm6MIT
- AlicenseNot gradedqualityCmaintenanceA tool-augmented LLM system for the full PDDL planning pipeline, improving reliability without domain-specific training.4MIT
- AlicenseNot gradedqualityCmaintenanceProtocol-enforced learning system combining memory-augmented reasoning with workflow automation to improve AI assistant reliability by ensuring they learn from past experiences before making code changes.13 npmMIT