🚀 arXiv MCP Server
arXiv MCP Server是一個實現了模型上下文協議(MCP)的服務器,它提供了與arXiv API交互的工具,可用於搜索和獲取學術論文。
🚀 快速開始
本服務器實現了模型上下文協議,為從arXiv預印本庫中搜索和獲取論文提供了工具。它允許AI助手通過各種標準搜索論文、獲取特定論文的詳細信息、按類別搜索以及從PDF中提取全文內容。
✨ 主要特性
- 搜索論文:使用各種標準(標題、作者、摘要、類別等)搜索論文。
- 獲取論文詳情:通過arXiv ID獲取特定論文的詳細信息。
- 類別搜索:在特定的arXiv類別中搜索論文。
- PDF內容提取:下載並提取論文PDF的全文內容。
- 結構化結果:返回經過正確解析的JSON數據,而非原始XML。
- 緩存機制:智能緩存PDF,避免重複下載。
📦 安裝指南
前提條件
安裝步驟
-
克隆此倉庫:
git clone https://github.com/your-username/arxiv-mcp-server.git
cd arxiv-mcp-server
-
安裝依賴:
npm install
-
構建項目:
npm run build
💻 使用示例
作為MCP服務器啟動
啟動服務器:
npm start
服務器將在標準輸入輸出上運行,允許它與MCP客戶端進行通信。
MCP客戶端配置
將以下配置添加到你的MCP客戶端設置中。對於Claude Desktop,將其添加到claude_desktop_config.json文件中:
{
"mcpServers": {
"arxiv": {
"name": "arxiv-mcp-server",
"command": "node",
"args": ["build/index.js"],
"cwd": "C:/path/to/arxiv-mcp-server",
"enabled": true,
"alwaysAllow": [
"search_papers",
"get_paper",
"search_by_category",
"get_paper_content"
],
"env": {}
}
}
}
對於其他MCP客戶端,使用類似的配置結構。請確保:
- 更新
cwd路徑,指向你的arxiv-mcp-server目錄。
- 確保
build/index.js文件存在(先運行npm run build)。
alwaysAllow數組列出了無需用戶確認即可使用的工具。
基礎用法
search_papers
通過各種標準在arXiv上搜索論文,具有靈活的查詢選項。
參數:
query(字符串,可選):跨所有字段的通用搜索查詢。
category(字符串,可選):arXiv類別(例如cs.AI、physics.optics)。
author(字符串,可選):要搜索的作者姓名。
title(字符串,可選):要在標題中搜索的單詞。
abstract(字符串,可選):要在摘要中搜索的單詞。
start(數字,可選):分頁的起始索引(從0開始,默認值:0)。
max_results(數字,可選):返回的最大結果數(最大2000,默認值:10)。
sort_by(字符串,可選):按relevance、lastUpdatedDate或submittedDate排序。
sort_order(字符串,可選):排序順序為ascending或descending。
示例響應:
{
"feed_title": "arXiv Query: search_query=all:machine+learning",
"total_results": 150000,
"start_index": 0,
"items_per_page": 10,
"papers": [
{
"id": "http://arxiv.org/abs/2104.13478",
"arxiv_id": "2104.13478",
"title": "Advanced Machine Learning Techniques",
"summary": "This paper discusses advanced machine learning techniques...",
"authors": ["John Smith", "Jane Doe"],
"published": "2021-04-28T09:00:00Z",
"updated": "2021-04-28T09:00:00Z",
"categories": ["cs.LG", "cs.AI"],
"links": [
{
"href": "http://arxiv.org/abs/2104.13478",
"rel": "alternate",
"type": "text/html"
}
]
}
]
}
get_paper
通過arXiv ID獲取特定論文的詳細信息。
參數:
paper_id(字符串,必需):arXiv論文ID(例如2104.13478或cs/0001001)。
返回:與search_papers相同的結構化格式,但僅針對單篇論文。
search_by_category
在特定的arXiv類別中搜索論文,支持分頁和排序選項。
參數:
category(字符串,必需):arXiv類別(例如cs.AI、physics.optics)。
start(數字,可選):分頁的起始索引(從0開始)。
max_results(數字,可選):返回的最大結果數(最大2000)。
sort_by(字符串,可選):按relevance、lastUpdatedDate或submittedDate排序。
sort_order(字符串,可選):排序順序為ascending或descending。
get_paper_content
下載並提取論文PDF的全文內容。
參數:
paper_id(字符串,必需):arXiv論文ID(例如2104.13478)。
特性:
- 從arXiv服務器下載PDF。
- 本地緩存PDF,避免重複下載。
- 使用pdf-parse提取並清理文本內容。
- 優雅地處理網絡錯誤和解析問題。
- 返回適合分析的純文本內容。
返回:論文的純文本內容。
📚 詳細文檔
常見arXiv類別
cs.AI - 人工智能
cs.LG - 機器學習
cs.CL - 計算與語言
cs.CV - 計算機視覺與模式識別
physics.optics - 光學
math.CO - 組合數學
stat.ML - 機器學習(統計學)
完整列表請參閱arXiv主題分類。
開發相關
運行測試
npm test
構建項目
npm run build
開發時的監聽模式
npm run test:watch
API參考
本服務器使用官方的arXiv API。更多信息請參考:
貢獻代碼
請閱讀CONTRIBUTING.md,瞭解我們的行為準則和提交拉取請求的流程。
📄 許可證
本項目採用MIT許可證 - 詳情請參閱LICENSE文件。
🔧 技術細節
版本更新日誌
v0.1.0(初始版本)
- 基本的arXiv API集成。
- 多條件搜索論文。
- 獲取單篇論文詳情。
- 基於類別的搜索。
- 帶緩存的PDF內容提取。
- 結構化JSON響應解析。
- MCP協議實現。