{
  "markdown": "<div align=\"center\">\n\n<img src=\"docs/assets/thoth-logo.svg\" alt=\"Thoth — sacred ibis logo\" width=\"120\" height=\"120\" />\n\n# Thoth\n\n**Agentic systematic literature reviews — with every citation checked against the source.**\n\n*Named for Thoth, ancient Egypt's ibis-headed god of writing and scribes.*\n\n[![Live demo](https://img.shields.io/badge/▶_live_demo-thoth--slr.vercel.app-1E3A8A?style=flat-square)](https://thoth-slr.vercel.app)\n[![Public evals](https://img.shields.io/badge/evals-public-C9A961?style=flat-square)](https://thoth-slr.vercel.app/evals)\n[![MCP Registry](https://img.shields.io/badge/MCP-registered-orange?style=flat-square)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ahmedEid1/thoth)\n[![Tests](https://img.shields.io/badge/tests-676%20passing-success?style=flat-square)](docs/architecture.md#tests--verification)\n[![App release](https://img.shields.io/badge/app%20release-v2.0.0-informational?style=flat-square)](CHANGELOG.md)\n[![Deploy cost](https://img.shields.io/badge/deploy-%240%2Fmo-brightgreen?style=flat-square)](docs/self-host/oracle-cloud-quickstart.md)\n[![License: MIT](https://img.shields.io/badge/license-MIT-black?style=flat-square)](LICENSE)\n\n**[Try the live demo](https://thoth-slr.vercel.app)** · **[See a sample review](https://thoth-slr.vercel.app/showcase)** · **[Public eval dashboard](https://thoth-slr.vercel.app/evals)** · **[Connect via MCP](#-connect-it-to-your-ai-assistant)**\n\n<img src=\"docs/assets/media/showcase-walkthrough.gif\" alt=\"Browsing a completed Thoth review — draft, critic score, and per-claim citation audit\" width=\"760\" />\n\n</div>\n\n---\n\n## What is Thoth?\n\nSystematic literature reviews are slow to write — and when you ask an LLM to write\none, it confidently invents citations and statistics that aren't in any paper.\n\n**Thoth does both halves and checks its own work.** Give it a research question and\nit discovers relevant papers, reads them, drafts an evidence-grounded review — then\nruns a verification pass (`cite_check`) that compares **every cited claim against the\nsource paper** and flags anything unsupported *before you read the draft*. The result\nis a review with a critic score, a citation-faithfulness percentage, and a per-claim\naudit you can trust.\n\nIt runs as a polished web app, a public eval dashboard, and an authenticated MCP\nserver your AI assistant can call directly.\n\n## See it work\n\n**Claude.ai catches 6 fabricated citations in a real draft — using Thoth's audit:**\n\n<div align=\"center\">\n<img src=\"docs/assets/m5-mcp-demo.gif\" alt=\"Claude.ai connected to Thoth via MCP, using get_citation_audit to identify 6 unsupported claims\" width=\"760\" />\n</div>\n\n> Connected to Thoth via the [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ahmedEid1/thoth), Claude calls `get_citation_audit` on **one deliberately-weak review** (faithfulness 0.13 for that single review) and identifies all 6 unsupported claims — every one citing the same paper, with invented percentages that aren't in the source. This is `cite_check` doing its job: it's a single-review audit sample, not the golden-set aggregate (see [`/evals`](https://thoth-slr.vercel.app/evals)).\n\n**Every claim, scored against its source** — the `/showcase` review (no login needed). The figures on this card (critic 4.2/5, faithfulness 75%, 8/8 citations checked, 2 unsupported) are **this one review's** scores — a worked example, not the aggregate:\n\n<div align=\"center\">\n<img src=\"docs/assets/media/02-showcase.png\" alt=\"A completed Thoth review: critic 4.2/5, citation faithfulness 75%, 8/8 citations checked with 2 unsupported — scores for this single sample review\" width=\"760\" />\n</div>\n\n**Evaluated in public** — [`/evals`](https://thoth-slr.vercel.app/evals) tracks citation recall / precision / faithfulness / coverage over an 18-question versioned golden set (7 of 18 populated at this commit), regenerated in CI and published with the last-run date, so a regression is a public, falsifiable signal:\n\n<div align=\"center\">\n<img src=\"docs/assets/media/03-evals.png\" alt=\"Thoth's public eval dashboard — citation recall, precision, faithfulness, and coverage per golden question\" width=\"760\" />\n</div>\n\n**You approve every step** — three human-in-the-loop gates (review plan → review discovered papers → approve included papers); nothing runs unattended:\n\n<div align=\"center\">\n<img src=\"docs/assets/media/hitl-gates.gif\" alt=\"Thoth's three human-in-the-loop approval gates: review plan, review discovered papers, approve included papers\" width=\"760\" />\n</div>\n\n## Key features\n\n- **🔎 `cite_check` — verifiable citations.** Every `[paper_id]` in the draft is\n  scored against the cited paper and labelled supported / unsupported / unclear,\n  so the LLM can't quietly hallucinate a citation. On the public golden set, the\n  citations it *does* surface are accurate — **citation precision 97%, recall 74%**\n  — and the verdict report is published per claim, not summarised away. This is the\n  core differentiator: the citations are measured, not asserted.\n- **🌐 Outbound web search (v2 — under active evaluation).** An outbound\n  `discoverer → fetcher → screener` path is wired across **OpenAlex**, **arXiv**, and\n  **Exa**: it fetches open-access PDFs, OCRs them, and screens each against your plan,\n  so you can run uploaded-only, hybrid, or fully autonomous discovery. The discovery\n  and screening axes are **v2 and still being calibrated** — they're tracked openly on\n  [`/evals`](https://thoth-slr.vercel.app/evals) (both currently at 0%) rather than\n  shipped as a silent claim.\n- **🔌 Authenticated, registered MCP server.** OAuth 2.1 + PKCE + Dynamic Client\n  Registration via Clerk, SHA-256 audit logging, rate limits — listed in the\n  [official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ahmedEid1/thoth).\n  Most public MCP servers ship with no auth; this one doesn't.\n- **📊 Public eval dashboard.** Recall / precision / faithfulness / coverage over a\n  versioned golden set, regenerated in CI and stamped with the last-run date, rendered at\n  [`/evals`](https://thoth-slr.vercel.app/evals) — an eval regression is a *public*\n  signal, not a hidden one.\n- **💸 6 LLM providers, $0/mo by default.** Swap providers with one env var; the Mistral\n  free tier runs the whole thing, and the entire stack deploys on free tiers for\n  **$0/mo**.\n\n## 🚀 Quickstart\n\n**Try it now (nothing to install):**\n- **[Open the live demo →](https://thoth-slr.vercel.app)** and build a review, or\n  **[browse a finished one →](https://thoth-slr.vercel.app/showcase)**.\n\n**Connect it to your AI assistant** — paste this into claude.ai (Pro/Max), Claude\nDesktop, Cursor, or any MCP client (OAuth runs in your browser; no token to copy):\n\n```\nhttps://thoth-slr.vercel.app/api/mcp/mcp\n```\n\n<details>\n<summary>Read-only MCP tools (scoped to your account)</summary>\n\n- `list_reviews` — your reviews with critic + faithfulness scores\n- `get_review_draft` — the markdown draft of a completed review\n- `get_citation_audit` — the per-claim cite_check verdict report\n- `list_discovered_papers` *(v2)* — papers the discoverer surfaced, with fetch + screening status\n- `get_search_queries` *(v2)* — the queries the discoverer generated + per-provider errors\n\nFull reference: [`docs/mcp/tools.md`](docs/mcp/tools.md) · auth + audit model: [`docs/mcp/security.md`](docs/mcp/security.md)\n</details>\n\n<div align=\"center\">\n<img src=\"docs/assets/m5-mcp-setup.gif\" alt=\"Adding Thoth as a custom MCP connector in claude.ai — paste the URL, OAuth via Clerk + Dynamic Client Registration\" width=\"760\" />\n<br/><em>Adding Thoth as a custom connector in claude.ai — OAuth runs in your browser (Clerk + DCR), no token to copy.</em>\n</div>\n\n**Run it locally:**\n\n```bash\ngit clone https://github.com/ahmedEid1/thoth.git && cd thoth\ncp .env.example .env        # Clerk + Trigger.dev keys + MISTRAL_API_KEY\ndocker compose up -d        # postgres, minio, langfuse\npnpm install && pnpm prisma migrate dev\npnpm dev                    # Next.js on :3000\npnpm dev:trigger            # Trigger.dev worker (separate terminal)\n```\n\nFull setup, the agent pipeline, and the v2 flow: **[docs/architecture.md](docs/architecture.md)**.\n\n## Proof\n\n| | |\n|---|---|\n| **Live app** | [thoth-slr.vercel.app](https://thoth-slr.vercel.app) (Clerk sign-in) · sample review at [`/showcase`](https://thoth-slr.vercel.app/showcase) |\n| **Public evals** | [`/evals`](https://thoth-slr.vercel.app/evals) — **citation precision 97%, recall 74%** on a versioned 18-question golden set (7 of 18 populated at this commit; faithfulness 38% / coverage 32% tracked in the open as the set fills out; discovery/screening v2 under calibration). Regenerated in CI, published with the last-run date — a regression is a public signal. |\n| **MCP Registry** | [`io.github.ahmedEid1/thoth`](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ahmedEid1/thoth) — `status: active` |\n| **Tests** | 676 unit/integration + 22 live e2e against the deployed instance (MCP transport, real-browser, authenticated walkthroughs, full agent runs) — all green; tsc + lint clean |\n| **Audit log** | Every MCP call recorded with a SHA-256 input hash; no raw input stored |\n| **Deploy cost** | $0/mo — Vercel + Neon + Cloudflare R2 + Langfuse + Trigger.dev, all free tiers ([self-host option](docs/self-host/oracle-cloud-quickstart.md)) |\n\n## For engineers\n\nThoth is a **LangGraph** `StateGraph` driven by a **Trigger.dev** worker, with durable\nhuman-in-the-loop gates, a per-run cost cap, and exactly-once gate delivery. Next.js 16\n+ TypeScript (strict), Postgres + Prisma, Clerk auth (web + OAuth 2.1 for MCP),\nS3-compatible storage, Mistral OCR, Langfuse tracing.\n\n- **[Architecture](docs/architecture.md)** — the agent pipeline, full stack, v2 flow, tests\n- **[LLM providers](docs/llm-providers.md)** — the 6-provider matrix + resilience knobs\n- **[MCP tools](docs/mcp/tools.md)** · **[MCP security](docs/mcp/security.md)**\n- **[Security & privacy](docs/security-and-privacy.md)** — data inventory, jurisdictions, deletion paths\n- **[Self-host](docs/self-host/oracle-cloud-quickstart.md)** — one VM on Oracle Cloud Always Free\n- **[Changelog](CHANGELOG.md)** · **[Releasing](RELEASING.md)**\n\n## Credits\n\nIbis icon by [Delapouite](https://delapouite.com/) under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/), via [game-icons.net](https://game-icons.net/1x1/delapouite/ibis.html).\n\n## License\n\n[MIT](LICENSE) © 2026 Ahmed Hobeishy\n",
  "bytes": 10514,
  "sha": "26c3e4a20aeae6b6dbc31a8464aa174931f8f108c29e83baf642a80021ccc117",
  "repo_slug": "ahmedeid1/atlas",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ahmedeid1_atlas_research_46d18204/readme"
}