Polymath MCP
Search Hacker News discussions via Algolia's API.
Search and retrieve academic papers from arXiv, including CS/EE preprints, with cross-source deduplication and merging.
Access canonical computer science bibliography data from DBLP for venue and paper lookups.
Search for code repositories, e.g., implementations of papers, on GitHub.
Search models, datasets, and papers on Hugging Face Hub and Hugging Face Papers.
Search scanned datasheets and databooks from the Internet Archive.
Check KiCad symbol libraries for electronic component existence and symbols.
Retrieve citation graphs and citation counts from Semantic Scholar on a best-effort basis.
Search Stack Exchange sites, including Stack Overflow and Electronics Stack Exchange, for discussions.
Search Stack Overflow for practitioner discussions and technical Q&A.
Search and retrieve research outputs such as software and datasets with DOIs from Zenodo.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Polymath MCP find recent papers on large language models"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Polymath MCP
An MCP (Model Context Protocol) server that aggregates free, keyless research sources for computer science, computer engineering, electronics and IT.
One server, one normalized output format, seventeen data sources. Every source works without an API key and without payment. Results from different sources are merged and deduplicated by DOI and arXiv id, so the same paper found on arXiv, Crossref and OpenAlex comes back as a single record that combines the best fields of each.
Why
Research data is scattered across many APIs, each with its own format, quirks and rate limits. Existing MCP servers each cover one slice. Polymath gives an agent a single interface where a paper, its open-access PDF, its citation count, its implementation on GitHub, the model trained from it on Hugging Face and the practical discussion around it on Hacker News or Stack Exchange are all one tool call apart.
Related MCP server: Academic Paper MCP HTTP/SSE Server
Tools
Tool | What it does | Sources |
| Search academic papers, deduplicated across sources | arXiv, Crossref, DBLP, Europe PMC, OpenAlex, CORE, Zenodo, Semantic Scholar, Hugging Face Papers |
| Resolve one paper by DOI or arXiv id, merging every source that knows it, including open-access PDF link and citation counts | the above, plus Unpaywall and OpenCitations |
| Find repositories, e.g. the implementation of a paper | GitHub |
| Search models or datasets, with links back to their papers | Hugging Face Hub |
| Practitioner discussions and relevance signals | Hacker News, Stack Overflow, Electronics Stack Exchange |
| RFCs and Internet-Drafts | IETF Datatracker |
| Electronic component documents: scanned datasheets and KiCad symbols | Internet Archive, KiCad libraries |
| List every source and its category | - |
Every search response is an envelope with results, sources_ok and
sources_failed. Partial failure is the normal case for an aggregator: when a
source is down or rate-limited, the others still answer and the envelope says
exactly which sources contributed.
Installation
Requires Python 3.11+.
pip install git+https://github.com/Moreti2002/polymath-mcpOr from a clone:
git clone https://github.com/Moreti2002/polymath-mcp
cd polymath-mcp
pip install .Claude Code
claude mcp add polymath -- polymath-mcpClaude Desktop / other MCP clients
{
"mcpServers": {
"polymath": {
"command": "polymath-mcp"
}
}
}Configuration
No API keys are needed. One optional environment variable:
POLYMATH_EMAIL: a real contact e-mail. Unlocks the Unpaywall source (which requires it) and puts Crossref requests in its polite pool with better rate limits. Without it everything else still works.
{
"mcpServers": {
"polymath": {
"command": "polymath-mcp",
"env": { "POLYMATH_EMAIL": "you@example.com" }
}
}
}Sources and their limits
All limits below are for keyless access, as observed in practice.
Source | Role | Keyless limit |
arXiv | CS/EE preprints, primary | 1 request / 3 s (self-imposed politeness) |
Crossref | DOI metadata, primary | 3 req/s in the polite pool |
DBLP | Canonical CS bibliography (venues) | ~1 req/s, aggressive blocking on bursts |
Europe PMC | Full-text biomedical + applied ML | ~10 req/s |
OpenAlex | Enrichment by DOI (free); text search is credit-rationed (~100 searches/day) | 1000 credits/day/IP |
CORE | Institutional repository full-text | ~10 req/min |
Zenodo | Software and datasets with DOIs | 30 req/min |
Semantic Scholar | Citation graph, best effort only | shared anonymous pool, frequent 429 |
Unpaywall | Open-access PDF resolution by DOI | 100k/day, requires |
OpenCitations | Citation counts and references | unthrottled, high latency |
GitHub | Repository search | 10 req/min |
Hugging Face | Models, datasets, papers | generous, undocumented |
Hacker News (Algolia) | Discussion search | ~10k req/h |
Stack Exchange | Stack Overflow + Electronics SE | 300 req/day/IP |
IETF Datatracker | RFCs and drafts | unthrottled |
Internet Archive | Scanned datasheets and databooks | unthrottled |
KiCad libraries (GitLab) | Component symbol existence | unthrottled |
The server caches responses in memory and throttles each source to stay within these limits. Sources with hard daily budgets (Stack Exchange, OpenAlex search) are cached the longest.
Known coverage gaps
There is no legitimate keyless API for commercial electronic component catalogs (Octopart/Nexar, Digi-Key and Mouser all require credentials).
search_componentscovers what keyless sources can: scanned datasheets on the Internet Archive and KiCad symbol libraries. For part selection discussion,search_trendsincludes the Electronics Stack Exchange.Papers with Code shut down in 2025; its role is covered by the Hugging Face Papers source.
Semantic Scholar without a key shares a global anonymous pool and fails often. It is wired as best-effort and never blocks a search.
Architecture
src/polymath/
server.py MCP server and tool definitions
models.py normalized result models (Paper, CodeRepo, HubItem, ...)
aggregate.py concurrent fan-out with per-source failure isolation
dedupe.py cross-source paper merging (DOI, arXiv id, title)
http.py shared HTTP client, retries, per-source throttling
cache.py in-memory TTL cache
providers/ one module per source, registered in a plug-in registryAdding a source is one file: subclass Provider (or PaperLookupProvider),
map the API response to the normalized models, decorate the class with
@register. The aggregator, dedupe and MCP tools pick it up automatically.
Development
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -m "not live" # offline tests (mocked HTTP)
pytest -m live # integration tests against the real APIsOffline tests must always pass. Live tests depend on third-party services and may fail when a source is down or rate-limited; CI runs them as non-blocking.
License
MIT. See LICENSE.
Available Tools
8 toolsget_paperA
Get details for one paper by DOI (e.g. '10.1145/3600006') or arXiv id (e.g. '2301.12345' or 'arXiv:2301.12345'). Merges metadata from every source that knows the paper, including an open-access PDF link when one exists.
Inputs: identifier (required). Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
list_sourcesA
List every available data source and the category it serves.
Inputs: no named parameters. Returns: object
search_codeA
Search code repositories on GitHub, e.g. to find the implementation of a paper or a library. Optionally filter by programming language.
Inputs: query (required), limit, language. Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
search_componentsA
Search electronic component information from keyless sources: scanned datasheets and databooks on the Internet Archive and KiCad symbol libraries (which confirm a part's existence and canonical naming). No keyless commercial parts API exists, so coverage is partial; for practical component discussion also try search_trends, which covers the Electronics Stack Exchange.
Inputs: query (required), limit. Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
search_hubA
Search the Hugging Face Hub for models or datasets. kind is either
'models' or 'datasets'. Results include linked arXiv ids when available,
which connects a model or dataset back to its paper.
Inputs: query (required), kind, limit. Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
search_papersA
Search academic papers across arXiv, OpenAlex, Crossref, DBLP, Europe PMC and Semantic Scholar. Results are deduplicated by DOI/arXiv id and sorted by citation count. Optionally restrict to specific sources or a year range.
Inputs: query (required), limit, sources, year_to, +1 more. Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
search_standardsA
Search technical standards and specifications: IETF RFCs and Internet-Drafts (TCP, HTTP, DNS, TLS, QUIC, ...). The primary source for networking and internet systems specs.
Inputs: query (required), limit. Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
search_trendsA
Search practitioner discussions and trends on Hacker News, Stack Overflow and the Electronics Stack Exchange. Useful as a signal of real-world relevance and for practical questions about a technology.
Inputs: query (required), limit, sources. Returns: Envelope for every aggregated search. Partial failure is the normal case for an…
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Most tools are clearly distinct by domain (papers, code, models, trends, components, standards). Minor ambiguity exists between search_components and search_trends, as both can surface component-related information, though one focuses on datasheets and the other on discussions.
The majority of tools follow a consistent search_<domain> pattern (search_papers, search_code, search_hub, search_trends, search_components, search_standards). The remaining tools use clear verb_noun forms (get_paper, list_sources) that fit naturally without mixing conventions.
With 8 tools, the server is well-scoped for its multi-domain research purpose. Each tool serves a distinct need in the discovery pipeline, and the count is neither too sparse nor overwhelming.
The toolset covers the core discovery lifecycle: searching papers, retrieving paper details, searching code, models/datasets, trends, components, and standards. Missing are detail-retrieval tools for non-paper entities (e.g., get_code, get_model), but search results appear to include sufficient information for most use cases.
Maintenance
Related MCP Connectors
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
Academic research MCP server for paper search, citation checks, graphs, and deep research.
One MCP server over 253 data sources: Reddit, LinkedIn, YouTube, G2, search and AI answers.
Search and inspect source-pinned agent skills, plugins and tools through a free public MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceComprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.11MIT
- AlicenseNot gradedqualityDmaintenanceA MCP server for academic literature retrieval, aggregating multiple data sources like arXiv, Crossref, OpenAlex, PubMed, and Semantic Scholar to provide search, details, citations, trends, and recommendations.4MIT
- AlicenseNot gradedqualityCmaintenanceZero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.61 PyPI12Apache 2.0
- AlicenseNot gradedqualityDmaintenanceSERP-free scholarly search MCP server that queries academic sources like arXiv, Semantic Scholar, and conference proceedings using official APIs and reverse-engineered endpoints, with no API keys required. It supports unified conference search and returns normalized paper metadata.2MIT