A FastMCP server implementation for the Semantic Scholar API, providing comprehensive access to academic paper data, author information, and citation networks.
Looking for Claude Code skills? Check out semantic-scholar-skills — the next-generation toolkit that bundles this MCP server with ready-to-use Claude Code skills (
/expand-references,/trace-citations,/paper-triage) and a Python workflow engine.
The project has been refactored into a modular structure for better maintainability:
semantic-scholar-server/
├── semantic_scholar/ # Main package
│ ├── __init__.py # Package initialization
│ ├── server.py # Server setup and main functionality
│ ├── mcp.py # Centralized FastMCP instance definition
│ ├── config.py # Configuration classes
│ ├── utils/ # Utility modules
│ │ ├── __init__.py
│ │ ├── errors.py # Error handling
│ │ └── http.py # HTTP client and rate limiting
│ ├── api/ # API endpoints
│ ├── __init__.py
│ ├── papers.py # Paper-related endpoints
│ ├── authors.py # Author-related endpoints
│ └── recommendations.py # Recommendation endpoints
├── run.py # Entry point script
This structure:
- Separates concerns into logical modules
- Makes the codebase easier to understand and maintain
- Allows for better testing and future extensions
- Keeps related functionality grouped together
- Centralizes the FastMCP instance to avoid circular imports
-
Paper Search & Discovery
- Full-text search with advanced filtering
- Title-based paper matching
- Paper recommendations (single and multi-paper)
- Batch paper details retrieval
- Advanced search with ranking strategies
-
Citation Analysis
- Citation network exploration
- Reference tracking
- Citation context and influence analysis
-
Author Information
- Author search and profile details
- Publication history
- Batch author details retrieval
-
Advanced Features
- Complex search with multiple ranking strategies
- Customizable field selection
- Efficient batch operations
- Rate limiting compliance
- Support for both authenticated and unauthenticated access
- Graceful shutdown and error handling
- Connection pooling and resource management
