Psylence0609/arxiv-mcp-server
If you are the rightful owner of arxiv-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The ArXiv MCP Server is a comprehensive Model Context Protocol server designed for searching and analyzing ArXiv papers, providing AI assistants with tools to explore academic research through natural language queries.
ArXiv MCP Server
A comprehensive Model Context Protocol (MCP) server for searching and analyzing ArXiv papers. This server provides AI assistants with powerful tools to explore academic research through natural language queries, following the Dedalus platform guidelines.
Features
Advanced Search Capabilities
- General Search: Flexible query syntax with boolean operators and field-specific searches
- Category Search: Browse papers by ArXiv categories (cs.AI, math.GT, physics, etc.)
- Author Search: Find papers by specific researchers
- ID Lookup: Retrieve specific papers by ArXiv ID
Analysis & Discovery Tools
- Trending Papers: Discover recently updated and popular papers
- Similar Papers: Find related research based on content similarity
- Trend Analysis: Analyze research trends across keywords and topics
- Comprehensive Paper Analysis: Get detailed insights including related work and author networks
Production Ready
- Built following Dedalus MCP Server Guidelines
- Streamable HTTP transport with session management
- STDIO transport for development
- Comprehensive error handling and caching
- Rate limiting and timeout management
- Health check endpoint
Installation
Prerequisites
- Node.js 16+
- TypeScript 5.3+
Using npm
npm install -g arxiv-mcp-server
From Source
git clone https://github.com/Psylence0609/arxiv-mcp-server.git
cd arxiv-mcp-server
npm install
npm run build
Configuration
Environment Variables
PORT=8080 # HTTP server port (default: 8080)
NODE_ENV=production # Environment mode
RATE_LIMIT=100 # API rate limit per minute (default: 100)
CACHE_TIMEOUT=300000 # Cache timeout in milliseconds (default: 5 minutes)
ARXIV_API_KEY=optional # ArXiv API key (not required for public access)
Usage
Running the Server
HTTP Transport (Production)
# Default port 8080
arxiv-mcp
# Custom port
arxiv-mcp --port 3000
STDIO Transport (Development)
arxiv-mcp --stdio
Client Configuration
For Dedalus Platform
{
"mcpServers": {
"arxiv": {
"url": "http://localhost:8080/mcp"
}
}
}
For Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"arxiv": {
"command": "arxiv-mcp",
"args": ["--stdio"]
}
}
}
For VS Code (with MCP extension)
- Run
MCP: Add servercommand - Choose "HTTP (Server-sent events)" transport
- Enter URL:
http://localhost:8080/sse
🛠️ Available Tools
1. arxiv_search
General search with advanced query syntax.
Example:
Search for "machine learning transformers" with max 20 results
Parameters:
query(required): Search query with support for:- Boolean operators:
AND,OR,NOT - Field prefixes:
ti:(title),au:(author),abs:(abstract),cat:(category) - Quotes for exact phrases:
"exact phrase"
- Boolean operators:
maxResults: 1-100 (default: 10)sortBy: "relevance", "lastUpdatedDate", "submittedDate"sortOrder: "ascending", "descending"
2. arxiv_get_paper
Retrieve a specific paper by ArXiv ID.
Example:
Get details for paper 2301.07041
3. arxiv_search_by_category
Browse papers within specific ArXiv categories.
Example:
Find recent papers in computer science AI category
Popular Categories:
cs.AI- Artificial Intelligencecs.LG- Machine Learningcs.CV- Computer Visionmath.GT- Geometric Topologyphysics.gen-ph- General Physics
4. arxiv_search_by_author
Find papers by specific researchers.
Example:
Find papers by "Geoffrey Hinton"
5. arxiv_trending_papers
Discover trending and recently updated papers.
Example:
Show trending AI papers from this week
6. arxiv_similar_papers
Find papers similar to a given paper based on content analysis.
Example:
Find papers similar to 2301.07041
7. arxiv_analyze_trends
Analyze research trends for specific keywords or topics.
Example:
Analyze trends for ["deep learning", "neural networks", "transformers"]
8. arxiv_analyze_paper
Comprehensive analysis including related papers, author networks, and category statistics.
Example:
Perform comprehensive analysis of paper 2301.07041
🧪 Testing
Run All Tests
npm test
Individual Test Commands
# Run the integration test
npm run test:endpoints
# Run Jest tests (TypeScript)
npm run test:jest
# Run tests with coverage
npm run test:coverage
Test Results
🎯 RESULT: 8/8 tests passed
🎉 ALL 8 ARXIV MCP ENDPOINTS ARE WORKING CORRECTLY!
🚀 Server is ready for deployment to Dedalus marketplace!
🏗️ Development
Building
npm run build
Development Mode
npm run dev # HTTP transport
npm run dev:stdio # STDIO transport
Watching Changes
npm run watch
📁 Project Structure
arxiv-mcp-server/
├── src/
│ ├── index.ts # Main entry point
│ ├── cli.ts # Command-line argument parsing
│ ├── config.ts # Configuration management
│ ├── server.ts # Server instance creation
│ ├── client.ts # ArXiv API client
│ ├── types.ts # TypeScript type definitions
│ ├── tools/
│ │ ├── index.ts # Tool exports
│ │ └── arxiv.ts # Tool definitions and handlers
│ └── transport/
│ ├── index.ts # Transport exports
│ ├── http.ts # HTTP transport (primary)
│ └── stdio.ts # STDIO transport (development)
├── tests/
│ ├── simple-test.js # Integration tests
│ └── endpoints.test.ts # Jest tests
├── examples/
│ └── client-config.json # Client configuration examples
├── dist/ # Compiled JavaScript
├── package.json # Dependencies & scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
🔧 API Examples
Search Query Examples
Basic Search
{
"name": "arxiv_search",
"arguments": {
"query": "quantum computing",
"maxResults": 10
}
}
Advanced Search
{
"name": "arxiv_search",
"arguments": {
"query": "ti:\"machine learning\" AND au:Bengio",
"maxResults": 20,
"sortBy": "lastUpdatedDate"
}
}
Category Search
{
"name": "arxiv_search_by_category",
"arguments": {
"category": "cs.AI",
"maxResults": 15
}
}
🏥 Health Check
The server provides a health check endpoint:
curl http://localhost:8080/health
Response:
{
"status": "healthy",
"timestamp": "2025-09-15T04:00:00.000Z",
"service": "arxiv-mcp",
"version": "0.2.0"
}
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some 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 file for details.
👨💻 Author
Praneet Surabhi
- GitHub: @Psylence0609
- Email: praneetasritha@gmail.com
🙏 Acknowledgments
- ArXiv for providing the research paper database
- Model Context Protocol for the MCP specification
- Dedalus Labs for the platform guidelines
- Anthropic for the MCP SDK
🔗 Links
⭐ Star this repository if you find it helpful!