返回市场
阿奇夫-MCP服务器

阿奇夫-MCP服务器

作者:anuj045611 星标更新:2025-08-04

项目介绍

arXiv MCP Server 客户端

一个全面的模型上下文协议(MCP)实现,用于与arXiv.org进行交互,使AI助手能够无缝地搜索、检索、分析和导出学术论文。

🚀 功能特性

核心功能

  • 论文搜索:使用关键词、作者、标题和类别进行高级搜索
  • 论文检索:获取特定arXiv论文的详细元数据
  • 智能摘要:生成包含关键信息的格式化论文摘要

高级工具

  • 作者搜索:查找特定研究人员的所有论文
  • 类别浏览:探索特定arXiv类别中的论文(如cs.AI, cs.LG等)
  • 最新论文:获取最新发表的论文,并可自定义时间范围
  • 论文比较:多篇论文的并排分析
  • 相关论文:通过智能匹配发现与给定工作相关的论文
  • 引用分析:估算引用指标和影响分析
  • 趋势分析:研究趋势分析,包括发表数量、顶级作者和关键词频率
  • 多格式导出:以BibTeX、JSON、CSV和Markdown格式导出论文

📦 安装

使用Poetry(推荐)

# 克隆仓库
git clone https://github.com/yourusername/arxiv-mcp-client.git
cd arxiv-mcp-client

# 安装依赖
poetry install

# 激活虚拟环境
poetry shell

使用pip

# 安装依赖
pip install mcp httpx

# 运行客户端
python arxiv_mcp_client.py

🛠️ 使用方法

基本设置

import asyncio
from arxiv_mcp_client import ArxivMCPClient

async def main():
    # 初始化客户端
    client = ArxivMCPClient()
    
    # 连接到MCP服务器
    await client.connect("arxiv_mcp_server.py")
    
    # 在这里编写你的代码...
    
    # 关闭连接
    await client.close()

asyncio.run(main())

搜索示例

# 通用搜索
results = await client.search_papers("transformer神经网络", max_results=10)

# 按作者搜索
papers = await client.search_by_author("Geoffrey Hinton", max_results=20)

# 按类别搜索
ai_papers = await client.search_by_category("cs.AI", max_results=15)

# 获取最近的论文
recent = await client.get_recent_papers("cs.LG", days_back=7, max_results=10)

论文分析

# 获取论文详情
paper = await client.get_paper_details("2301.07041")

# 获取格式化的摘要
summary = await client.get_paper_summary("2301.07041")

# 比较论文
comparison = await client.compare_papers(
    ["2301.07041", "2302.13971"], 
    comparison_fields=["authors", "abstract", "categories"]
)

# 查找相关论文
related = await client.find_related_papers("2301.07041", max_results=10)

导出和分析

# 导出到BibTeX
bibtex = await client.export_papers(
    ["2301.07041", "2302.13971"], 
    format="bibtex", 
    include_abstract=True
)

# 分析研究趋势
trends = await client.analyze_trends(
    category="cs.AI", 
    time_period="3_months", 
    analysis_type="top_authors"
)

🔧 可用工具

工具描述关键参数
search_arxiv通用论文搜索query, max_results, sort_by
get_paper获取特定论文详情arxiv_id
summarize_paper生成格式化摘要arxiv_id
search_by_author按作者查找论文author_name, max_results
search_by_category浏览类别论文category, max_results, sort_by
get_recent_papers获取最新发表的论文category, days_back, max_results
compare_papers比较多篇论文arxiv_ids, comparison_fields
find_related_papers发现相关工作arxiv_id, max_results
get_paper_citations引用分析arxiv_id
analyze_trends研究趋势分析category, time_period, analysis_type
export_papers多格式导出arxiv_ids, format, include_abstract

📊 支持的类别

计算机科学

  • cs.AI - 人工智能
  • cs.LG - 机器学习
  • cs.CV - 计算机视觉
  • cs.CL - 计算与语言
  • cs.CR - 密码学与安全
  • cs.DB - 数据库
  • cs.DS - 数据结构与算法

数学

  • math.CO - 组合数学
  • math.ST - 统计理论
  • math.PR - 概率论
  • math.OC - 最优化与控制

物理学

  • physics.comp-ph - 计算物理
  • physics.data-an - 数据分析
  • quant-ph - 量子物理

查看完整的类别列表

📄 导出格式

BibTeX

@article{2301_07041,
  title={论文标题},
  author={作者一 and 作者二},
  journal={arXiv预印本 arXiv:2301.07041},
  year={2023},
  url={https://arxiv.org/abs/2301.07041}
}

JSON

{
  "id": "2301.07041",
  "title": "论文标题",
  "authors": ["作者一", "作者二"],
  "abstract": "论文摘要...",
  "published": "2023-01-17",
  "categories": ["cs.AI", "cs.LG"]
}

CSV

id,title,authors,published,categories,url
2301.07041,论文标题,"作者一; 作者二",2023-01-17,"cs.AI; cs.LG",https://arxiv.org/abs/2301.07041

🔍 搜索查询示例

基本搜索

# 关键词搜索
await client.search_papers("神经网络")

# 多个关键词
await client.search_papers("transformer注意力机制")

# 精确短语
await client.search_papers('"大型语言模型"')

高级搜索

# 作者搜索
await client.search_by_author("Yoshua Bengio")

# 类别搜索
await client.search_by_category("cs.AI")

# 类别中的最新论文
await client.get_recent_papers("cs.LG", days_back=14)

📈 趋势分析类型

发表数量分析

跟踪特定类别中论文发表的数量随时间的变化。

trends = await client.analyze_trends("cs.AI", "6_months", "publication_count")
# 返回:每月发表数量

顶级作者分析

识别给定时间段内领域中最活跃的作者。

trends = await client.analyze_trends("cs.LG", "1_year", "top_authors")
# 返回:按论文数量排名的作者

关键词频率分析

分析特定类别中论文标题中最常见的关键词。

trends = await client.analyze_trends("cs.CV", "3_months", "keyword_frequency")
# 返回:按频率排名的关键词

🚨 错误处理

客户端包含了全面的错误处理:

try:
    results = await client.search_papers("机器学习")
    if "error" in results:
        print(f"搜索失败: {results['error']}")
    else:
        print(f"找到 {len(results['papers'])} 篇论文")
except Exception as e:
    print(f"连接错误: {e}")

🔧 配置

速率限制

客户端遵守arXiv的API指南,内置了速率限制和超时处理。

自定义

# 自定义超时
client = ArxivMCPClient()
client.http_client = httpx.AsyncClient(timeout=60.0)

# 自定义结果限制
results = await client.search_papers("AI", max_results=50)  # 最大值: 100

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加神奇的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 许可证

该项目采用MIT许可证 - 详情见LICENSE文件。

🙏 致谢

  • arXiv.org 提供免费访问学术论文
  • Anthropic 提供模型上下文协议
  • 开源社区提供的底层库

📞 支持


为研究社区制作 ❤️