An MCP (Model Context Protocol) server providing daily-use utility functions and academic paper search capabilities
Project description
All-in-MCP
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.
Architecture
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.
Features
Both servers expose academic paper search tools as FastMCP endpoints with automatic tool registration:
Available Tools
- Academic Research:
search-iacr-papers: Search academic papers from IACR ePrint Archivedownload-iacr-paper: Download PDF of an IACR ePrint paperread-iacr-paper: Read and extract text content from an IACR ePrint paper PDF
- Bibliography Search:
search-cryptobib-papers: Search CryptoBib bibliography database for cryptography papers (structured metadata or raw BibTeX)
- Crossref Search:
search-crossref-papers: Search academic papers from Crossref database
- Google Scholar:
search-google-scholar-papers: Search academic papers across disciplines with citation data
- PDF Reading:
read-pdf: Read and extract text from local and online PDF files
All tools are implemented using FastMCP decorators with automatic registration, built-in validation, and enhanced error handling.
Quick Start
Prerequisites
- Python 3.10 or higher
- UV package manager
Installation
Install from PyPI (Recommended by UV)
uv pip install all-in-mcp
Server Options
The main proxy server supports multiple MCP backends through environment variables:
# Run with APaper academic tools enabled
APAPER=true uv run all-in-mcp
# Run with GitHub repository tools enabled
GITHUB_REPO_MCP=true uv run all-in-mcp
# Run with both backends enabled
APAPER=true GITHUB_REPO_MCP=true uv run all-in-mcp
# Run standalone APaper server (academic tools only)
uv run apaper
Integration with MCP Clients
Add the servers to your MCP client configuration:
VSCode Configuration
{
"servers": {
"all-in-mcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "all-in-mcp"],
"env": {
"APAPER": "true",
"GITHUB_REPO_MCP": "true"
}
}
}
}
Claude Code Configuration
{
"mcpServers": {
"all-in-mcp": {
"type": "stdio",
"command": "uv",
"args": ["run", "all-in-mcp"],
"env": {
"APAPER": "true",
"GITHUB_REPO_MCP": "true"
}
}
}
}
Debugging & Testing
MCP Inspector
Use the official MCP Inspector to debug and test server functionality:
# Debug the main proxy server with APaper tools
APAPER=true npx @modelcontextprotocol/inspector uv run all-in-mcp
# Debug with all backends enabled
APAPER=true GITHUB_REPO_MCP=true npx @modelcontextprotocol/inspector uv run all-in-mcp
# Debug standalone APaper server
npx @modelcontextprotocol/inspector uv 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.
Quick Development Setup
# 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file all_in_mcp-0.3.1.tar.gz.
File metadata
- Download URL: all_in_mcp-0.3.1.tar.gz
- Upload date:
- Size: 29.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66fe0f912ecf110868585f3f7c24397532cb6288067eb8c0d610c2ba0592ad20
|
|
| MD5 |
3e9e6133a4f53d97358baf63cc80e7d6
|
|
| BLAKE2b-256 |
2e88f83746b09e5ab5e9270993a10b9efe94df8ace52c32e2939c8440bbe20ad
|
Provenance
The following attestation bundles were made for all_in_mcp-0.3.1.tar.gz:
Publisher:
release.yml on jiahaoxiang2000/all-in-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
all_in_mcp-0.3.1.tar.gz -
Subject digest:
66fe0f912ecf110868585f3f7c24397532cb6288067eb8c0d610c2ba0592ad20 - Sigstore transparency entry: 433580794
- Sigstore integration time:
-
Permalink:
jiahaoxiang2000/all-in-mcp@2c6912db6e1783d9e3531325e6a792bb598fbc5f -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/jiahaoxiang2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2c6912db6e1783d9e3531325e6a792bb598fbc5f -
Trigger Event:
push
-
Statement type:
File details
Details for the file all_in_mcp-0.3.1-py3-none-any.whl.
File metadata
- Download URL: all_in_mcp-0.3.1-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6972a335a15a842688e11ae700e2163763f639ba2704eb9d64d0ad59c186aca1
|
|
| MD5 |
697592aaa970b9ee285782e4fffaad06
|
|
| BLAKE2b-256 |
08a6739bdb8cecc3e2a020be61279fed03291a809ae7e572c4984d4bd6dbd050
|
Provenance
The following attestation bundles were made for all_in_mcp-0.3.1-py3-none-any.whl:
Publisher:
release.yml on jiahaoxiang2000/all-in-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
all_in_mcp-0.3.1-py3-none-any.whl -
Subject digest:
6972a335a15a842688e11ae700e2163763f639ba2704eb9d64d0ad59c186aca1 - Sigstore transparency entry: 433580803
- Sigstore integration time:
-
Permalink:
jiahaoxiang2000/all-in-mcp@2c6912db6e1783d9e3531325e6a792bb598fbc5f -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/jiahaoxiang2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2c6912db6e1783d9e3531325e6a792bb598fbc5f -
Trigger Event:
push
-
Statement type: