priorwork-mcp
MCP server for priorwork.fyi — semantic search over 114,000+ papers from major ML, NLP, and Computer Vision conferences (NeurIPS, CVPR, ICML, ICLR, ACL, EMNLP, ICCV, AISTATS, and more), directly from Claude Code, Cursor, or any MCP client.
Tools
| Tool | Description |
|---|---|
search_papers |
Semantic search from a text query (a short descriptive sentence or two works slightly better than a few keywords) — returns ranked papers with authors, venue, year, similarity score, download URL, and full abstract. Pass summarize=true to add a structured per-paper LLM summary (problem, core insight, method, key results, positioning) |
search_by_pdf_url |
Give it a public PDF link (e.g. an arXiv PDF) and get semantically similar papers from the index |
search_research_topics |
A different corpus: open research problems mined from the limitations authors state in their own papers. Describe what you want to work on as prose — keywords match nothing, since each problem is stored as a synthetic abstract |
list_indexes |
List the available paper indexes and their sizes |
Setup
Claude Code
claude mcp add priorwork -- uvx priorwork-mcp
Cursor / other MCP clients
Add to your MCP configuration:
{
"mcpServers": {
"priorwork": {
"command": "uvx",
"args": ["priorwork-mcp"]
}
}
}
Caching
The topics artifact is ~4.6 MB and changes only when the pipeline runs, so it is
cached at ~/.cache/priorwork-mcp/topics.json rather than fetched per search.
Set PRIORWORK_CACHE_DIR to move it.
Every search response names the published set it came from, so knowing when to refetch is one string comparison. That covers the change a client cannot infer for itself: a run that rewrites every title leaves every key intact, since a key derives from a topic's supporting papers rather than its text.
A refetch that fails leaves the cached copy in place — stale topics beat no topics, and the id will still not match on the next search, so it retries then. An unwritable cache directory or a corrupt cache file costs a fetch, not an error.
Configuration
Configuration is via environment variables (pass with -e KEY=value in claude mcp add,
or an "env" block in JSON configs):
| Variable | Required | Description |
|---|---|---|
PRIORWORK_API_KEY |
No | Your own API key from priorwork.fyi. Defaults to the shared public free-tier key (rate-limited across all default installs) |
PRIORWORK_API_URL |
No | Override the API base URL (default https://priorwork.fyi) |
Example
"Find prior work on spatiotemporal forecasting with graph neural networks"
1. Taming Local Effects in Graph-based Spatiotemporal Forecasting — Andrea Cini, et al. (2023 · NeurIPS) [score: 0.802]
2. FourierGNN: Rethinking Multivariate Time Series Forecasting from a Pure Graph Perspective — ...
Or, for open problems rather than published work:
"We want to apply interpretability methods to models served only behind closed APIs, where activations and full logits are unavailable."
1. A Framework for Deploying Activation- and Logit-Based Methods Against Closed-Source LLM APIs
Relevance: 0.554 Area: Model Safety, Alignment & Jailbreaks Evidence: 177 papers
Why it matters: A very large body of techniques — safety defenses, interpretability
probes, evaluation metrics — requires hidden states, attention maps, or token-level
probabilities, and is therefore silently restricted to open-weight models. ...
Describe the problem in a sentence or two. Keywords return nothing: each topic is
stored as a synthetic abstract, so efficient transformers edge devices matches
nothing while a prose description of the same intent matches well.
License
MIT
Metadata
Release files for priorwork-mcp 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| priorwork_mcp-0.5.0.tar.gz | 7.7 kB | Without provenance | Details for priorwork_mcp-0.5.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| priorwork_mcp-0.5.0-py3-none-any.whl | Python 3 | none | any | Details for priorwork_mcp-0.5.0-py3-none-any.whl |
Total release size: 15.9 kB
Release files / priorwork_mcp-0.5.0.tar.gz
| Download URL | priorwork_mcp-0.5.0.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba50a651800733390ab7fcf9361daab4ba776e84f92f1abacae2ffebe6c0957d
|
|
BLAKE2b-256 checksum How to use checksums |
f797e5b7c3117a5b7684997e7234d6c6b6554a1801316d80235e576d93a3322a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Release files / priorwork_mcp-0.5.0-py3-none-any.whl
| Download URL | priorwork_mcp-0.5.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
318d222095896034b39f88c125f35fc4acae11734a3f8ea7e117e62d481f00f5
|
|
BLAKE2b-256 checksum How to use checksums |
8bb378ad8fddfc7d5281690efd48b2633addc9179b0b43acde032e7a6d6dd2fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Security for priorwork-mcp 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.