Skip to main content

Aurelius — a fact-checked research MCP server. Bring rigorous, web-verified academic drafting to Claude, ChatGPT, Gemini and any MCP-capable app.

Project description

Aurelius

PyPI version Python License: MIT MCP

A fact-checked research MCP server. Aurelius gives any MCP-capable app — Claude (Desktop / Code / claude.ai), Gemini CLI, Cursor, and (via a remote deployment) ChatGPT — a set of research tools that verify every citation and claim against live web sources before presenting it. No more hallucinated papers.

Aurelius grew out of a multi-agent research framework and distills its best idea into a portable tool server: screen a topic → draft → fact-check → revise.


Why this design solves the "API cost" problem

By default Aurelius runs in host-driven mode: the app you connect it to (Claude, Gemini, etc.) uses its own model to reason and write, and Aurelius just supplies the research and fact-checking tools. That means Aurelius needs no LLM API key of its own — the tokens are covered by your existing Claude/Gemini/ChatGPT subscription. The only optional key is Tavily for web search (free tier available).

There's also an optional autonomous mode (autonomous_research / aurelius-research) where Aurelius drives its own LLM — that one needs an LLM API key with quota.


Install

pip install aurelius-mcp

The bare name aurelius was already taken on PyPI, so the package ships as aurelius-mcp. The import name (import aurelius) and the CLI command (aurelius) are unchanged.

This provides two commands:

  • aurelius — launch the MCP server (stdio). This is what MCP clients run.
  • aurelius-research "<topic>" — run one autonomous research job from the terminal.

If aurelius isn't found (the pip scripts dir may not be on your PATH — common on Windows), use the equivalent module form anywhere a command is expected: "command": "python", "args": ["-m", "aurelius"].

Get a Tavily key (for web search / verification)

Create a free key at https://tavily.com and expose it as TAVILY_API_KEY (see the config snippets below, which inject it into the server's environment).


Connect it to your app (local / stdio)

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "aurelius": {
      "command": "aurelius",
      "env": { "TAVILY_API_KEY": "tvly-your-key" }
    }
  }
}

Restart Claude Desktop. See examples/claude_desktop_config.json.

Claude Code

claude mcp add aurelius --env TAVILY_API_KEY=tvly-your-key -- aurelius

Cursor

Add to ~/.cursor/mcp.json (or the project .cursor/mcp.json):

{
  "mcpServers": {
    "aurelius": { "command": "aurelius", "env": { "TAVILY_API_KEY": "tvly-your-key" } }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "aurelius": { "command": "aurelius", "env": { "TAVILY_API_KEY": "tvly-your-key" } }
  }
}

Then just ask: "Use Aurelius to research the historical correlation between GDP growth and unemployment, and verify every citation."


Tools

Tool What it does Needs
screen_topic(topic) Screen a topic against the restricted-domain policy
get_research_policy() Return the accept/reject policy
draft_outline(topic) Standard academic outline scaffold
web_search(query, …) Search the web for evidence Tavily key
verify_citation(citation) Check a citation exists in reputable sources Tavily key
save_draft(content) Save the Markdown draft
save_report(content) Save the verification report
autonomous_research(topic, model, …) Run the whole loop itself LLM key

Outputs are written to ./aurelius_output/ (override with AURELIUS_OUTPUT_DIR).

The Claude skill

skill/aurelius/SKILL.md teaches a host model the exact screen → draft → verify → save workflow. Drop it into your Claude Code/Agent skills so the model uses the tools rigorously.


Autonomous mode (optional, needs an LLM key)

export OPENAI_API_KEY=sk-...          # or ANTHROPIC_API_KEY / GOOGLE_API_KEY
export TAVILY_API_KEY=tvly-...
aurelius-research "Health effects of microplastics in drinking water" --model gpt-4o-mini-2024-07-18 --rounds 2

Provider is auto-detected from the model name (gpt-* → OpenAI, claude-* → Anthropic, gemini-* → Google).


Platform support (honest status)

Platform Status
Claude Desktop / Code ✅ Local stdio
Gemini CLI, Cursor ✅ Local stdio
ChatGPT ⚠️ Needs a remote (HTTP/SSE) deployment — on the roadmap
Perplexity ❌ No user-added MCP servers yet

License

MIT

Project details


Download files

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

Source Distribution

aurelius_mcp-0.1.2.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

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

aurelius_mcp-0.1.2-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file aurelius_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: aurelius_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aurelius_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 902e1cf07c18f9bc3fcd009f27fd4cfa9ae1a75c8cedb8d91bf6be282b1043fa
MD5 60336c2acf3b5b24c21d17d3681a9a4b
BLAKE2b-256 10dcdb7b453b465a87d2f4edcc58de76708c1caf8c11696b025d5ab6b4f4f32c

See more details on using hashes here.

File details

Details for the file aurelius_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: aurelius_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aurelius_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1b47fd9b8b4c9166dada3176dbaed067122186b8227fb9bb0125d9aff0fae03f
MD5 8bee807f8e3af4dbc75fb57dc28d0616
BLAKE2b-256 f1e40fe917cca734c8d0450cc198ff39077086082edf523cd78e7953ecf0bcfb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page