Arxiv MCP Server
개요
제작자가 쓴 설명(영어 원문)
Search arXiv, fetch paper metadata, and read full-text content.
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i3개 중 3개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i초기↓ 559/주 · ★ –
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 컴퓨터 또는 클라우드
- 전송 방식: stdio, Streamable HTTP
- 카테고리: 검색 및 AI 기억
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 3개 중 3개 통과
- 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
- 할 수 있는 일 4가지(도구) arxiv_search_papers, arxiv_get_metadata, arxiv_read_paper, arxiv_list_categories
- 직접 입력할 값:
ARXIV_API_BASE_URL,ARXIV_REQUEST_DELAY_MS,ARXIV_CONTENT_TIMEOUT_MS,ARXIV_API_TIMEOUT_MS,ARXIV_READ_TIMEOUT_MS,MCP_LOG_LEVEL
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
- Settings → Connectors 열기
- Add custom connector 누르기
- 아래 주소를 붙여 넣고 Add 누르기
- 로그인하라고 하면 제작자의 서비스에 로그인하기
https://arxiv.caseyjhand.com/mcp또는 내 컴퓨터에서 실행하기
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"arxiv": {
"command": "npx",
"args": [
"-y",
"@cyanheads/arxiv-mcp-server"
],
"env": {
"ARXIV_API_BASE_URL": "your-value",
"ARXIV_REQUEST_DELAY_MS": "your-value",
"ARXIV_CONTENT_TIMEOUT_MS": "your-value",
"ARXIV_API_TIMEOUT_MS": "your-value",
"ARXIV_READ_TIMEOUT_MS": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http arxiv https://arxiv.caseyjhand.com/mcp또는 내 컴퓨터에서 실행하기
claude mcp add arxiv --env ARXIV_API_BASE_URL=your-value --env ARXIV_REQUEST_DELAY_MS=your-value --env ARXIV_CONTENT_TIMEOUT_MS=your-value --env ARXIV_API_TIMEOUT_MS=your-value --env ARXIV_READ_TIMEOUT_MS=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/arxiv-mcp-server실행하기 전에 빈 값을 채워 주세요.
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"arxiv": {
"url": "https://arxiv.caseyjhand.com/mcp"
}
}
}또는 내 컴퓨터에서 실행하기
또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"arxiv": {
"command": "npx",
"args": [
"-y",
"@cyanheads/arxiv-mcp-server"
],
"env": {
"ARXIV_API_BASE_URL": "your-value",
"ARXIV_REQUEST_DELAY_MS": "your-value",
"ARXIV_CONTENT_TIMEOUT_MS": "your-value",
"ARXIV_API_TIMEOUT_MS": "your-value",
"ARXIV_READ_TIMEOUT_MS": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"arxiv": {
"type": "http",
"url": "https://arxiv.caseyjhand.com/mcp"
}
}
}또는 내 컴퓨터에서 실행하기
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"arxiv": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/arxiv-mcp-server"
],
"env": {
"ARXIV_API_BASE_URL": "your-value",
"ARXIV_REQUEST_DELAY_MS": "your-value",
"ARXIV_CONTENT_TIMEOUT_MS": "your-value",
"ARXIV_API_TIMEOUT_MS": "your-value",
"ARXIV_READ_TIMEOUT_MS": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
- 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
- Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
- 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
- 로그인하라고 하면 제작자의 서비스에 로그인하기
https://arxiv.caseyjhand.com/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
직접 입력할 값
ARXIV_API_BASE_URLenvarXiv API base URL.ARXIV_REQUEST_DELAY_MSenvMinimum delay between arXiv API requests (ms).ARXIV_CONTENT_TIMEOUT_MSenvTimeout for paper body fetches — HTML renders and PDF downloads (ms).ARXIV_API_TIMEOUT_MSenvTimeout for API search/metadata requests (ms).ARXIV_READ_TIMEOUT_MSenvTime budget for one arxiv_read_paper call — its metadata lookup, every content request and retry, and PDF text extraction (ms).MCP_LOG_LEVELenvSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
할 수 있는 일
도구 이름과 설명은 서버가 2026년 11월 7일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
arxiv_search_papersSearch arXiv papers by query with category and sort filters. Returns paper metadata including title, authors, abstract, categories, and links.
arxiv_get_metadataGet full metadata for one or more arXiv papers by ID. Use when you have known IDs from citations, prior search results, or memory. Looks up 10 IDs per call; any further IDs come back in remaining_ids for the next call.
arxiv_read_paperFetch the full text of an arXiv paper. Tries arxiv.org/html first, falls back to ar5iv.labs.arxiv.org, and falls back again to text extracted from the PDF when neither has an HTML render — check the source field to know which one answered. Page through long papers with start and
arxiv_list_categoriesList arXiv category codes and names. Useful for discovering valid category filters for arxiv_search_papers. Lists subject classes only; arxiv_search_papers also accepts a bare archive code (the part before the dot, e.g. "astro-ph" or "cs") to search a whole archive at once.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 cyanheads 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- … 아직 점검 안 함
계속 관리되고 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- ✓ 통과
엔드포인트 응답
461ms 만에 응답(HTTP 200)
- – 해당 없음
OAuth로 로그인
로그인 필요 없음
- ✓ 통과
도구 설명에 숨겨진 지시 없음
도구 설명 4개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
검색 및 AI 기억 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5689개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 5689개 중 80%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5689개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Arxiv MCP Server, 안전한가요?
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.8.1)은 10일 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Context7, Codebase Memory, Exa
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
@cyanheads/arxiv-mcp-server Search arXiv, fetch paper metadata, and read full-text content via MCP. STDIO or Streamable HTTP. 4 Tools • 2 Resources
Public Hosted Server: https://arxiv.caseyjhand.com/mcp
Overview
arXiv papers, metadata, and full text from the arXiv API and its OAI-PMH metadata feed. Search papers by query, category, and submission date; fetch structured metadata by ID; and read full paper text with automatic fallback across HTML and PDF renders. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.
Tools
| Tool | Description |
|---|---|
arxiv_search_papers | Search arXiv papers by query with field prefixes, category, and date filters |
arxiv_get_metadata | Fetch metadata for one or more papers by arXiv ID |
arxiv_read_paper | Read full paper text via HTML, ar5iv, or PDF-extracted fallback |
arxiv_list_categories | List the arXiv category taxonomy, optionally filtered by group |
Resources
| Resource | Description |
|---|---|
arxiv://paper/{paperId} | Paper metadata by arXiv ID |
arxiv://categories | Full arXiv category taxonomy |
Capability reference
arxiv_search_papers tool
- Query supports field prefixes
ti:,au:,abs:,cat:,co:,jr:,all:andAND/OR/ANDNOT, up to 1000 characters;categorytakes a code (cs.CL) or a whole archive (astro-ph,cs,math) - Query grammar follows arXiv's: space-separated terms are joined with
OR(writeANDto require every term), operators are uppercase only, and all three share one precedence grouped to the right (a AND b OR cisa AND (b OR c)). Quote a multi-word topic ("graph neural networks" AND cat:cs.LG) and put alternatives in parentheses before a filter; arXiv ignores common words such asofandtheoutside a quoted phrase - Sorts by
sort_by(relevance/submitted/updated) andsort_order, withsubmitted_from/submitted_toas inclusive UTCYYYY-MM-DDbounds; up to 50 results per call (a largermax_resultsreturns 50) - arXiv serves only the first 10,000 results of a query; a
startof 10,000 failsstart_beyond_result_limit. Use date windows to go further - Output echoes the effective query, total match count, and page offset; empty pages carry recovery guidance instead of an error. A total that is a floor (the local mirror counting to 50,000) carries
totalFoundIsLowerBound: true
arxiv_get_metadata tool
- Takes up to 100 IDs and looks up the first 10 distinct ones; the rest come back in
remaining_idsfor the next call'spaper_ids. An ID repeated in any accepted spelling is looked up once, while different versions of one paper stay separate - Accepts versioned (
2401.12345v2), unversioned, and pre-2007 (hep-th/9901001) IDs, with an optionalarXiv:prefix or an arxiv.orgabs/pdf/htmlURL - Returns found papers plus a typed
not_found[](not_in_arxiv/version_not_in_mirror/version_not_served/live_lookup_failed/invalid_id) for the rest;version_not_servedis a superseded pre-2007 version arXiv's API answers HTTP 500 for, and itsdetailnames the latest version. With the local mirror,live_lookup_failedmarks an ID the mirror lacked whose live lookup failed; the papers the mirror served still come back - Fails
invalid_idwhen no ID is well-formed,no_matchwhen every ID misses,version_unavailablewhen a version is reachable only on the live API, andversion_not_servedwhen every ID is a version arXiv will not serve
arxiv_read_paper tool
- Tries arXiv HTML, then ar5iv, then PDF text extraction; the
sourcefield reports which answered. PDF text is plain, so math, tables, and headings flatten - ar5iv keeps one render per paper, so an ar5iv body may be another revision than
paper_idand carriesrevision_unconfirmed: true, unless the read named no version and arXiv's API reported v1 as the paper's only version;pdf_urlis exactly thepaper_idrevision max_charactersdefaults to 100,000 (passnullfor the whole paper); page withstart. The first page carries anoutlineof section headings with offsetspaper_idaccepts the same ID spellings asarxiv_get_metadata- Fails
invalid_id,no_match(arXiv has no such paper, or no such version of it),content_unavailable(no render, no PDF),pdf_extraction_failed(the PDF has no text layer or does not parse),version_unavailable(version-pinned ID needs the live API), orversion_not_served(a superseded pre-2007 version arXiv will not serve; names the latest version and this version's PDF)
arxiv_list_categories tool
- ~155 categories across 8 top-level groups (
cs,econ,eess,math,physics,q-bio,q-fin,stat) - Optional
groupfilter to narrow results - Static data — always succeeds
arxiv://paper/{paperId} resource
paperIdaccepts the same ID spellings asarxiv_get_metadata; percent-encode a legacy ID's slash (arxiv://paper/hep-th%2F9901001)- Fails
empty_id,invalid_id,no_match,version_unavailable, orversion_not_served
arxiv://categories resource
- Returns
{ categories: [...] }, a flat array withcode/name/groupper entry - No parameters; cacheable for 24h
Features
Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
arXiv-specific:
- Read-only, no authentication required
- Request queue enforcing arXiv's 3-second crawl delay; rate-limit responses fail fast with a cooldown
- Paper text falls back from arXiv HTML to ar5iv to PDF extraction
- Full arXiv category taxonomy embedded as static data
- Optional local OAI-PMH metadata mirror (SQLite + FTS5) that removes rate-limit exposure for search and metadata. See Optional: local mirror
Agent-friendly output:
arxiv_read_papernames itssource;arxiv_search_papersechoes the effective queryarxiv_get_metadatareturns found papers with a typednot_found[]reason per miss- Typed
sourceandnot_found[].reasonenums let callers branch on data
Getting started
Public Hosted Instance
A public instance is available at https://arxiv.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:
{
"mcpServers": { "arxiv-mcp-server": { "type": "streamable-http", "url": "https://arxiv.caseyjhand.com/mcp" } } }
Self-Hosted / Local
Add the following to your MCP client configuration file.
{
"mcpServers": { "arxiv-mcp-server": { "type": "stdio", "command": "bunx", "args": ["@cyanheads/arxiv-mcp-server@latest"] } } }
Or with npx (no Bun required):
{
"mcpServers": { "arxiv-mcp-server": { "type": "stdio", "command": "npx", "args": ["-y", "@cyanheads/arxiv-mcp-server@latest"] } } }
Or with Docker:
{
"mcpServers": { "arxiv-mcp-server": { "type": "stdio", "command": "docker", "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/arxiv-mcp-server:latest"] } } }
For Streamable HTTP, set the transport and start the server:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
Server listens at http://localhost:3010/mcp
Prerequisites
- Bun v1.4.0 or higher (or Node.js v24+).
Installation
- Clone the repository:
git clone https://github.com/cyanheads/arxiv-mcp-server.git
- Navigate into the directory:
cd arxiv-mcp-server
- Install dependencies:
bun install
Configuration
All configuration is optional — the server works out of the box with sensible defaults.
| Variable | Description | Default |
|---|---|---|
ARXIV_API_BASE_URL | arXiv API base URL. | https://export.arxiv.org/api |
ARXIV_REQUEST_DELAY_MS | Minimum delay between arXiv API requests (ms). | 3000 |
ARXIV_CONTENT_TIMEOUT_MS | Timeout for paper body fetches — HTML renders and PDF downloads (ms). | 30000 |
ARXIV_API_TIMEOUT_MS | Timeout for API search/metadata requests (ms). With the mirror enabled, also the longest an unversioned arxiv_read_paper waits on its metadata lookup, queue included, before a mirror holding the paper answers. | 15000 |
ARXIV_READ_TIMEOUT_MS | Time budget for one arxiv_read_paper call — its metadata lookup, every content request and retry, and PDF text extraction (ms). Keep it under your MCP client's request timeout (60 s by default). | 50000 |
ARXIV_MIRROR_ENABLED | Enable the local OAI-PMH metadata mirror. | false |
ARXIV_MIRROR_PATH | SQLite path for the mirror. | ./data/arxiv-mirror.db |
ARXIV_MIRROR_REFRESH_CRON | UTC cron expression for in-process daily refresh (HTTP mode only). | unset |
ARXIV_MIRROR_FALLBACK_LIVE | Fall through to the live API on a local ID-lookup miss. | true |
ARXIV_MIRROR_RECENT_DAYS_LIVE | Positive values send sort_by=submitted, descending queries to the live API; 0 disables. | 2 |
ARXIV_MIRROR_OAI_BASE_URL | arXiv OAI-PMH endpoint base URL. | https://oaipmh.arxiv.org/oai |
ARXIV_MIRROR_OAI_REQUEST_DELAY_MS | Minimum delay between OAI-PMH requests (ms). | 3000 |
ARXIV_MIRROR_REFRESH_TIMEOUT_MS | Time budget for one scheduled refresh (ms). | 7200000 |
MCP_TRANSPORT_TYPE | Transport: stdio or http. | stdio |
MCP_HTTP_PORT | Port for HTTP server. | 3010 |
MCP_SESSION_MODE | auto, stateful, or stateless. | stateless |
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요