Skip to main content

Universal Research MCP

PyPI Python CI

Universal Research MCP turns research retrieval into a verifiable evidence workflow. Search results remain candidates until the server re-reads the exact registered source range and confirms its current SHA-256 revision.

candidate retrieval
  -> exact source fetch
  -> revision integrity check
  -> evidence eligibility check
  -> relevance/conflict review by the host
  -> supported claim or explicit abstention

It is a read-mostly MCP. Canonical writes exist only behind a two-step, hash-bound ingest transaction with an external one-time human approval receipt.

Five-minute local demo

python -m pip install universal-research-mcp
universal-research init ./my-research
universal-research serve --root ./my-research

Register the server in Codex:

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

The empty project is intentional: the MCP does not crawl arbitrary files. Follow the input tutorial to register immutable sources, create an approved record, and make it searchable.

Why this is not ordinary RAG

Ordinary retrieval Universal Research
Search result may be quoted directly Search result is candidate_only
Index content may silently become stale Current source hash is compared with the registered revision
Similarity is treated as support Similarity cannot establish truth or causality
Corrections may overwrite history Canonical JSONL is append-only
Writes depend on agent intent Ingest requires immutable draft + external receipt + recoverable transaction

The evidence eligibility check proves only that submitted evidence is current, registered, range-valid, and sufficient in count for the declared claim type. It does not prove that the evidence supports the claim, reconcile conflicts, or establish that a source is true. Those are separate host review stages.

Supported surface

  • lexical, local semantic, hybrid, and adaptive candidate retrieval
  • exact source-range fetch with fail-closed revision checks
  • deterministic evidence eligibility receipts
  • append-only canonical records and recoverable, journaled ingest
  • fixed-role Codex governance contracts
  • a Docker secure harness for sealed benchmark/final-review execution
  • a reviewed, unauthenticated public-demo transport for static corpora

The PyPI wheel intentionally excludes the repository's experimental OpenAI, Anthropic, agent-runtime, and provider-harness packages. Codex remains the only supported host integration. Optional local SentenceTransformer embeddings use an already-present pinned snapshot and never imply generation-provider support.

See semantic retrieval, secure harness, and host integration.

Public read-only demo

Publishing a corpus is a separate explicit action. The manifest binds every canonical JSONL file, registered source, and derived index used by the server.

universal-research public-demo prepare \
  --root ./my-research \
  --corpus-id reviewed-demo \
  --display-name "Reviewed Demo" \
  --confirm-public-data I_UNDERSTAND_THIS_DATA_WILL_BE_PUBLIC

universal-research public-demo verify --root ./my-research

universal-research serve \
  --root ./my-research \
  --transport streamable-http \
  --public-demo \
  --host 127.0.0.1 \
  --port 8765

The bundled server is not a multi-tenant service. Internet deployment still needs TLS termination, authentication where applicable, rate limits, tenant isolation, monitoring, and a separately reviewed deployment boundary. See the public demo guide and security model.

Measured development evidence

The public synthetic development run contains 24 tasks × 4 conditions. The MCP + historical “Claim Gate” condition made 2/18 unsafe material assertions on fault tasks versus 4/18 for direct filesystem retrieval, while using 1.55× mean execution tokens and 1.61× mean latency. The paired 95% interval includes zero. This is a development signal and measured cost, not proof of general hallucination reduction or research-quality improvement.

Development evidence-eligibility results

See the complete development result and benchmark disclosure. Historical artifact names retain “claim gate” for provenance; the current product contract is “evidence eligibility.”

Authority model

  1. data/events/ is the canonical append-only ledger.
  2. data/index/ contains rebuildable derived views.
  3. Registered original sources are stronger than either index.
  4. Candidate retrieval never grants claim eligibility.
  5. Evidence eligibility never proves semantic support or truth.
  6. Host approval remains separate from MCP validation.

Canonical ingest uses a write-ahead transaction journal. Each target file is bound to exact before/after hashes; a failure after a partial append leaves the draft in recovery_required and the same one-time receipt can resume only that exact transaction. The draft is marked consumed after all canonical operations are verified.

Architecture decisions:

Non-goals

Universal Research is not:

  • a truth oracle or automated scientific peer reviewer
  • an authenticated private remote MCP or multi-tenant SaaS
  • a replacement for Codex, Claude Code, or another agent host
  • a hidden provider router or credential store
  • evidence that a model, method, or research result is correct

For medical, legal, regulated, or safety-critical decisions, use it only as an audit and evidence-handling aid with qualified human review.

Development

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, validated on Linux/macOS/Windows, and the same artifact is published through PyPI Trusted Publishing only after every release gate succeeds.

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.7.0.tar.gz (290.8 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.7.0-py3-none-any.whl (274.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: universal_research_mcp-0.7.0.tar.gz
  • Upload date:
  • Size: 290.8 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.7.0.tar.gz
Algorithm Hash digest
SHA256 4c554a1f91a0284d5d081c2295d76e4aa54b74462ae1a2ea4d4ea45b34ac42c1
MD5 22cb312c0bbd61fe3b17bb7a77e7a7cb
BLAKE2b-256 f945f346272fb08d20fdc570e70a606f373d6db96077e776695507637d344651

See more details on using hashes here.

Provenance

The following attestation bundles were made for universal_research_mcp-0.7.0.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.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for universal_research_mcp-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a6a25b9208b624e96222793a847c396c8936ed7ed521348d910c043ed1986d2
MD5 6780ca09b15f0b58c60877207a85bc77
BLAKE2b-256 03839b15dbf451fd0e6d9e341273507295ff43c19a97501d3b6f7950d22e1f1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for universal_research_mcp-0.7.0-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

0.8.5

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

This release

0.7.0 This release

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