MCP server for CognOS trust scoring and session trace storage
Project description
CognOS Session Memory
mcp-name: io.github.base76-research-lab/cognos-session-memory
Verified context injection via epistemic trust scoring for LLMs.
Solves session fragmentation by maintaining verified, high-confidence session context between conversations.
Problem
Large language models suffer from session fragmentation: each new conversation starts without verified context of previous work. This forces repeated explanations, loses decision history, and breaks long-running workflows.
Existing solutions (persistent memory systems, vector retrieval) either:
- Lack trust scores before injection → hallucinations propagate
- Don't audit which context was injected → compliance gaps
- Treat all past information equally → noise overwhelms signal
Solution
A plan-mode gateway that:
- Extracts structured context from 3-5 recent traces
- Scores context quality via CognOS epistemic formula:
C = p · (1 − Ue − Ua) - Injects as system prompt only if
C > threshold - Flags for manual review if
C < threshold - Audits every context injection with trace IDs → EU AI Act compliance
Architecture
recent_traces (n=5)
↓
extract_context() → ContextField + coverage
↓
compute_trust_score(p, ue, ua) → C, R, decision
↓
if C > threshold:
system_prompt ← inject
else:
flagged_reason ← manual review
Core Formula
C = p · (1 − Ue − Ua)
R = 1 − C
where:
p = prediction confidence (coverage of required fields)
Ue = epistemic uncertainty (divergence between traces)
Ua = aleatoric uncertainty (mean risk in traces)
Action Gate
R < 0.25 → PASS (inject without review)
0.25 ≤ R < 0.60 → REFINE (inject with caution)
R ≥ 0.60 → ESCALATE (flag for manual review)
API
POST /v1/plan
Extract and score context.
Request:
{
"n": 5,
"trust_threshold": 0.75,
"mode": "auto"
}
Response (if injected):
{
"status": "injected",
"trust_score": 0.82,
"confidence": 0.82,
"risk": 0.18,
"decision": "PASS",
"context": {
"active_project": "CognOS mHC research",
"last_decision": "Verify P1 hypothesis",
"open_questions": ["How does routing entropy scale?"],
"current_output": "exp_008 complete",
"recent_models": ["gpt-4", "claude-3", "mistral"]
},
"system_prompt": "## CognOS Context...",
"trace_ids": ["uuid-1", "uuid-2", ...]
}
Response (if flagged):
{
"status": "flagged",
"trust_score": 0.45,
"decision": "REFINE",
"flagged_reason": "Trust score 0.45 below threshold 0.75. Manual review recommended.",
"trace_ids": [...]
}
Modes
- auto (default) — inject if
trust_score ≥ threshold, else flag - force — always inject (for testing)
- dry_run — compute score but never inject
Quick Start
Installation
git clone https://github.com/base76-research-lab/cognos-session-memory
cd cognos-session-memory
pip install -e .
Run Gateway
python3 -m uvicorn --app-dir src main:app --port 8788
Test /v1/plan (dry_run)
curl -X POST http://127.0.0.1:8788/v1/plan \
-H 'Content-Type: application/json' \
-d '{"n": 5, "mode": "dry_run"}'
Test /v1/plan (auto)
curl -X POST http://127.0.0.1:8788/v1/plan \
-H 'Content-Type: application/json' \
-d '{"n": 5, "trust_threshold": 0.75, "mode": "auto"}'
Modules
- trust.py — CognOS confidence formula, action gate, signal extractors
- trace_store.py — SQLite persistence (write/read/purge)
- plan.py — Context extraction, trust scoring, system prompt building
- main.py — FastAPI gateway + middleware
Testing
pytest tests/ -v --cov=src
Documentation
- ARCHITECTURE.md — Deep dive into the epistemic model
- API_REFERENCE.md — Detailed endpoint documentation
- EU_AI_ACT_COMPLIANCE.md — Audit trail and compliance
Research Paper
See docs/PAPER.md — "Verified Context Injection: Epistemically Scored Session Memory for Large Language Models"
Status: Independent research — Base76 Research Lab, 2026 Authors: Björn André Wikström (Base76)
Citation
@software{wikstrom2026cognos,
author = {Wikström, Björn André},
title = {{CognOS Session Memory}: Verified Context Injection via Epistemic Trust Scoring},
year = {2026},
url = {https://github.com/base76-research-lab/cognos-session-memory}
}
License
MIT
Contact
- Author: Björn André Wikström
- Email: bjorn@base76.se
- ORCID: 0009-0000-4015-2357
- GitHub: base76-research-lab
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cognos_session_memory_mcp-0.1.0.tar.gz.
File metadata
- Download URL: cognos_session_memory_mcp-0.1.0.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee200d77884cda588d5789a01ab47179ec72a5b02cc80263c3a26f22d039acd5
|
|
| MD5 |
e0405860e01df72a585853acceadde1b
|
|
| BLAKE2b-256 |
29ef38efce01c8c313c5df367f3ad5f2f030345a572b7ca1b8c11920c578c60e
|
File details
Details for the file cognos_session_memory_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cognos_session_memory_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf9f732f905e222c61bea2a2a6d0c1b36c087ee34c5d4ad248088cefdae300e2
|
|
| MD5 |
c3a6b3f2aedd9bb0f8deeddf0df0e8c1
|
|
| BLAKE2b-256 |
a3e0ac56ec26d927e18cc7f65faa72128d27c90f1cd087f2f1ff00f528296e8b
|