A FastMCP-based Model Context Protocol (MCP) server providing academic paper search and PDF processing utilities. Features a modular architecture with both proxy and standalone server capabilities.
All-in-MCP uses a modern FastMCP architecture with two main components:
- 🔄 All-in-MCP Proxy Server: Main server that routes requests to academic tools
- 📚 APaper Module: Isolated academic research server with specialized paper search tools
This design provides better modularity, performance, and scalability.
Both servers expose academic paper search tools as FastMCP endpoints with automatic tool registration:
Category | Tool Name | Description | Backend |
---|---|---|---|
Academic Research | apaper_search_iacr_papers |
Search academic papers from IACR ePrint Archive | APaper |
apaper_download_iacr_paper |
Download PDF of an IACR ePrint paper | APaper | |
apaper_read_iacr_paper |
Read and extract text content from an IACR ePrint paper PDF | APaper | |
Bibliography Search | apaper_search_cryptobib_papers |
Search CryptoBib bibliography database for cryptography papers | APaper |
Cross-platform Search | apaper_search_crossref_papers |
Search academic papers from Crossref database | APaper |
apaper_search_google_scholar_papers |
Search academic papers across disciplines with citation data | APaper | |
PDF Processing | apaper_read_pdf_file |
Read and extract text from local and online PDF files | APaper |
GitHub Repository | github-repo-mcp_getRepoAllDirectories |
Get all directories from a GitHub repository | GitHub-Repo-MCP |
github-repo-mcp_getRepoDirectories |
Get directories from a specific path in GitHub repository | GitHub-Repo-MCP | |
github-repo-mcp_getRepoFile |
Get file content from GitHub repository | GitHub-Repo-MCP |
All tools are implemented using FastMCP decorators with automatic registration, built-in validation, and enhanced error handling.
- Python 3.10 or higher
pipx
for Python package installationnpx
for MCP Inspector (Node.js required)
Add the servers to your MCP client configuration:
{
"servers": {
"all-in-mcp": {
"type": "stdio",
"command": "pipx",
"args": ["run", "all-in-mcp"],
"env": {
"APAPER": "true",
"GITHUB_REPO_MCP": "true"
}
}
}
}
{
"mcpServers": {
"all-in-mcp": {
"type": "stdio",
"command": "pipx",
"args": ["run", "all-in-mcp"],
"env": {
"APAPER": "true",
"GITHUB_REPO_MCP": "true"
}
}
}
}
The main proxy server supports multiple MCP backends through environment variables:
# Run with APaper academic tools enabled
APAPER=true pipx run all-in-mcp
# Run with GitHub repository tools enabled
GITHUB_REPO_MCP=true pipx run all-in-mcp
# Run with both backends enabled
APAPER=true GITHUB_REPO_MCP=true pipx run all-in-mcp
# Run standalone APaper server (academic tools only)
pipx run apaper
Note: If you have the package installed globally, you can also run directly:
all-in-mcp
orapaper
Use the official MCP Inspector to debug and test server functionality:
# Debug the main proxy server with APaper tools
APAPER=true npx @modelcontextprotocol/inspector pipx run all-in-mcp
# Debug with all backends enabled
APAPER=true GITHUB_REPO_MCP=true npx @modelcontextprotocol/inspector pipx run all-in-mcp
# Debug standalone APaper server
npx @modelcontextprotocol/inspector pipx run apaper
The MCP Inspector provides:
- 🔍 Interactive Tool Testing: Test all available tools with real parameters
- 📊 Server Information: View server capabilities and tool schemas
- 🐛 Debug Messages: Monitor server communication and error messages
- ⚡ Real-time Testing: Execute tools and see results immediately
Perfect for development, debugging, and understanding how the FastMCP tools work.
Development
For development setup and contribution guidelines, see the Development Guide.
# Clone the repository
git clone https://github.com/jiahaoxiang2000/all-in-mcp.git
cd all-in-mcp
# Install with development dependencies
uv sync --extra dev
# Run tests (now using unittest)
uv run python tests/test_fastmcp_server.py
uv run python tests/test_apaper_iacr.py
uv run python tests/test_apaper_pdf.py