MCP server: One MCP server.

Code of Paper

@isagelswannRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Find GitHub implementations of arXiv research papers — paper lookup, ranked code, search.

Academic papersv0.3.2MITPython
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIcodeofpaperv0.3.2

Run

uvx codeofpaper

MCP client config

{
  "mcpServers": {
    "code-of-paper": {
      "command": "uvx",
      "args": [
        "codeofpaper"
      ]
    }
  }
}
README8 min read

Code of Paper CLI

Discover GitHub implementations of research papers — from the terminal.

Search 181k+ arXiv papers and find their code on GitHub. Works for humans and AI agents alike.

PyPI Python 3.10+ License: MIT

Install

bash
pip install codeofpaper

Or with pipx for isolated installs:

bash
pipx install codeofpaper

Requires Python 3.10+. No API key needed — works anonymously at 60 requests/minute.

Quick Start

bash
# Search for papers
codeofpaper search "vision transformers"

# Get paper details (arXiv IDs or full URLs both work)
codeofpaper paper 2010.11929
codeofpaper paper https://arxiv.org/abs/2010.11929

# Find code implementations
codeofpaper code 1706.03762

# Browse trending papers with code
codeofpaper trending --has-code

# JSON output for scripts and agents
codeofpaper -o json trending | jq '.trending[] | {title, stars: .max_stars}'

# One-shot reproducibility context for an agent: paper + confident repos
# (with tier + framework + license) + fork-graph in a single JSON payload.
codeofpaper -o json paper 2010.11929 | jq '{title, repos: [.repos[] | {full_name, tier}], forks: [.fork_graph[] | .full_name]}'

# Literature review in one command
codeofpaper research "reinforcement learning" --depth deep

Output Formats

Use -o / --output before the subcommand:

bash
codeofpaper -o json paper 2010.11929
codeofpaper -o quiet search "attention" | head -5
codeofpaper -o csv trending --has-code > papers.csv
FormatFlagUse case
Table-o tableHuman reading (default)
JSON-o jsonScripts, jq pipelines, full response data
Quiet-o quietIDs only, one per line — pipe into other commands
JSONL-o jsonlStreaming, append to files, batch processing
BibTeX-o bibtexCitation managers, LaTeX bibliographies
CSV-o csvSpreadsheets, pandas, data analysis

The shorthand -q is equivalent to -o quiet:

bash
codeofpaper -q search "transformers" | head -3

You can set a default format via config so you don't need -o every time:

bash
codeofpaper auth setup    # then edit ~/.config/codeofpaper/config.json

Commands

Discovery

CommandDescriptionExample
searchFull-text paper searchcodeofpaper search "vision transformers" --has-code
paperPaper details by arXiv ID or URLcodeofpaper paper 2010.11929
codeGitHub repos implementing a papercodeofpaper code 1706.03762
similarSemantically similar paperscodeofpaper similar 2010.11929
suggestAutocomplete / quick lookupcodeofpaper suggest "attention"
randomRandom interesting papercodeofpaper random --quality high

Browsing

CommandDescriptionExample
trendingTrending papers by categorycodeofpaper trending --category cs.CV --sort hot
categoriesList categories or get detailscodeofpaper categories cs.AI
conferencesList all conference seriescodeofpaper conferences
conferencePapers from a specific conferencecodeofpaper conference neurips_2024 --has-code
code-dropsRecent conference papers with new codecodeofpaper code-drops --days 7
repoReverse lookup: repo → papercodeofpaper repo google-research/vision_transformer
openOpen paper or repo in browsercodeofpaper open 2010.11929 --code

Bulk Operations

CommandDescriptionExample
researchStructured research overviewcodeofpaper research "RL" --depth deep
batchProcess multiple IDs from stdin/filecat ids.txt | codeofpaper batch paper
exportPaginated bulk exportcodeofpaper export trending -o csv > out.csv

Configuration

CommandDescriptionExample
authManage API key (setup/status/clear)codeofpaper auth status
statusCheck API health and statscodeofpaper status

Command Details

bash
codeofpaper search "reinforcement learning" --sort has_code --has-code
codeofpaper search "GAN" --limit 20 --offset 10

Options: --limit, --offset, --sort (relevant, recent, has_code), --has-code, --category.

research

Multi-step orchestrated overview of a research topic:

bash
codeofpaper research "vision transformers" --depth deep
DepthStepsAPI calls
shallowSearch only + landscape statistics1
mediumSearch + repos for top papers (default)~6
deepSearch + repos + similar papers from #1~8

batch

Process multiple queries or IDs from a file or stdin. Always outputs JSONL regardless of -o:

bash
# From a file
codeofpaper batch paper ids.txt

# From stdin
echo -e "2010.11929\n1706.03762" | codeofpaper batch paper

# Pipe from another command
codeofpaper -q similar 2010.11929 | codeofpaper batch code

Supported commands: paper, search, code, similar, suggest.

Each line produces one JSON object:

json
{"input": "2010.11929", "status": "ok", "data": {...}}
{"input": "9999.99999", "status": "error", "error": "Not found"}

Options: --delay (seconds between calls, default 0.5).

export

Paginated bulk export from trending, conference, or search:

bash
codeofpaper export trending --category cs.CV --has-code -o csv > cv.csv
codeofpaper export conference neurips_2024 --has-code -o bibtex > neurips.bib
codeofpaper export search "transformers" --max 500 -o jsonl > data.jsonl

Auto-paginates through results (100 per page, 0.5s delay). Options: --max (default 200), --has-code, --category, --days.

Agent Integration

The CLI is designed for AI agent consumption. Key features:

Stable Exit Codes

Agents can branch on exit codes without parsing error messages:

Exit CodeMeaningAgent Action
0SuccessParse stdout
1General errorLog and report
2Connection errorRetry with backoff
3Not found (404)Skip or try different ID
4Rate limited (429)Wait and retry
5Auth required (401/403)Run codeofpaper auth setup

Machine-Readable Output

bash
# JSON for structured parsing
codeofpaper -o json paper 2010.11929 | jq '.title'

# Quiet mode for ID lists
codeofpaper -q search "attention" | head -5

# JSONL for streaming
codeofpaper -o jsonl trending --has-code | while read -r line; do
  echo "$line" | jq -r '.arxiv_id'
done

HTTP Cache

Responses are cached on disk for 30 minutes (~/.cache/codeofpaper/http/), so repeated calls are instant and free.

MCP Server (optional)

Code of Paper ships an optional Model Context Protocol server that exposes paper / code lookup as tools to any MCP-compatible agent — Claude Desktop, Cursor, Continue, Cline, Zed, etc.

Install with the mcp extra:

bash
pip install 'codeofpaper[mcp]'
# or, with uv:
uv tool install 'codeofpaper[mcp]'

This adds a codeofpaper-mcp entry point that speaks MCP over stdio.

Wire into Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows), or ~/.config/Claude/claude_desktop_config.json (Linux):

json
{
  "mcpServers": {
    "codeofpaper": {
      "command": "uvx",
      "args": ["--from", "codeofpaper[mcp]", "codeofpaper-mcp"]
    }
  }
}

This pulls + runs the server on demand — no global install needed. If you've already pip install'd the package, you can replace the command with just "codeofpaper-mcp" and drop args.

Wire into Cursor / Continue / Cline

Most MCP clients accept the same shape:

json
{
  "mcpServers": {
    "codeofpaper": {
      "command": "codeofpaper-mcp",
      "env": {
        "CODEOFPAPER_API_URL": "https://api.codeofpaper.com"
      }
    }
  }
}

Tools exposed

ToolPurpose
paper_lookup(paper_id_or_url)Paper metadata + confident-tier repos
code_for_paper(paper_id_or_url, limit, include_possible)Ranked GitHub repos implementing a paper
search_papers(query, limit, year, venue, has_code)Free-text paper search with filters

All tools are read-only, return plain JSON, and surface API errors as {"error": "...", "status": N} rather than throwing — agents get structured output either way.

Common Workflows

Core Discovery

bash
# Find papers with code about a topic
codeofpaper search "reinforcement learning" --sort has_code --has-code

# Get the best repo for a specific paper
codeofpaper code 1706.03762

# Accepts arXiv URLs — no need to extract the ID
codeofpaper paper https://arxiv.org/abs/2010.11929

# Reverse lookup: what paper does this repo implement?
codeofpaper repo google-research/vision_transformer

# Open a paper in the browser, or jump straight to its code
codeofpaper open 2010.11929
codeofpaper open 2010.11929 --code

Browsing & Monitoring

bash
# What's trending in computer vision?
codeofpaper trending --category cs.CV --sort hot

# Conference papers that just got new code
codeofpaper code-drops --days 7

# NeurIPS 2024 oral papers with code
codeofpaper conference neurips_2024 --track oral --has-code

# Daily monitoring: what's new in my field?
codeofpaper trending --category cs.CV --days 1 -o json >> ~/research/daily_cv.jsonl

Composable Pipelines

bash
# Find implementations of a paper's related work
codeofpaper similar 2010.11929 -o quiet | codeofpaper batch code

# Batch process a reading list
cat reading_list.txt | codeofpaper batch paper > enriched.jsonl

# Cross-reference with GitHub CLI
codeofpaper code 1706.03762 -o quiet | head -1 | xargs gh repo view

# Export conference papers as BibTeX
codeofpaper export conference neurips_2024 --has-code -o bibtex > neurips2024_code.bib

# Bulk export a category for meta-analysis
codeofpaper export trending --category cs.CV --has-code --days 365 -o csv > cv_with_code.csv

Multi-Step Scripts

bash
# Find a paper → get top repo → clone it
REPO=$(codeofpaper search "attention is all you need" -o quiet | head -1 | \
  xargs codeofpaper code -o json | jq -r '.top_repos[0].full_name')
gh repo clone "$REPO"

# Discover a random paper and explore its neighborhood
ID=$(codeofpaper random --quality high -o quiet)
codeofpaper paper "$ID"
codeofpaper similar "$ID"
codeofpaper code "$ID"

# Quick paper lookup in a script
ARXIV_ID="2010.11929"
TITLE=$(codeofpaper -o json paper "$ARXIV_ID" | jq -r '.title')
echo "Paper: $TITLE"

Configuration

Config is stored as JSON via platformdirs:

OSPath
Linux~/.config/codeofpaper/config.json
macOS~/Library/Application Support/codeofpaper/config.json
Windows%APPDATA%\codeofpaper\config.json

Fields:

json
{
  "api_url": "https://api.codeofpaper.com",
  "api_key": null,
  "default_format": "table",
  "ca_bundle": null
}

No config file needed — everything works out of the box with sensible defaults.

Priority Chain

Options are resolved in this order (first wins):

  1. CLI flag (--api-url, --api-key, --ca-bundle, -o)
  2. Environment variable (CODEOFPAPER_API_URL, CODEOFPAPER_API_KEY, CODEOFPAPER_CA_BUNDLE, CODEOFPAPER_OUTPUT, CODEOFPAPER_TIMEOUT)
  3. Config file
  4. Built-in defaults

Corporate Proxies / Custom TLS Certificates

If you're behind a corporate proxy that performs TLS inspection (man-in-the-middle), you'll see an SSL error like:

Cannot reach API: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain

To fix this, point the CLI at your corporate CA certificate bundle (PEM file). Three equivalent ways, in priority order:

bash
# 1. CLI flag (per-invocation)
codeofpaper --ca-bundle /path/to/corporate-ca.pem search "transformers"

# 2. Environment variable (per-session or in .bashrc/.zshrc)
export CODEOFPAPER_CA_BUNDLE=/path/to/corporate-ca.pem

# 3. Config file (permanent — set once, forget)
# Add to ~/.config/codeofpaper/config.json:
#   {"ca_bundle": "/path/to/corporate-ca.pem"}

Ask your IT department for the CA certificate file if you don't have it.

Tip: If you've already set SSL_CERT_FILE for other tools (pip, curl, etc.), httpx respects that variable automatically — no extra configuration needed.

Alias: cop

Both codeofpaper and cop are installed as entry points:

bash
cop search "transformers"
cop -o json trending | jq '.'

Note: If cop conflicts with another tool on your system, use codeofpaper instead.

Shell Completion

Install tab completion for your shell:

bash
codeofpaper --install-completion

Supports bash, zsh, fish, and PowerShell. After installing, restart your shell or source the completion file.

Help

bash
codeofpaper --help          # List all commands
codeofpaper search --help   # Help for a specific command
codeofpaper -v              # Print version

License

MIT

Similar modules

Browse Academic papers