Skip to main content
Glama
khushisonwane23

AI Research Assistant MCP

README.md
# AI Research Assistant MCP

An **MCP-powered AI research assistant** for discovering, understanding, comparing, and organizing academic papers.

The server connects to **arXiv** for paper discovery and uses **Gemini** to perform research-oriented analysis. It is designed to help researchers move from finding papers to understanding their methods, limitations, and potential research gaps.

## Features

### šŸ”Ž Paper Discovery

Search arXiv using a research topic or keyword.

The server returns:

* Paper title
* Authors
* Abstract
* Publication date
* Updated date
* arXiv URL
* PDF URL

### šŸ“„ Paper Retrieval

Retrieve detailed information about a specific paper using its arXiv ID or URL.

### šŸ“ Paper Summarization

Generate a structured research-oriented summary covering:

* Research problem
* Proposed approach
* Key results
* Main contribution
* Why the work matters

### āš–ļø Paper Comparison

Compare multiple papers across:

* Research problem
* Core method
* Model/retrieval architecture
* Dataset or evaluation
* Results
* Strengths
* Weaknesses
* Differences
* Common findings
* Research opportunities

### šŸ”¬ Methodology Analysis

Extract and explain the methodology of a paper, including:

* Research objective
* Architecture
* Main technique
* Data used
* Training/retrieval process
* Evaluation method
* Technical components

### āš ļø Limitation Analysis

Analyze papers for:

* Explicit limitations
* Methodological weaknesses
* Evaluation limitations
* Dataset limitations
* Generalization concerns
* Computational concerns
* Future research questions

The assistant distinguishes between limitations explicitly supported by the paper and potential research questions inferred from the available information.

### šŸ’” Research Gap Discovery

Given a research topic and multiple papers, identify **potential research gaps** and provide:

* Gap
* Evidence from the literature
* Why the gap matters
* Possible research question
* Possible experiment
* Expected contribution

The system is instructed not to present an unverified gap as an established fact.

### šŸ’¾ Research Library

Papers can be saved locally to create a personal research library.

Available operations include:

* Save a paper
* List saved papers
* Search saved papers

Saved papers are stored in `saved_papers.json`.

## Architecture


                 AI Client
                    │
                    │ MCP
                    ā–¼
          ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
          │  AI Research        │
          │  Assistant Server   │
          ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                     │
             ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
             │                │
             ā–¼                ā–¼
           arXiv            Gemini
        Paper Search      AI Analysis
             │                │
             ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                     ā–¼
              Research Insights


The server is implemented with **FastMCP** and exposes research capabilities as MCP tools.

## MCP Tools

The current server provides:

search_papers()
get_paper()
summarize_paper()
compare_papers()
extract_methodology()
extract_limitations()
find_research_gaps()
save_paper()
list_saved_papers()
search_saved_papers()


## Technology Stack

* Python 3.11+
* FastMCP
* Model Context Protocol (MCP)
* arXiv API
* Google Gemini API
* Requests
* JSON-based local storage

## Project Structure

```text
research-assistant/
│
ā”œā”€ā”€ src/
│   └── research_assistant/
│       └── __init__.py
│
ā”œā”€ā”€ server.py
ā”œā”€ā”€ pyproject.toml
ā”œā”€ā”€ README.md
ā”œā”€ā”€ .gitignore
└── .python-version
```

## Setup

Install the project dependencies with:

```bash
uv sync
```

Set your Gemini API key as an environment variable:

```text
GEMINI_API_KEY=your_api_key
```

Do not commit API keys or `.env` files to GitHub.

## Running the Server

Run the MCP server locally:

```bash
uv run server.py
```

## Testing with MCP Inspector

Run:

```bash
uv run fastmcp dev inspector server.py
```

The MCP Inspector can then be used to test the available tools and verify their responses.

## Example Workflow

A typical research workflow can look like:


Research Topic
      ↓
Search Papers
      ↓
Select Relevant Papers
      ↓
Retrieve Paper Details
      ↓
Summarize Papers
      ↓
Compare Papers
      ↓
Analyze Methodology
      ↓
Analyze Limitations
      ↓
Identify Potential Research Gaps
      ↓
Save Important Papers


For example:
text
"Find papers about retrieval augmented generation
and identify potential research gaps."


The assistant can search the literature, retrieve relevant papers, analyze them, and use the available paper information to identify potential research directions.

## Research Focus

The project is being developed with a particular interest in **Generative AI and Retrieval-Augmented Generation (RAG)** research.

Potential future research workflows include studying:

* CRAG
* Self-RAG
* RAG evaluation
* Retrieval quality
* Hallucination reduction
* Semantic retrieval
* Conflicting evidence
* Research-paper comparison
* Literature-gap discovery

## Current Status

🚧 **Active development**

Current capabilities focus on:

**Paper discovery → Paper analysis → Paper comparison → Research-gap exploration → Personal paper library**

Future versions can extend this into deeper paper-level analysis, full-text research, retrieval over saved papers, and more advanced research workflows.

## Author

**Khushi Sonwane**

Built as a hands-on project exploring **Generative AI, MCP, academic research workflows, and RAG systems**.

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation5/5

Each tool addresses a distinct research task: searching external papers, retrieving details, summarizing, comparing, extracting methodology, managing a personal library, identifying limitations, finding gaps, and saving papers. No two tools overlap in intent; even summarize_paper and extract_methodology focus on different aspects (overall summary vs. specific technical approach).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., search_papers, get_paper, list_saved_papers, find_research_gaps). The verbs clearly describe the action and the nouns the target, making the naming predictable and easy to parse.

Tool Count5/5

With 10 tools, the server is well-scoped for a research assistant. Each tool serves a necessary function in the search-analyze-save pipeline, and the count is neither sparse nor bloated, matching the domain scope appropriately.

Completeness4/5

The tool surface covers the core research workflow: search, retrieve, summarize, compare, extract methodology, identify limitations, find gaps, and manage a saved library. The only minor omission is a removal/delete operation for saved papers, but this does not create a dead end for typical use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues