arXiv MCP Server
Provides tools for searching, retrieving, analyzing, and exporting academic papers from arXiv.org, including paper search, author search, category browsing, related papers, citation analysis, trend analysis, and multi-format export.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@arXiv MCP Serversearch for recent papers in cs.AI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
arXiv MCP Server Client
A comprehensive Model Context Protocol (MCP) implementation for interacting with arXiv.org, enabling AI assistants to search, retrieve, analyze, and export academic papers seamlessly.
🚀 Features
Core Functionality
Paper Search: Advanced search with keywords, authors, titles, and categories
Paper Retrieval: Get detailed metadata for specific arXiv papers
Smart Summaries: Generate formatted paper summaries with key information
Advanced Tools
Author Search: Find all papers by specific researchers
Category Browsing: Explore papers in specific arXiv categories (cs.AI, cs.LG, etc.)
Recent Papers: Get latest publications with customizable time ranges
Paper Comparison: Side-by-side analysis of multiple papers
Related Papers: Discover papers related to a given work using intelligent matching
Citation Analysis: Estimated citation metrics and impact analysis
Trend Analysis: Research trend analysis with publication counts, top authors, and keyword frequency
Multi-format Export: Export papers in BibTeX, JSON, CSV, and Markdown formats
📦 Installation
Using Poetry (Recommended)
# Clone the repository
git clone https://github.com/yourusername/arxiv-mcp-client.git
cd arxiv-mcp-client
# Install dependencies
poetry install
# Activate virtual environment
poetry shellUsing pip
# Install dependencies
pip install mcp httpx
# Run the client
python arxiv_mcp_client.py🛠️ Usage
Basic Setup
import asyncio
from arxiv_mcp_client import ArxivMCPClient
async def main():
# Initialize client
client = ArxivMCPClient()
# Connect to MCP server
await client.connect("arxiv_mcp_server.py")
# Your code here...
# Close connection
await client.close()
asyncio.run(main())Search Examples
# General search
results = await client.search_papers("transformer neural networks", max_results=10)
# Search by author
papers = await client.search_by_author("Geoffrey Hinton", max_results=20)
# Search by category
ai_papers = await client.search_by_category("cs.AI", max_results=15)
# Get recent papers
recent = await client.get_recent_papers("cs.LG", days_back=7, max_results=10)Paper Analysis
# Get paper details
paper = await client.get_paper_details("2301.07041")
# Get formatted summary
summary = await client.get_paper_summary("2301.07041")
# Compare papers
comparison = await client.compare_papers(
["2301.07041", "2302.13971"],
comparison_fields=["authors", "abstract", "categories"]
)
# Find related papers
related = await client.find_related_papers("2301.07041", max_results=10)Export and Analysis
# Export to BibTeX
bibtex = await client.export_papers(
["2301.07041", "2302.13971"],
format="bibtex",
include_abstract=True
)
# Analyze research trends
trends = await client.analyze_trends(
category="cs.AI",
time_period="3_months",
analysis_type="top_authors"
)🔧 Available Tools
Tool | Description | Key Parameters |
| General paper search |
|
| Get specific paper details |
|
| Generate formatted summary |
|
| Find papers by author |
|
| Browse category papers |
|
| Get latest publications |
|
| Compare multiple papers |
|
| Discover related work |
|
| Citation analysis |
|
| Research trend analysis |
|
| Multi-format export |
|
📊 Supported Categories
Computer Science
cs.AI- Artificial Intelligencecs.LG- Machine Learningcs.CV- Computer Visioncs.CL- Computation and Languagecs.CR- Cryptography and Securitycs.DB- Databasescs.DS- Data Structures and Algorithms
Mathematics
math.CO- Combinatoricsmath.ST- Statistics Theorymath.PR- Probabilitymath.OC- Optimization and Control
Physics
physics.comp-ph- Computational Physicsphysics.data-an- Data Analysisquant-ph- Quantum Physics
📄 Export Formats
BibTeX
@article{2301_07041,
title={Title of the Paper},
author={Author One and Author Two},
journal={arXiv preprint arXiv:2301.07041},
year={2023},
url={https://arxiv.org/abs/2301.07041}
}JSON
{
"id": "2301.07041",
"title": "Title of the Paper",
"authors": ["Author One", "Author Two"],
"abstract": "Paper abstract...",
"published": "2023-01-17",
"categories": ["cs.AI", "cs.LG"]
}CSV
id,title,authors,published,categories,url
2301.07041,Title of the Paper,"Author One; Author Two",2023-01-17,"cs.AI; cs.LG",https://arxiv.org/abs/2301.07041🔍 Search Query Examples
Basic Searches
# Keyword search
await client.search_papers("neural networks")
# Multiple keywords
await client.search_papers("transformer attention mechanism")
# Exact phrase
await client.search_papers('"large language models"')Advanced Searches
# Author search
await client.search_by_author("Yoshua Bengio")
# Category search
await client.search_by_category("cs.AI")
# Recent papers in category
await client.get_recent_papers("cs.LG", days_back=14)📈 Trend Analysis Types
Publication Count Analysis
Tracks the number of papers published over time in a specific category.
trends = await client.analyze_trends("cs.AI", "6_months", "publication_count")
# Returns: monthly publication countsTop Authors Analysis
Identifies the most prolific authors in a field over a given period.
trends = await client.analyze_trends("cs.LG", "1_year", "top_authors")
# Returns: authors ranked by paper countKeyword Frequency Analysis
Analyzes the most common keywords in paper titles within a category.
trends = await client.analyze_trends("cs.CV", "3_months", "keyword_frequency")
# Returns: keywords ranked by frequency🚨 Error Handling
The client includes comprehensive error handling:
try:
results = await client.search_papers("machine learning")
if "error" in results:
print(f"Search failed: {results['error']}")
else:
print(f"Found {len(results['papers'])} papers")
except Exception as e:
print(f"Connection error: {e}")🔧 Configuration
Rate Limiting
The client respects arXiv's API guidelines with built-in rate limiting and timeout handling.
Customization
# Custom timeout
client = ArxivMCPClient()
client.http_client = httpx.AsyncClient(timeout=60.0)
# Custom result limits
results = await client.search_papers("AI", max_results=50) # Max: 100🤝 Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
arXiv.org for providing free access to academic papers
Anthropic for the Model Context Protocol
The open-source community for the underlying libraries
📞 Support
Issues: GitHub Issues
Documentation: Wiki
Discussions: GitHub Discussions
Made with ❤️ for the research community
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anuj0456/arxiv-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server