Skip to content

ai4paper/apaper-mcp

Repository files navigation

apaper-mcp

Academic paper research MCP server built with Bun and TypeScript.

Requirements

  • Bun
  • Node.js
  • GitHub CLI (gh) for publishing

Install

From npm:

npm install -g @ai4paper/apaper-mcp

From source:

bun install

MCP client config

Example MCP configuration:

{
  "mcp": {
    "apaper-mcp": {
      "type": "local",
      "command": ["npx", "@ai4paper/apaper-mcp"],
      "enabled": true
    }
  }
}

This lets an MCP-compatible client start apaper-mcp locally over stdio.

Use cases

apaper-mcp is useful when you want an AI client to help with paper research and early writing tasks such as:

  • searching papers across IACR, DBLP, and Google Scholar
  • narrowing results by year or venue
  • collecting BibTeX entries for references
  • downloading IACR PDFs for reading and note-taking
  • building a literature base before outlining or drafting

Development

bun run dev

The server logs apaper-mcp running on stdio to stderr when it starts.

Build

bun run build

Test

bun run test

Typecheck

bun run typecheck

Run built server

bun run start

Tools

  • search_iacr_papers
    • input: { "query": string, "max_results"?: number, "fetch_details"?: boolean, "year_min"?: number | string, "year_max"?: number | string }
    • output: formatted IACR ePrint paper search results
  • download_iacr_paper
    • input: { "paper_id": string, "save_path"?: string }
    • output: saved PDF path or an error message
  • search_dblp_papers
    • input: { "query": string, "max_results"?: number, "year_from"?: number | string, "year_to"?: number | string, "venue_filter"?: string, "include_bibtex"?: boolean }
    • output: formatted DBLP publication results or BibTeX entries
  • search_google_scholar_papers
    • input: { "query": string, "max_results"?: number, "year_low"?: number | string, "year_high"?: number | string }
    • output: formatted Google Scholar search results

Local MCP testing

Start the server:

bun run dev

Then connect with an MCP inspector/client. One easy option is the MCP Inspector:

npx @modelcontextprotocol/inspector bun run src/index.ts

That lets you inspect the server, list tools, and call them locally over stdio.

Publish to GitHub

gh repo create ai4paper/apaper-mcp --public --source=. --remote=origin --push

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors