Skip to main content
Glama
daheepk

arXiv Research Assistant MCP Server

by daheepk

🧠 arXiv 연구 지원 MCP 서버

대장간 배지

이 프로젝트는 arXiv.org의 방대한 논문 데이터베이스와 상호작용하도록 구축된 MCP(Model Context Protocol) 서버입니다.

Claude AI 와 같은 클라이언트는 arXiv 논문을 효율적으로 검색, 탐색 및 비교할 수 있으며, 이 모든 기능은 맞춤형 로컬 서버를 통해 제공됩니다. Python 과 FastMCP 프레임워크로 구축되었으며, 가벼운 패키지 관리를 위해 uv를 사용합니다.

✨ 특징

  • 🔍 키워드 기반 논문 검색
    arXiv 논문을 키워드로 검색하세요. 관련성이나 최신순으로 정렬하는 옵션도 제공됩니다.

  • 📚 카테고리별 최신 논문
    arXiv 카테고리 코드(예: cs.AI , math.AP )를 지정하면 해당 분야의 최신 논문을 가져올 수 있습니다.

  • 📄 논문 상세 조회
    논문의 arXiv ID를 사용하여 자세한 메타데이터를 가져옵니다. 제목, 저자, 초록, 범주, DOI, PDF 링크 등이 있습니다.

  • 🧑‍🔬 저자 기반 논문 검색
    특정 저자가 출판한 논문 목록을 검색합니다.

  • 📊 추세 분석(실험적)
    최근 논문을 기반으로 카테고리별 트렌드 키워드나 주제에 대한 개요를 파악합니다(현재 모의 데이터를 사용).

  • 📝 요약 프롬프트 생성기
    LLM이 선택한 논문을 보다 효과적으로 요약하는 데 도움이 되는 프롬프트를 동적으로 생성합니다.

  • 🆚 비교 프롬프트 생성기
    두 개의 논문 ID를 제공하여 내용을 비교할 수 있는 구조화된 프롬프트를 생성합니다.


Related MCP server: scholar-search-mcp

🛠️ 기술 스택

  • 파이썬 3.11+

  • 패스트MCP

  • uv(종속성 및 환경 관리용)

  • 요청(API 통신용)

  • xml.etree.ElementTree(XML 응답 구문 분석용)


🚀 시작하기

Smithery를 통해 설치

Smithery를 통해 Claude Desktop에 arXiv Research Assistant MCP 서버를 자동으로 설치하려면:

지엑스피1

PyPI에서 설치

uv pip install arxiv-paper-mcp

🔧 저장소를 복제합니다(개발용)

git clone https://github.com/daheepk/arxiv-mcp-server.git
cd arxiv-mcp-server

🔧 종속성 설치(개발용)

uv 사용하여 편집 가능한 모드에서 모든 종속성을 설치합니다.

uv pip install -e .

⚙️ 달리는 방법

▶️ 서버 실행(로컬)

arxiv-paper-mcp

🔌 클로드와 함께 사용하세요

Claude와 함께 이 MCP 서버를 사용하려면 다음 JSON 구성을 Claude의 MCP 설정에 추가하세요.

{
  "mcpServers": {
    "arXivPaper": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "arxiv-paper-mcp"
      ]
    }
  }
}

프로젝트 구조

arxiv-mcp-server/
├── arxiv_mcp/              # Main package
│   ├── __init__.py
│   ├── app.py              # FastMCP app setup
│   ├── server.py           # Server entry point
│   ├── utils.py            # arXiv API communication logic
│   ├── resources/          # MCP resources (categories, authors, etc.)
│   ├── tools/              # MCP tools (search, detail lookup, trends)
│   └── prompts/            # Prompt templates (summarize, compare)
├── pyproject.toml          # Project config & dependencies
└── README.md               # This file

Available Tools

4 tools
get_paper_infoC

논문 ID로 상세 정보를 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets detailed information' but doesn't describe what that includes (e.g., title, authors, abstract), whether it's a read-only operation, potential errors (e.g., invalid ID), or performance aspects. This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's appropriately sized for a simple tool and front-loaded with the core purpose. Every part of the sentence contributes directly to explaining the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a read operation with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't specify what 'detailed information' includes, error handling, or return format, making it inadequate for an agent to use the tool effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It mentions '논문 ID' (paper ID) as the parameter, which adds some meaning beyond the schema's generic 'paper_id' property. However, it doesn't explain the format, constraints, or examples (e.g., numeric, alphanumeric, DOI), leaving the parameter poorly documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the purpose: '논문 ID로 상세 정보를 가져옵니다' (Get detailed information by paper ID). It specifies a verb ('가져옵니다' - get/fetch) and resource ('상세 정보' - detailed information), but is vague about what 'detailed information' entails. It doesn't differentiate from sibling tools like 'search_papers' or 'scrape_recent_category_papers'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a paper ID), exclusions, or comparisons to sibling tools like 'search_papers' (which might retrieve multiple papers) or 'scrape_recent_category_papers' (which might fetch recent papers by category).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrape_recent_category_papersC

[크롤링] 특정 카테고리의 'recent' 페이지를 스크랩하여 최신 논문 목록을 가져옵니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes
max_resultsNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions scraping, implying network operations and potential rate limits or permissions, but doesn't detail these aspects, response format, or error handling. The description adds minimal context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key action ('scrape') and purpose. It avoids unnecessary details, though it could be slightly more structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a scraping tool with no annotations, no output schema, and low parameter coverage, the description is incomplete. It lacks details on behavior, output format, error cases, and integration with siblings, making it inadequate for full agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It implies 'category' is used to specify the target and 'max_results' limits output, but doesn't explain valid categories, format, or constraints. This adds some meaning but doesn't fully bridge the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it scrapes a 'recent' page for a specific category to fetch the latest paper list. It uses specific verbs ('scrape', 'fetch') and identifies the resource ('recent page', 'paper list'), but it doesn't explicitly differentiate from sibling tools like 'search_papers' or 'get_paper_info', which might handle similar data differently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions scraping a 'recent' page, but doesn't specify contexts, exclusions, or compare to siblings like 'search_papers' or 'analyze_trends'. This leaves the agent without clear usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_papersC

키워드로 arXiv 논문을 검색합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
max_resultsNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions searching arXiv papers by keyword but lacks behavioral details such as rate limits, authentication needs, result format, pagination, or error handling. This is inadequate for a search tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in Korean that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (search operation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, parameter details, or return values, leaving significant gaps for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only mentions '키워드' (keyword) implicitly, without explaining the 'max_results' parameter or providing any additional context like format constraints or usage examples. This fails to address the undocumented parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('검색합니다' - searches) and resource ('arXiv 논문' - arXiv papers) with a specific method ('키워드로' - by keyword). It doesn't distinguish from sibling tools like 'scrape_recent_category_papers' or 'get_paper_info', but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'scrape_recent_category_papers' or 'get_paper_info'. The description implies usage for keyword-based searches but doesn't specify contexts, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedanalyze_trends
    • First observedget_paper_info
    • First observedscrape_recent_category_papers
    • First observedsearch_papers

TDQS

B3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: analyze_trends focuses on trends analysis, get_paper_info retrieves detailed paper information, scrape_recent_category_papers scrapes recent papers from a category, and search_papers searches by keywords. There is no overlap or ambiguity in their functions.

Naming Consistency4/5

The tool names follow a consistent snake_case pattern and use descriptive verbs (analyze, get, scrape, search). However, scrape_recent_category_papers includes a Korean annotation '[크롤링]' in its description, which slightly deviates from the pure English naming convention, though this does not affect the tool name itself.

Tool Count4/5

With 4 tools, the server is well-scoped for an arXiv research assistant, covering key operations like searching, scraping, analyzing trends, and fetching details. It is slightly lean but reasonable, as it handles core research workflows without unnecessary bloat.

Completeness3/5

The toolset covers essential functions for arXiv research, including search, scrape, analysis, and info retrieval. However, there are minor gaps such as no tools for filtering or sorting results, managing user preferences, or accessing advanced arXiv features like citation tracking, which could limit agent capabilities in complex scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    An MCP server for searching and downloading academic papers from multiple sources including arXiv, PubMed, bioRxiv, and Sci-Hub, designed for seamless integration with large language models like Claude Desktop.
    57
    2,048 PyPI
    2,733
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for academic paper search that integrates with AI assistants (e.g., Claude Code, Cursor), enabling them to search and retrieve academic paper metadata.
    54 PyPI
    248
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A streamlined MCP server that connects AI assistants to arXiv's vast collection of academic papers, enabling search, retrieval, and analysis of research papers.
    7
    1
    -
  • F
    license
    A
    quality
    D
    maintenance
    A local MCP server for searching and reading arXiv papers, enabling paper search, retrieval, and summarization through Claude.
    6
    -