Skip to main content

Universal Research MCP

Research memory with traceable sources and explicit write approval.

Version Python CI License: MIT

한국어 사용자 설명서 · 60-second workflow · Architecture · Design decisions · Evidence & limits

Universal Research MCP connects a Codex host to research records, original sources, and rebuildable search indexes. Before a material claim can receive an evidence-eligibility receipt, the server re-reads the exact registered source range and checks its current SHA-256 revision.

The contract: search returns candidates; verification establishes source integrity; the host still reviews relevance, conflicts, and the final claim.

v0.8.5 documentation release. The runtime feature baseline remains frozen at v0.8.4. This release adds the detailed Korean user guide and ships the session-scope confirmation workflow; it adds no retrieval or ingest capability and grants no operating-system or host permissions.

The problem it addresses

A retrieved passage can come from an old index, the wrong line range, or a file that changed after registration. A plausible answer can hide that broken connection. This project makes the connection inspectable.

Question Implemented boundary
Which evidence did the answer use? An event ID, source path, exact line range, and registered SHA-256.
Is that still the same source? Fresh source reads, exact locator checks, and explicit mismatch handling.
Can the agent rewrite research history? MCP ingestion needs an immutable draft and an external one-time approval receipt.
Does passing the check mean the claim is true? No. Semantic support, conflict resolution, and source truth remain outside this check.

Architecture

flowchart LR
    A[Candidate search] --> B[Re-read registered source]
    B --> C{Range and SHA-256 match?}
    C -- No --> D[Block evidence]
    C -- Yes --> E[Evidence eligibility]
    E --> F[Host reviews meaning and conflicts]
    F --> G[Answer or abstain]

The workflow verifies source identity and location. It does not decide whether the source is relevant, resolve conflicts, or prove that the source is true.

Write path: prepare immutable draft → external human approval → commit the bound transaction. A shared writer lock and journal protect canonical writes; interrupted multi-file work remains recoverable rather than silently successful.

Module map and authority boundaries

One minute through the workflow

Open the demo guide →

The offline interactive workflow highlights five steps over 60 seconds. Download the HTML file and open it in a browser; GitHub's file view shows its source. It uses only explanatory text, makes no model calls, and is not a recording of a live MCP run.

Time What the viewer sees
00–12 s A search hit is labelled candidate_only.
12–24 s The registered file, exact range, and current SHA-256 are checked.
24–36 s Eligibility checks integrity, range, and count; a mismatch blocks evidence.
36–48 s The host reviews meaning, conflicts, and source quality.
48–60 s The host answers with support or explicitly abstains.

The guide links each step to the implementation. It does not create a source registration, approval, or benchmark.

Three design decisions

Decision Why this choice Tradeoff
1. Canonical JSONL; rebuildable indexes Preserve research history while repairing or replacing SQLite, FTS, and dense projections. More explicit provenance and freshness checks; an index cannot be the authority.
2. Journaled ingest with external approval Bind multiple file writes to exact before/after hashes and recover the same approved transaction after interruption. More state and recovery logic; this is not a cross-file atomic filesystem transaction.
3. A narrow supported distribution Ship memory, governance, retrieval, and Codex integration without promising prototype provider-runtime compatibility. A smaller integration surface; other generation providers remain repository experiments.

Read the decisions and alternatives: ADR-0001 · ADR-0002 · ADR-0003.

Try the released package

For the complete installation, Codex setup, source-registration, approved ingest, semantic retrieval, troubleshooting, and update flow, read the Korean user guide.

python -m pip install "universal-research-mcp==0.8.5"
universal-research --version
universal-research init ./my-research

Expected version: 0.8.5. Initialization creates an empty project; it does not crawl your files. Use the input tutorial to register sources and create an approved record before expecting search results.

Then register the local server in Codex:

[mcp_servers.universal_research]
command = "universal-research"
args = ["serve", "--no-auto-index"]
cwd = "/absolute/path/to/my-research"

--no-auto-index explicitly disables index writes at startup. Refresh derived indexes separately when that operation is approved; omitting the flag enables automatic indexing in the CLI. Do not use a read-only reference project as the writable research root. See the host integration guide for the full setup.

What ships in v0.8.5

  • Lexical, local semantic, hybrid, and adaptive candidate retrieval.
  • Exact registered-range fetch and deterministic evidence-eligibility receipts.
  • Append-only records, shared CLI/MCP writer locking, and recoverable ingestion.
  • Codex governance contracts and a secure harness for separately approved runs.
  • An optional, explicitly published read-only demo corpus.
  • Managed local semantic snapshots bound to an immutable model revision and verified file inventory; setup requires its own approved plan.

The supported host is Codex. The wheel excludes experimental generation providers, plugin-owned agent runtime, and provider execution harness modules. Local embeddings do not imply generation-provider support.

Semantic retrieval · Secure harness · Public demo deployment

Experiments and limits

Completed development evidence exists. A full confirmatory product-effect benchmark does not. These are separate studies; their sample sizes and scores must not be pooled.

A completed 96-run development study

24 public synthetic tasks × four conditions, one run per task and condition. The separate condition-blinded evaluator was an LLM, not a human reviewer.

Development study graph showing unsafe material assertion rate, clean supported-claim coverage, and token and latency burden across filesystem, manifest, MCP evidence-only, and MCP plus evidence-eligibility conditions. The paired confidence interval includes zero, so the result is not confirmatory evidence.

Public synthetic development corpus: 24 tasks × 4 conditions × 1 run. The paired 95% interval includes zero; this is not confirmatory product evidence.

Condition Unsafe assertions / 18 fault tasks Clean claim coverage Mean tokens Mean latency
Filesystem 4 / 18 66.7% 73,596 23.05 s
Filesystem + manifest 4 / 18 16.7% 67,962 23.18 s
MCP evidence-only 6 / 18 100.0% 90,047 29.70 s
MCP + evidence eligibility 2 / 18 100.0% 113,951 37.21 s

For filesystem → MCP + eligibility, the paired unsafe-assertion difference was −11.1 percentage points, with a task-bootstrap 95% interval of −33.3 to +11.1 points. It includes zero. The gated condition used 1.55× tokens and 1.61× time, and still failed on conflicting and semantically irrelevant current evidence. Evidence-only retrieval had more unsafe assertions than filesystem. These are narrow development observations, not proof of general hallucination reduction or improved research quality.

Methods, evaluation cost, and all caveats remain in the full four-condition report. Historical reports call the eligibility check “Claim Gate”; those names are retained for provenance, not a claim that the tool verifies truth.

Other evidence, kept separate

Evidence Status What it can establish
Earlier retrieval and safety pilots Completed, exploratory Narrow source-mutation observations and overhead, including negative findings.
A/B/C integration diagnostic, 2026-08-26 Completed; one task, three responses plus seven startup diagnostics Tool integration with retained failures. Unequal input budgets and no repetitions prevent an efficacy comparison.
Full 432-trial comparison Not a completed result A planned count is not evidence. No finished 432-trial result is claimed for v0.8.5.
Software tests and release checks Engineering verification Contract and packaging behavior; not participant-model benchmark results.

All five completed reports · Integration diagnostic · Benchmark disclosure

Boundaries that remain

  • Hashes establish revision identity, not the truth of source prose.
  • Evidence count is based on distinct event records, not independent authors or independent scientific observations.
  • The MCP cannot globally control native agents or other processes started by an unrestricted host. Approval enforcement has a defined execution boundary.
  • This is not an authenticated private remote service or a multi-tenant SaaS. Public deployment needs a separately reviewed operational boundary.
  • Historical synthetic results do not establish released-v0.8.5 efficacy, production reliability, or statistically decisive superiority.

Security model · Governance contracts

Development reference

Existing checks and release process
python -m pip install ".[test]"
python -m pytest -q
ruff check universal_research_mcp
mypy --no-incremental --cache-dir=/dev/null universal_research_mcp
python -m build
python scripts/validate_distribution_artifact.py dist/*.whl
python scripts/ci_smoke.py dist/*.whl

Release workflows pin third-party actions to exact commits. A release wheel is built once, checked on Linux/macOS/Windows, and that artifact is published through PyPI Trusted Publishing after its release gates succeed. These are engineering checks, separate from model experiments.

License: MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

universal_research_mcp-0.8.5.tar.gz (344.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

universal_research_mcp-0.8.5-py3-none-any.whl (318.2 kB view details)

Uploaded Python 3

File details

Details for the file universal_research_mcp-0.8.5.tar.gz.

File metadata

  • Download URL: universal_research_mcp-0.8.5.tar.gz
  • Upload date:
  • Size: 344.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for universal_research_mcp-0.8.5.tar.gz
Algorithm Hash digest
SHA256 8c8c2c85955e98b3a55724ec94dadbf4414bd5b232dca75a3ee03d4df655d3b1
MD5 c9288989d7b0e357a340a8b77cce261d
BLAKE2b-256 00c670ca98695279f6f518ee694dfa08e3e81c2d8072d81fa0c450a9fc0df5a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for universal_research_mcp-0.8.5.tar.gz:

Publisher: publish.yml on mp-juns/universal-research-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file universal_research_mcp-0.8.5-py3-none-any.whl.

File metadata

File hashes

Hashes for universal_research_mcp-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0eca141c6ad6c4feac9e584bebd350ede4d122a73c213bc547816f5e02649de6
MD5 a648d1b69636f9dad1928af7a7302870
BLAKE2b-256 ffe2d69c48deb6c16dc084480ca418141eb6daffaa975c3bc2133c125deb5035

See more details on using hashes here.

Provenance

The following attestation bundles were made for universal_research_mcp-0.8.5-py3-none-any.whl:

Publisher: publish.yml on mp-juns/universal-research-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

This release

0.8.5 This release

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page