Provides comprehensive access to ArXiv research papers including search functionality, paper details retrieval, author-based searches, recent papers by category, trending categories, advanced search with Boolean operators, version-specific access, and phrase matching across titles and abstracts.
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., "@Multi-Service MCP Serversearch for recent papers about quantum computing with error correction"
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.
Multi-Service MCP Server
A modular Model Context Protocol (MCP) server that provides scaled access to ArXiv research papers and Sequential Thinking tools for Claude Desktop applications.
ποΈ Architecture
This server uses a clean, modular architecture with tools organized in separate folders:
/Users/brandont/git/mpc/
βββ server.py # Main server file
βββ services/ # Business logic
β βββ arxiv_service.py # ArXiv API operations
β βββ sequential_thinking_service.py # Sequential thinking operations
βββ tools/ # MCP tools
β βββ arxiv_tools.py # ArXiv MCP tools
β βββ sequential_thinking_tools.py # Sequential thinking MCP tools
βββ utils/ # Shared components
β βββ __init__.py # Base classes & models
βββ README.md # Documentation
βββ QUICKSTART.md # Quick start guide
βββ test_server.py # Test suite
βββ Dockerfile # Docker configuration
βββ docker-compose.yml # Docker Compose setup
βββ setup-docker.sh # Docker setup script
βββ run_mcp_docker.sh # Docker wrapper for Claude Desktop
βββ claude_desktop_config_docker.json # Docker config template
βββ requirements.txt # Dependencies
βββ .gitignore # Git ignore rulesπ³ Why Docker?
Docker provides several advantages for MCP servers:
β Benefits
No Python Environment Setup: Eliminates virtual environment complexity
Consistent Environment: Same behavior across all systems
Easy Installation: Just
docker buildand you're readyIsolation: No conflicts with system Python packages
Portability: Works on any system with Docker
Easy Updates: Rebuild image to update dependencies
π Features
8 ArXiv Tools: Search, details, recent papers, author papers, trending categories, advanced search, version support, phrase search
3 Sequential Thinking Tools: Dynamic problem-solving, thought revision, branching analysis
Advanced Query Support: Boolean operators (AND, OR, ANDNOT), field-specific searches, phrase matching
Enhanced Metadata: Journal references, DOI links, author comments, affiliations, primary categories
Always Includes URLs: Every paper response includes both ArXiv abstract URL and PDF URL
Version Support: Access specific versions of papers
Docker-Based: Containerized deployment for easy setup
Modular Design: Easy to add new services and tools
Scalable Architecture: Clean separation of concerns
Local Operation: Runs entirely on your local machine
Claude Desktop Integration: Seamlessly integrates with Claude Desktop
π Available Tools
ArXiv Tools
search_arxiv- Search papers by query with sorting optionsget_paper_details- Get detailed information about specific papersget_recent_papers- Get recent papers from specific categoriesget_papers_by_author- Get papers by specific authorsget_trending_categories- Get trending categories with paper countsadvanced_search- Multi-field search with Boolean operators and date rangesget_paper_by_version- Get specific versions of paperssearch_by_phrase- Search for exact phrases in titles, abstracts, or authors
Sequential Thinking Tools
sequential_thinking- Dynamic problem-solving through structured thoughtsget_thought_summary- Get summary of current thinking sessionclear_thought_history- Clear thought history and branches
π οΈ Installation
Prerequisites
Git (to clone the repository)
Docker (for containerized installation)
π³ Docker Installation
Quick Setup
Clone the repository:
git clone https://github.com/brandont/arxiv-mcp-server.git cd arxiv-mcp-serverRun the Docker setup script:
chmod +x setup-docker.sh ./setup-docker.shTest the Docker container:
docker run --rm multi-service-mcp-server python test_server.py --test
Manual Setup
Clone the repository:
git clone https://github.com/brandont/arxiv-mcp-server.git cd arxiv-mcp-serverBuild the Docker image:
docker build -t multi-service-mcp-server .Test the installation:
docker run --rm multi-service-mcp-server python test_server.py --test
π§ Claude Desktop Integration
Locate your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the Docker MCP server configuration:
{ "mcpServers": { "multi-service": { "command": "/path/to/your/multi-service-mcp-server/run_mcp_docker.sh", "args": [] } } }Important: Replace
/path/to/your/multi-service-mcp-serverwith the actual path where you cloned this repositoryAlternative: Use the Docker config file:
# Copy the Docker config and update the path cp claude_desktop_config_docker.json ~/Library/Application\ Support/Claude/claude_desktop_config.json # Then edit the file to add the correct path to run_mcp_docker.shRestart Claude Desktop to load the new MCP server.
Verification
Once configured, you can test the tools in Claude Desktop:
"Search ArXiv for papers on machine learning"
"Get details for paper 2301.00001"
"Show me recent papers in cs.AI"
"Get papers by author Geoffrey Hinton"
"What are the trending categories this month?"
"Advanced search: papers by Yann LeCun in cs.AI category from 2023"
"Get version 2 of paper 2301.00001"
"Search for exact phrase 'neural networks' in titles"
π Advanced Search Features
Based on the ArXiv API documentation, this server supports:
Boolean Operators
AND- Combine search termsOR- Find papers matching any termANDNOT- Exclude certain terms
Field-Specific Searches
au:- Author name (e.g.,au:LeCun)ti:- Title keywords (e.g.,ti:neural networks)abs:- Abstract keywords (e.g.,abs:machine learning)cat:- ArXiv category (e.g.,cat:cs.AI)
Phrase Matching
Use double quotes for exact phrases:
"deep learning"
Date Ranges
Format:
YYYYMMDD(e.g.,20230101)Range:
submittedDate:[20230101 TO 20231231]
Example Advanced Queries
# Papers by LeCun about neural networks in AI category
au:LeCun AND ti:neural AND cat:cs.AI
# Recent papers excluding certain categories
submittedDate:[20240101 TO *] ANDNOT cat:cs.CV
# Exact phrase in abstract
abs:"transformer architecture"π§ Adding New Tools
The modular architecture makes adding new tools incredibly easy:
Step 1: Add Service Method
# services/arxiv_service.py
def get_papers_by_keyword(self, keyword: str) -> List[PaperInfo]:
"""Get papers containing a specific keyword."""
# Implementation here
passStep 2: Add Tool
# tools/arxiv_tools.py
@self.mcp.tool()
async def get_papers_by_keyword(keyword: str) -> str:
"""
Get papers containing a specific keyword.
Args:
keyword: Keyword to search for
Returns:
JSON string containing matching papers
"""
try:
results = self.service.get_papers_by_keyword(keyword)
return json.dumps([paper.model_dump() for paper in results], indent=2)
except Exception as e:
return json.dumps({"error": str(e)})Step 3: Restart Server
That's it! The tool is automatically registered and available in Claude Desktop.
ποΈ Adding New Services
To add a completely new service (e.g., Weather, News):
Step 1: Create Service
# services/weather_service.py
from utils import BaseService
class WeatherService(BaseService):
def get_name(self) -> str:
return "Weather"
def get_weather(self, city: str) -> dict:
# Weather API logic
passStep 2: Create Tool Provider
# tools/weather_tools.py
from utils import BaseToolProvider
class WeatherToolProvider(BaseToolProvider):
def _register_tools(self):
@self.mcp.tool()
async def get_weather(city: str) -> str:
"""Get weather for a city."""
result = self.service.get_weather(city)
return json.dumps(result, indent=2)Step 3: Register in Main Server
# server.py
from mcp.server.fastmcp import FastMCP
from services.arxiv_service import ArXivService
from services.weather_service import WeatherService
from tools.arxiv_tools import ArXivToolProvider
from tools.weather_tools import WeatherToolProvider
# Create the MCP server
mcp = FastMCP("Multi-Service MCP Server")
# Initialize services and tools
arxiv_service = ArXivService()
arxiv_tools = ArXivToolProvider(mcp, arxiv_service)
weather_service = WeatherService()
weather_tools = WeatherToolProvider(mcp, weather_service)π§ͺ Testing
Run the test suite to verify everything works:
docker run --rm multi-service-mcp-server python test_server.py --testπ¨ Troubleshooting
Common Issues
Claude Desktop not recognizing the server:
Check that the path in the configuration file points to
run_mcp_docker.shEnsure Claude Desktop is restarted after configuration changes
Verify the wrapper script is executable:
chmod +x run_mcp_docker.sh
ArXiv API errors:
Check your internet connection and ArXiv accessibility
Some queries may fail due to ArXiv API limits
Docker issues:
Make sure Docker is installed and running:
docker --versionFor Docker daemon issues, restart Docker Desktop
Ensure the Docker image is built:
docker build -t multi-service-mcp-server .
Permission errors on setup script:
Run
chmod +x setup-docker.shto make the script executable
Getting Help
Check logs for detailed error information
Run the test suite to verify functionality:
docker run --rm multi-service-mcp-server python test_server.py --testEnsure Docker is properly installed and running
Verify the Docker image is built correctly
π Technical Details
Framework: Built using the official MCP Python SDK
Architecture: Modular service-based design
Deployment: Docker containerized
ArXiv Access: Uses the
arxivPython libraryTransport: STDIO transport for Claude Desktop integration
Tool Definition: Auto-generated from Python type hints and docstrings
π License
This project is open source and available under the MIT License.
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.