An MCP server for intelligent searching of Software Engineering papers on arXiv, with advanced filtering and sorting.
-
Clone the repository
git clone https://github.com/emi-dm/Arxiv-MCP.git cd Arxiv-MCP
-
Choose your setup method:
If you use Cursor, you can integrate this MCP server as follows:
- Open Settings in Cursor.
- Go to Tools & Integrations.
- In the MCP section, add a new server configuration.
- Use the same configuration as described for VS Code:
- For Docker, use the Docker configuration block from the VS Code section.
- For local development, use the uv configuration block from the VS Code section.
The process is analogous to the VS Code setup—just copy the relevant configuration and paste it into Cursor's MCP server settings.
Before you begin, make sure you have installed:
- Python (3.11 or higher)
- uv (a fast Python package installer and resolver)
- Node.js and npm (for debugging with MCP Inspector)
Or alternatively:
- Docker (for containerized deployment)
You can run the server in VS Code using Docker (recommended, you don't need the code locally), locally with uv, or consume it directly from the cloud.
You don't need to install anything or clone the repository. You can consume the MCP server directly using the following configuration in .vscode/mcp.json
or in your compatible MCP client:
{
"servers": {
"arxiv-mcp": {
"url": "https://arxiv-mcp-sq0a.onrender.com/mcp/"
}
}
}
This works in both VS Code and Cursor and other compatible MCP clients.
Note: If you use Docker, you do not need to have the code in your local directory. The container will run everything needed.
-
Build the Docker image (only needed once or when you update the code):
docker build -t arxiv-searcher-mcp .
-
Create
.vscode/mcp.json
: In your project root, create the.vscode
folder if it doesn't exist. Inside, create a file namedmcp.json
. -
Add the Docker server configuration: Copy and paste the following configuration into
.vscode/mcp.json
:{ "mcpServers": { "arxiv-search": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "arxiv-searcher-mcp" ] } } }
-
Start the server from VS Code
-
Create
.vscode/mcp.json
: In your project root, create the.vscode
folder if it doesn't exist. Inside, create un archivo llamadomcp.json
. -
Agrega la configuración local del servidor: Copia y pega la siguiente configuración en
.vscode/mcp.json
:{ "servers": { "arxiv-search": { "command": "uv", "args": [ "run", "${workspaceFolder}/arxiv_searcher/arxiv_mcp.py" ] } } }
-
Inicia el servidor desde VS Code
This MCP server exposes several useful tools for searching, analyzing, and exporting arXiv papers in the field of software engineering:
-
search_papers: Searches arXiv papers filtered by the Software Engineering category (
cs.SE
).- Parameters:
query
,max_results
,start_date
,end_date
,sort_by_relevance
,category
- Returns: Dictionary with the query used and the results.
- Parameters:
-
get_paper_details: Gets detailed information about a paper by its arXiv ID.
- Parameters:
arxiv_id
- Returns: Title, authors, abstract, dates, categories, DOI, etc.
- Parameters:
-
search_by_author: Searches for papers by author, with optional category and date filters.
- Parameters:
author_name
,max_results
,category
,start_date
,end_date
- Returns: List of found papers.
- Parameters:
-
analyze_paper_trends: Analyzes trends in a collection of papers (authors, keywords, timeline, categories).
- Parameters:
papers
,analysis_type
- Returns: Statistics and analysis according to the requested type.
- Parameters:
-
find_related_papers: Finds related papers based on the title of a reference paper, using keyword similarity.
- Parameters:
paper_title
,max_results
,similarity_threshold
,category
- Returns: List of similar papers.
- Parameters:
-
download_paper_pdf: Downloads the PDF of an arXiv paper.
- Parameters:
pdf_url
,save_path
,filename
- Returns: Path and status of the download.
- Parameters:
-
export_search_results: Exports search results to various formats (
bibtex
,csv
,json
,markdown
).- Parameters:
results
,format
,filename
,save_path
- Returns: Path to the exported file and a preview of the content.
- Parameters:
-
get_arxiv_categories: Returns the list of arXiv categories and their descriptions.
- Parameters: None
- Returns: Dictionary of categories and usage notes.
Here's how you can call the tool from a compatible MCP client:
@arxiv-search.search_papers(query="secure software development lifecycle from 2022", max_results=5)
This will search for the 5 most relevant papers since 2022 in the software engineering category.
Set up your virtual environment and install the required packages:
uv sync
Or using Docker:
docker build -t arxiv-searcher-mcp .
Start the server directly from your terminal:
uv run --directory arxiv_searcher/ arxiv_mcp.py
For an interactive debugging experience, use MCP Inspector:
# Option 1: Using MCP Inspector
npx @modelcontextprotocol/inspector uv run --directory arxiv_searcher/arxiv_mcp.py
# Option 2: Using fastmcp CLI
fastmcp dev arxiv_searcher/arxiv_mcp.py
When launched, the Inspector will provide a URL to view and debug server communications in your browser. Don't forget to copy the session token!
Developed by emi-dm.
💡 Contributions and improvements are welcome! Feel free to open a Pull Request (PR) if you have suggestions or enhancements.
This project is licensed under the MIT License.