[Arquimedes — Open Database of Competition & Olympiad Mathematics]
Arquimedes: Math Problem Database
[Listed on mcpservers.org]
[Glama score]
[CI]
[Release]
[Code license: MIT]
A structured, deduplicated database of competition and benchmark mathematics:
1,038,963 problems across 9 datasets, each with a normalized LaTeX statement,
calibrated Mohs difficulty (1.0 to 10.0), answer metadata, and solutions in a
uniform JSON schema (v2).
- 1,038,963 problems with full statements and 99.98% domain categorization
- 797,671 written solutions: proof-sketch (797,631), strategy (22), answer-only (18)
- 277,002 model-reasoning traces (
deepmath dataset, JSONL shards)
- 1,219 diagram images (SVG and JPG), content-addressed by hash
- Unified Mohs difficulty (
1.0–10.0) populated across all 1,038,963 records
- Fast CLI & MCP Server: installable via
uv (arquimedes CLI and arquimedes-mcp server)
- Decontaminated Train/Eval Splits: one-command export (
972,458 decontaminated train / 10,533 canonical eval)
- Interactive Web Explorer: minimalistic browser catalog in
site/ ready for GitHub Pages
Datasets
Category Distribution
Per-dataset category breakdowns and field notes: docs/datasets.md.
Competition Coverage
The source.collection field labels records that come from a named
competition or benchmark:
- AMC program (
core): AHSME 1,810 · AMC 8 1,025 · AMC 10A 625 · AMC 10B 625 · AMC 10 50 · AMC 12A 625 · AMC 12B 625 · AMC 12 50 · AIME I 405 · AIME II 405 · AIME 255 · USAMO 153 · USA TST 45 · USA TSTST 48
- IMO (
core): 156
- HMMT (
core): February 2,606 · November 1,072 · Invitational 65
- CEMC (
cemc): Gauss (Grade 7) 174 · Gauss (Grade 8) 166 · Pascal (Grade 9) 134 · Cayley (Grade 10) 150 · Fermat (Grade 11) 168
- AoPS (
aops): IMO Shortlist 102 · USAJMO 91 · Canadian MO 83 · APMO 28 · Putnam 7
- OlympiadBench (
olympiadbench): 1,389
- MATH (
math): 12,401
Records in omnimath, deepmath, numina, and bigmath carry origin and domain labels in source.tags.
CLI & MCP Server (uv)
arquimedes ships a zero-dependency Python package with both a fast CLI (arquimedes) and a Model Context Protocol server (arquimedes-mcp) backed by SQLite + FTS5 (with automatic JSONL shard fallback when SQLite is absent).
Install from PyPI
The package name is arquimedes-mcp. It does not contain the problems. Download them once from the Hugging Face dataset (about 1.3 GB of shards, then a lean index of about 0.8 GB):
That copy lives in the user data directory (~/Library/Application Support/arquimedes on macOS), so the next uvx run finds it.
From a checkout
MCP server from a checkout
Add to your mcp.json or claude_desktop_config.json when the shards are already in a checkout:
Exposed MCP tools (all read-only; arguments in docs/usage.md):
arquimedes_get_stats: dataset, category, competition, and solution counts
arquimedes_search_problems: full-text search with category, dataset, competition, and min_mohs/max_mohs filters
arquimedes_sample_problems: uniform random draw among problems matching the filters, repeatable with a seed
arquimedes_get_problem: full LaTeX statement, choices, answer, hints, solutions, and optional deepmath reasoning traces by id
Stability (1.x)
From 1.0.0 on, these interfaces only change in backward-compatible ways until
a 2.0.0 release:
- the v2 problem record schema in
docs/schema.md: fields
are not removed or renamed, and their types do not change
- the MCP tool names, their arguments, and the shape of their results
- the
arquimedes CLI commands and flags, and their --json output
- the SQLite tables and columns built by
arquimedes build
- the
ArquimedesEngine methods get_stats, search, sample, and
get_problem
New fields, tools, flags, and data fixes can arrive in minor and patch
releases. Corrections to individual records (a wrong answer, a mislabeled
category) are data fixes, not breaking changes. Counts and difficulty.mohs
values can change as records are corrected; mohs is a calibration, not a
measured difficulty. Changes are listed in CHANGELOG.md.
Decontaminated Train / Eval Splits
For LLM post-training and RLVR (Reinforcement Learning with Verifiable Rewards), tools/export_splits.py (or uv run arquimedes splits) produces a decontaminated training set and a canonical evaluation benchmark:
- Evaluation split (
splits/eval.jsonl.gz — 10,533 problems): math test split (4,974), omnimath (2,640), olympiadbench (1,389), core 2023+ contests (931), aops (311), and cemc 2023+ contests (288).
- Decontaminated training split (
splits/train.jsonl.gz — 972,458 problems): filters out 46,057 unverifiable records and strips 9,915 near-duplicate benchmark leaks detected via 5-gram token shingle overlap across numina, bigmath, core, math, deepmath, and cemc.
Quickstart (Python & SQLite)
Read a problem directly from a shard with the Python standard library:
Query SQLite + FTS5 directly:
Layout
Documentation
docs/schema.md: full v2 record reference, shard format, SQLite + FTS5 schema, LaTeX convention, image store
docs/usage.md: CLI, MCP server, SQL & FTS5 queries, reasoning traces, decontaminated splits
docs/datasets.md: per-dataset contents, field notes, category distributions, deduplication rules, and upstream licenses
License
Code in arquimedes/, tools/, and site/ is MIT. The Mohs calibration, the category labels assigned by this project, and data/index.json are CC BY 4.0. Problem statements, solutions, answers, and diagrams are not relicensed; the upstream terms are in docs/datasets.md. A Hugging Face copy keeps every record and stamps the holder's notice on it: richard01172000/arquimedes. See LICENSE.