arxiv-daily-mcp

arxiv-daily-mcp

Enables searching arXiv papers in Korean, Chinese, Japanese, or English and saving findings to a local Markdown vault through natural language commands.

Category
Visit Server

README

๐Ÿง  arxiv-daily-mcp

A Model Context Protocol (MCP) server that wraps an arXiv CLI workflow. Search arXiv in ๐Ÿ‡ฐ๐Ÿ‡ท Korean, ๐Ÿ‡จ๐Ÿ‡ณ Chinese, ๐Ÿ‡ฏ๐Ÿ‡ต Japanese, or ๐Ÿ‡บ๐Ÿ‡ธ English โ€” and save findings to a local Markdown vault.

MIT License Python 3.10+ MCP GitHub stars

๐ŸŒ Read in your language: English ยท ํ•œ๊ตญ์–ด ยท ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž

๐Ÿš€ Quickstart ยท ๐Ÿ›  Tools ยท ๐ŸŽฌ Demo ยท ๐Ÿ†š vs other arXiv MCPs ยท ๐Ÿ— Architecture ยท ๐Ÿงช Development ยท ๐ŸŒ Multilingual


โœจ What this is

A simple MCP server that exposes a useful arXiv workflow as LLM-callable tools. The core idea:

Take a CLI script that you already run every day, and wrap it in MCP so you can invoke it with natural language from any MCP client.

If you've ever found yourself typing the same curl / python / arxiv query into a terminal every morning โ€” this is what that looks like as an MCP tool.

๐Ÿ›  Tools (4)

Tool Args Description Example prompt
get_today_papers category, max_results Today's AI / business papers "์˜ค๋Š˜ AI ๋…ผ๋ฌธ ์•Œ๋ ค์ค˜"
search_papers keyword, max_results Multilingual keyword search "์—์ด์ „ํŠธ ๊ด€๋ จ ๋…ผ๋ฌธ" / "ๆ™บ่ƒฝไฝ“ ่ฎบๆ–‡" / "ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ ่ซ–ๆ–‡"
save_paper_note arxiv_id, note Save a paper to local .md vault "์ด๊ฑฐ ๋ฉ”๋ชจํ•ด์ค˜"
list_my_notes keyword, limit Search / list saved notes "๋‚ด ๋ฉ”๋ชจ ๋ณด์—ฌ์ค˜"

get_today_papers(category, max_results=5)

  • category: "ai" (cs.AI+cs.CL+cs.LG) ยท "business" (econ.GN+q-fin) ยท "all" (์ „์ฒด)
  • Returns: Markdown card-news list of today's submissions

search_papers(keyword, max_results=5)

  • keyword: any text in ๐Ÿ‡ฐ๐Ÿ‡ท Korean, ๐Ÿ‡จ๐Ÿ‡ณ Chinese, ๐Ÿ‡ฏ๐Ÿ‡ต Japanese, or ๐Ÿ‡บ๐Ÿ‡ธ English
  • Auto-translates non-English keywords to English for arXiv search
  • Returns: Markdown card-news of results, with translation note

save_paper_note(arxiv_id, note="")

  • arxiv_id: "2507.01234" or full URL https://arxiv.org/abs/2507.01234
  • note: your commentary (optional)
  • Returns: path to saved file (default: ~/memos/YYYY-MM-DD_arxiv_<id>.md)

list_my_notes(keyword="", limit=10)

  • keyword: filter by title / content (optional)
  • Returns: list of recently saved note files

๐Ÿš€ Quickstart

Install

pip install arxiv-daily-mcp

Or from source:

git clone https://github.com/nerin81-netizen/arxiv-daily-mcp
cd arxiv-daily-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

Register with your MCP client

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "arxiv-daily": {
      "command": "arxiv-daily-mcp"
    }
  }
}

Cursor / Cline

.cursor/mcp.json or workspace settings:

{
  "mcpServers": {
    "arxiv-daily": {
      "command": "arxiv-daily-mcp"
    }
  }
}

Any MCP-compatible client

This server uses the standard stdio transport and exposes 4 tools via JSON-RPC โ€” it works with any client that follows the MCP spec.

๐ŸŽฌ Demo

Korean keyword (auto-translated to English)

๐Ÿ‘ค ์—์ด์ „ํŠธ ๊ด€๋ จ ๋…ผ๋ฌธ ์ฐพ์•„์ค˜

๐Ÿค– Claude:
๐Ÿ” '์—์ด์ „ํŠธ' ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ โ€” ๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด โ†’ ์˜์–ด: 'agent' (5ํŽธ)

1. **Distributed Attacks in Persistent-State AI Control**
   ๐Ÿ‘ฅ Josh Hills, Ida Caspary, Asa Cooper Stickland
   ๐Ÿ“… 2026-07-02 | ๐Ÿท๏ธ cs.AI
   ๐Ÿ”— https://arxiv.org/abs/2607.02514v1

Chinese keyword

๐Ÿ‘ค ๆ™บ่ƒฝไฝ“ ็›ธๅ…ณ่ฎบๆ–‡

๐Ÿค– Claude:
๐Ÿ” 'ๆ™บ่ƒฝไฝ“' ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ โ€” ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ โ†’ ์˜์–ด: 'agent' (5ํŽธ)

Japanese keyword

๐Ÿ‘ค ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ ่ซ–ๆ–‡ใ‚’ๆŽขใ—ใฆ

๐Ÿค– Claude:
๐Ÿ” 'ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ' ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ โ€” ๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่ชž โ†’ ์˜์–ด: 'agent' (5ํŽธ)

Save + retrieve

๐Ÿ‘ค ์ฒซ ๋ฒˆ์งธ ๋…ผ๋ฌธ ๋ฉ”๋ชจํ•ด์ค˜ โ€” ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ๋ณด์•ˆ ํฅ๋ฏธ๋กญ๋‹ค

๐Ÿค– Claude:
โœ… ์ €์žฅ ์™„๋ฃŒ: `~/memos/2026-07-06_arxiv_2607.02514.md`

๐Ÿ‘ค ๋‚ด ๋ฉ”๋ชจ ๋ณด์—ฌ์ค˜

๐Ÿค– Claude:
๐Ÿ“š ๋‚ด arXiv ๋…ธํŠธ (1๊ฐœ)
  ยท `2026-07-06_arxiv_2607.02514.md` โ€” Distributed Attacks in Persistent-State AI Control

๐Ÿ†š How it differs from existing arXiv MCPs

GitHub has 466+ arXiv MCP repositories (as of 2026-07-05). The most popular, blazickjp/arxiv-mcp-server, is excellent โ€” but built for a different audience.

blazickjp/arxiv-mcp-server โญ 2,933 mcp-simple-arxiv โญ 198 arxiv-daily-mcp (this)
Keyword languages ๐Ÿ‡บ๐Ÿ‡ธ English only ๐Ÿ‡บ๐Ÿ‡ธ English only ๐Ÿ‡ฐ๐Ÿ‡ท๐Ÿ‡จ๐Ÿ‡ณ๐Ÿ‡ฏ๐Ÿ‡ต๐Ÿ‡บ๐Ÿ‡ธ 4 languages
Output format JSON / raw data Text only Markdown card-news (emoji + bullets)
Note archive โŒ โŒ โœ… Local .md vault
Note search โŒ โŒ โœ… list_my_notes(keyword=โ€ฆ)
Status Maintained Maintained Active (v0.1.0)

Three reasons it can coexist

  1. Different language audience. The 2,933-star leader is English-only. This server is designed for non-English researchers first.
  2. Different output shape. The leader returns raw JSON / data tables. This server returns card-news Markdown โ€” readable directly inside any chat UI.
  3. Different workflow. The leader is search-and-read. This server includes archival: save a paper to your local Markdown vault with one sentence, then list_my_notes to recall it later.

๐ŸŒ Multilingual keywords

The translation dictionary ships with the package โ€” no API call, no latency, no rate limit.

Language Keywords
๐Ÿ‡ฐ๐Ÿ‡ท Korean (28) ์—์ด์ „ํŠธ, ์ธ๊ณต์ง€๋Šฅ, ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹, ์ž์—ฐ์–ด์ฒ˜๋ฆฌ, ์ปดํ“จํ„ฐ๋น„์ „, ๊ฐ•ํ™”ํ•™์Šต, ์ƒ์„ฑํ˜•, ๋ณ€์••๊ธฐ, ํ™•์‚ฐ๋ชจ๋ธ, ๊ฒ€์ƒ‰์ฆ๊ฐ•, ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ, ๋กœ๋ณดํ‹ฑ์Šค, ์ถ”์ฒœ์‹œ์Šคํ…œ, ๊ทธ๋ž˜ํ”„์‹ ๊ฒฝ๋ง, ํŒŒ์šด๋ฐ์ด์…˜๋ชจ๋ธ, ๊ฑฐ๋Œ€์–ธ์–ด๋ชจ๋ธ, ํ”„๋กฌํ”„ํŠธ, ๋ฏธ์„ธ์กฐ์ •, ์ •๋ ฌ, ์•ˆ์ „์„ฑ, ํ™˜๊ฐ, ์ถ”๋ก , ๊ณ„ํš, ๋„๊ตฌ์‚ฌ์šฉ, ๋ฉ”๋ชจ๋ฆฌ, ์ฒด์ธ, โ€ฆ
๐Ÿ‡จ๐Ÿ‡ณ Chinese (23) ๆ™บ่ƒฝไฝ“, ไบบๅทฅๆ™บ่ƒฝ, ๆœบๅ™จๅญฆไน , ๆทฑๅบฆๅญฆไน , ่‡ช็„ถ่ฏญ่จ€ๅค„็†, ่ฎก็ฎ—ๆœบ่ง†่ง‰, ๅผบๅŒ–ๅญฆไน , ็”Ÿๆˆๅผ, ๅ˜ๅŽ‹ๅ™จ, ๆ‰ฉๆ•ฃๆจกๅž‹, ๅคšๆจกๆ€, ๆœบๅ™จไบบ, ๆŽจ่็ณป็ปŸ, ๅ›พ็ฅž็ป็ฝ‘็ปœ, ๅŸบ็ก€ๆจกๅž‹, ๅคง่ฏญ่จ€ๆจกๅž‹, ๆ็คบ, ๅพฎ่ฐƒ, ๅฏน้ฝ, ๆŽจ็†, ๅทฅๅ…ทไฝฟ็”จ, ้“พ, ไปฃ็†
๐Ÿ‡ฏ๐Ÿ‡ต Japanese (24) ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ, ไบบๅทฅ็Ÿฅ่ƒฝ, ๆฉŸๆขฐๅญฆ็ฟ’, ๆทฑๅฑคๅญฆ็ฟ’, ่‡ช็„ถ่จ€่ชžๅ‡ฆ็†, ใ‚ณใƒณใƒ”ใƒฅใƒผใ‚ฟใƒ“ใ‚ธใƒงใƒณ, ๅผทๅŒ–ๅญฆ็ฟ’, ็”Ÿๆˆ, ๅค‰ๅœงๅ™จ, ๆ‹กๆ•ฃใƒขใƒ‡ใƒซ, ๆคœ็ดขๆ‹กๅผต, ใƒžใƒซใƒใƒขใƒผใƒ€ใƒซ, ใƒญใƒœใƒƒใƒˆ, ๆŽจ่–ฆใ‚ทใ‚นใƒ†ใƒ , ใ‚ฐใƒฉใƒ•ใƒ‹ใƒฅใƒผใƒฉใƒซใƒใƒƒใƒˆใƒฏใƒผใ‚ฏ, ๅŸบ็›คใƒขใƒ‡ใƒซ, ๅคง่ฆๆจก่จ€่ชžใƒขใƒ‡ใƒซ, ใƒ—ใƒญใƒณใƒ—ใƒˆ, ๅพฎ่ชฟๆ•ด, ใ‚ขใƒฉใ‚คใƒกใƒณใƒˆ, ๆŽจ่ซ–, ่จˆ็”ป, ใƒ„ใƒผใƒซไฝฟ็”จ, ่จ˜ๆ†ถ, ๅนป่ฆš

Detection algorithm:

  1. If the input contains Hangul (๊ฐ€-ํžฃ) โ†’ Korean lookup
  2. Else if it contains Kana (ใ-ใƒฟ) โ†’ Japanese lookup
  3. Else if it contains CJK ideographs (ไธ€-้ฟฟ) โ†’ Chinese lookup
  4. Else โ†’ English (passed through unchanged)

Unknown keywords are passed through as-is โ€” so a partial match still searches arXiv directly.

๐Ÿ— Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      stdio/JSON-RPC      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  LLM Client     โ”‚ โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ โ”‚  arxiv-daily-mcp     โ”‚
โ”‚  (Claude/Cursor) โ”‚                          โ”‚  (FastMCP server)    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                        โ”‚ urllib
                                                        โ–ผ
                                                 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                                 โ”‚  arXiv API   โ”‚
                                                 โ”‚  export.arxivโ”‚
                                                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                        โ”‚
                                                        โ–ผ (save_paper_note)
                                                 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                                                 โ”‚  ./memos/    โ”‚
                                                 โ”‚  *.md vault  โ”‚
                                                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key design choices:

  • stdio transport โ€” MCP standard
  • FastMCP โ€” Anthropic's official Python SDK
  • urllib only โ€” zero external HTTP dependencies (works in any minimal Python environment)
  • In-process translation dictionary โ€” no LLM call, no rate limit, no per-keyword latency
  • Configurable MEMO_DIR โ€” set via env var for Docker / multi-user setups

๐Ÿงช Development

# Install dev dependencies
pip install -e ".[dev]"

# Run MCP Inspector (browser UI)
npx @modelcontextprotocol/inspector arxiv-daily-mcp

# Test stdio JSON-RPC directly
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | arxiv-daily-mcp

Unit test the translation layer

from arxiv_daily_mcp.server import _translate_keyword

assert _translate_keyword("์—์ด์ „ํŠธ") == ("agent", "ko")
assert _translate_keyword("ๆ™บ่ƒฝไฝ“") == ("agent", "zh")
assert _translate_keyword("ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ") == ("agent", "ja")
assert _translate_keyword("agent") == ("agent", "en")

๐ŸŒ Roadmap

  • [x] v0.1.0 โ€” 4 tools, stdio, multilingual (75 keywords)
  • [ ] v0.2.0 โ€” weekly_summary tool (Friday digest)
  • [ ] v0.3.0 โ€” More categories (cs.RO, cs.CV, q-fin.ST)
  • [ ] v0.4.0 โ€” PyPI release
  • [ ] v1.0.0 โ€” HTTP transport (remote access)
  • [ ] v1.1.0 โ€” More languages (Spanish, French, German, Hindi)
  • [ ] v2.0.0 โ€” Note format plugins (Notion, Apple Notes, Bear)

๐Ÿค Contributing

Issues and PRs welcome. Particularly useful:

  • ๐ŸŒ More language keywords (especially in cs.RO, q-fin, stat.ML)
  • ๐Ÿ“‚ New paper categories
  • ๐Ÿ“ Note format options (Notion API, Apple Notes, Bear)
  • ๐Ÿ› Bug reports with reproduction steps

๐Ÿ“œ License

MIT

๐Ÿ™ Credits


๐ŸŒŸ If this MCP saved you a few minutes of research workflow, consider starring the repo โ€” it helps others find it.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured