Apaper
Academic paper research MCP server built with Bun and TypeScript.
Ask AI about Apaper
Powered by Claude · Grounded in docs
I know everything about Apaper. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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
- input:
download_iacr_paper- input:
{ "paper_id": string, "save_path"?: string } - output: saved PDF path or an error message
- input:
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
- input:
search_google_scholar_papers- input:
{ "query": string, "max_results"?: number, "year_low"?: number | string, "year_high"?: number | string } - output: formatted Google Scholar search results
- input:
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
