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.
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.
๐ 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 URLhttps://arxiv.org/abs/2507.01234note: 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
- Different language audience. The 2,933-star leader is English-only. This server is designed for non-English researchers first.
- Different output shape. The leader returns raw JSON / data tables. This server returns card-news Markdown โ readable directly inside any chat UI.
- 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_notesto 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:
- If the input contains Hangul (๊ฐ-ํฃ) โ Korean lookup
- Else if it contains Kana (ใ-ใฟ) โ Japanese lookup
- Else if it contains CJK ideographs (ไธ-้ฟฟ) โ Chinese lookup
- 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_summarytool (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
- Built with Anthropic MCP Python SDK
- Paper data from arXiv.org (open API)
- Inspired by the modelcontextprotocol/servers reference collection
๐ If this MCP saved you a few minutes of research workflow, consider starring the repo โ it helps others find it.
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.