ArXiv Research Assistant
Enables automated searching of ArXiv papers, extraction of key findings (problem, method, result) from abstracts using NLP heuristics, and storage of research data in structured datasets for further analysis.
Click on "Deploy 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., "@ArXiv Research Assistantfind recent papers on transformer architectures and extract their key methods"
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.
🎓 ArXiv Research Assistant (MCP Server)
A Research Agent server built with the Model Context Protocol (MCP). Search ArXiv, extract structured findings from papers, build a bibliography, and discover insights (keyword trends, topic clusters, a research timeline, an AI-written literature review) — all as tools an AI assistant can call directly, plus a full multi-page web dashboard with editing built in. Runs either as a local server launched by your IDE, or hosted remotely.
🚀 Features
Automated Search: Query ArXiv for papers on any topic.
Intelligent Extraction: heuristic keyword-based extraction (free), or LLM-based extraction via Claude Haiku 4.5 (higher accuracy, small API cost) — of the core "Problem", "Method", and "Result" from abstracts.
Bibliography: saved to a Postgres database (dedupes automatically by paper URL), fully editable — update or delete any saved paper.
Data Science Pipeline — all available as MCP tools, so an agent can trigger them directly:
Visualize Trends: bar chart of dominant research methods.
Research Timeline: stacked bar chart of how your saved papers' topics have shifted year over year.
Topic Modeling: NMF (Non-Negative Matrix Factorization) discovers hidden research themes, then a single Claude Haiku call turns the raw keyword clusters into short readable labels — labels can also be renamed manually at any time.
Literature Review: one Claude Haiku call synthesizes the whole bibliography into a cohesive, numbered-citation narrative review — editable directly, or regenerated from scratch.
Web Dashboard: a real multi-page site (Overview / Papers / Topics / Review) at the deployed root URL, gated behind a login page — not open to the whole internet.
Related MCP server: arXiv Research MCP Server
Installation
Prerequisites
Python 3.10+
A Postgres database — Neon has a free tier and is what this was built/tested against.
An Anthropic API key for the LLM-based tools (
extract_key_findings_llm, the topic-labeling step insidediscover_research_topics, andgenerate_literature_review). Not needed for the rest of the server.
Setup
Clone the repository:
git clone <your-repo-url> cd arxiv-research-mcpCreate a Virtual Environment:
python3 -m venv .venv source .venv/bin/activateInstall Dependencies:
pip install -r requirements.txtConfigure environment variables — copy
.env.exampleto.envand fill inDATABASE_URL(your Neon connection string) andANTHROPIC_API_KEY. LeaveMCP_SERVER_URL/MCP_AUTH_TOKENunset for local use.Initialize the database schema (one-time):
python db.py
⚙️ Configuration — Local (stdio)
Add the server to your IDE's MCP settings (e.g., mcp-servers.json in VS Code or Claude Desktop):
{
"mcpServers": {
"research-assistant": {
"command": "/absolute/path/to/your/arxiv-research-mcp/.venv/bin/python",
"args": [
"/absolute/path/to/your/arxiv-research-mcp/research_server.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/your/arxiv-research-mcp",
"DATABASE_URL": "postgresql://...",
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}Note: Replace the absolute paths with the actual full paths on your machine.
☁️ Configuration — Remote (hosted on Vercel)
This same server can run as a remote MCP endpoint instead of a process your IDE launches. It authenticates over OAuth rather than a static bearer token — clients like Claude.ai's "Add custom connector" only speak full OAuth for connectors that declare auth, so this server implements a minimal single-user authorization server (dynamic client registration + a login form) rather than expecting the client to accept a pasted token directly.
Deploy this repo to Vercel (it auto-detects the Python entrypoint
index.py).Set these Vercel environment variables:
DATABASE_URL,ANTHROPIC_API_KEY(same as local)MCP_SERVER_URL— the public URL this deployment is reachable at, e.g.https://<your-project>.vercel.appMCP_AUTH_TOKEN— the password you'll type into the login form during setup (not something you paste into the client). Generate one with:python -c "import secrets; print(secrets.token_urlsafe(32))"
In your MCP client (e.g. Claude.ai → Settings → Connectors → Add custom connector), enter the server URL as
https://<your-project>.vercel.app/mcp. The client will register itself and redirect you to a login page hosted by this server — enter theMCP_AUTH_TOKENthere to authorize it.
OAuth (and with it, the login gate) only activates when MCP_SERVER_URL is set. Leaving it unset — the local-dev default — means the deployed endpoint would be wide open, letting anyone who finds the URL call your tools and spend your Anthropic budget. Set both MCP_SERVER_URL and MCP_AUTH_TOKEN together for a real hosted deployment.
💡 Usage
Everything below is available as an MCP tool an agent can call directly — no separate terminal step needed. Just ask your AI Assistant things like:
"Find 5 papers on 'Reinforcement Learning from Human Feedback', extract their key findings, and save them to my bibliography."
"Now visualize the keyword trends in my bibliography, tell me the dominant research topics, and write me a literature review."
MCP Tools
search_arxiv(query, max_results)— Search ArXiv for papers.extract_key_findings(abstract)— Free, heuristic Problem/Method/Result extraction.extract_key_findings_llm(abstract)— Same extraction via Claude Haiku 4.5 — more accurate, small API cost.save_to_bibliography(paper_metadata)— Upsert a paper (with its findings) into the database, keyed by its PDF URL.update_paper(paper_id, ...)— Edit any field of a saved paper (title, authors, published, problem, method, result). Fields left unset are unchanged.delete_paper(paper_id)— Permanently remove a paper from the bibliography.visualize_keyword_trends()— Bar chart of common method keywords, returned as an inline image.visualize_research_trends()— Stacked bar chart of papers per topic per year, returned as an inline image.discover_research_topics(num_topics)— NMF topic modeling over the bibliography, plus Claude-generated readable labels for each topic.rename_topic(topic_id, label)— Manually rename a topic's label; applies to every paper sharing that topic, no recompute needed.generate_literature_review()— Synthesizes the whole bibliography into one narrative review with numbered[n]citations, via a single Claude Haiku call.update_literature_review(content)— Manually overwrite the saved review's text without regenerating it.
Web Dashboard
Once deployed (or run locally), visit the server's root URL in a browser — it's gated behind a login form using the same MCP_AUTH_TOKEN as the OAuth setup.
Overview (
/) — stat tiles, both charts, a recently-saved papers preview.Papers (
/dashboard/papers) — the full bibliography with search/sort, a Problem preview per row, and Edit/Delete actions. Each paper's edit page (/dashboard/papers/{id}/edit) exposes every field, including the full Problem/Method/Result text.Topics (
/dashboard/topics) — every discovered topic with its raw NMF keywords and paper count, an inline rename form per topic, and a Recompute Topics button.Review (
/dashboard/review) — the literature review in an editable textarea, with Save and Regenerate (regenerating warns first if you have unsaved manual edits).
Running the analysis scripts standalone
Each analysis tool is also a runnable CLI script, if you'd rather generate insights from the terminal directly (writes its output to a local file, for convenience — the MCP tools above never touch disk):
python analyze_references.py # -> method_keywords.png
python research_trends.py # -> research_trends.png
python topic_modeling.py # updates topic assignments in the database📂 Project Structure
research_server.py: The core MCP server — defines every tool listed above.index.py: Vercel entrypoint — exposes the same server over Streamable HTTP.db.py: Postgres access (schema, paper CRUD, topic updates, literature review cache).oauth_provider.py: Minimal single-user OAuth authorization server for the hosted deployment (dynamic client registration + a login form gated byMCP_AUTH_TOKEN).dashboard.py/dashboard_templates.py: The web dashboard's routes/CRUD logic and its Jinja2 templates, with their own login-cookie gate (also keyed byMCP_AUTH_TOKEN, separate from the OAuth flow above).llm.py: Claude Haiku 4.5 calls (structured-output extraction, topic labeling, literature review generation).chart_style.py: Shared matplotlib styling so every chart looks consistent.analyze_references.py: Keyword-frequency visualization (also thevisualize_keyword_trendstool).research_trends.py: Topic-over-time analysis (also thevisualize_research_trendstool).topic_modeling.py: Scikit-learn NMF topic modeling (also thediscover_research_topicstool).requirements.txt: Python dependencies.
Built with mcp, arxiv, anthropic, pandas, scikit-learn, Jinja2, and Neon Postgres.
This server cannot be deployed
Maintenance
Related MCP Connectors
ArXiv preprint search, daily category digest, and author-collaborator graph.
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Academic paper search, scientific literature, citation analysis, arXiv & semantic related-work.
Extract papers from ArXiv — titles, abstracts, authors, categories & PDF links. Monitor new AI, phys
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered academic paper discovery, search, and analysis from arXiv with advanced features like semantic search, citation network analysis, and multi-format exports (BibTeX, RIS, JSON, CSV). Provides intelligent research assistance through specialized AI prompts for summarization, trend tracking, and literature review automation.17MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language search and analysis of arXiv academic papers with AI-powered relevance ranking, full-text extraction, and support for multiple integrations like Claude and LangChain.MIT
- AlicenseCqualityDmaintenanceEnables searching, extracting, and analyzing over 2.4 million arXiv papers, with PDF extraction via GROBID and citation network building through Semantic Scholar integration.2883 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables searching ArXiv papers, fetching paper details, daily category digests, and exploring author collaboration graphs.-