Skip to main content
Glama
khushiiagrawal

MCP Research Server

README.md
# MCP Research Assistant 🧠

A comprehensive Model Context Protocol (MCP) setup that provides powerful tools for research, file management, and web content fetching. This project integrates multiple MCP servers to enhance your AI assistant capabilities.

## ✨ Features

- **šŸ“š Research Tool**: Search and manage academic papers from arXiv
- **šŸ“ Filesystem Tool**: Browse, read, and manage project files
- **🌐 Fetch Tool**: Retrieve content from websites and APIs
- **šŸ¤– Multi-LLM Support**: Works with Claude, Gemini, and other AI models
- **šŸ’¾ Local Storage**: Automatically saves research data organized by topics

## šŸ› ļø Prerequisites

- Python 3.13 or higher
- `uv` package manager (recommended) or `pip`
- API keys for your chosen LLM providers
- Claude Desktop (for MCP integration)

## šŸ’» Quick Start

### 1. Clone and Setup

```bash
git clone <your-repo-url>
cd mcp_project
```

### 2. Install Dependencies

```bash
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create virtual environment and install dependencies
uv sync
```

### 3. Configure Environment Variables

Create a `.env` file in your project root:

```env
ANTHROPIC_API_KEY=your_anthropic_api_key_here
```

### 4. Configure Claude Desktop

Create or update your Claude Desktop configuration file:

**Location**: `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)

```json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "."
      ],
      "cwd": "/path/to/your/mcp_project"
    },
    "research": {
      "command": "/path/to/your/mcp_project/.venv/bin/python",
      "args": [
        "/path/to/your/mcp_project/research_server.py"
      ],
      "cwd": "/path/to/your/mcp_project"
    },
    "fetch": {
      "command": "/path/to/your/.local/bin/uvx",
      "args": ["mcp-server-fetch"],
      "cwd": "/path/to/your/mcp_project"
    }
  }
}
```

**Important**: Replace `/path/to/your/mcp_project` with your actual project path.

### 5. Restart Claude Desktop

Restart Claude Desktop completely to load the new configuration.

## šŸŽÆ How to Use

### Research Tool šŸ”¬

**Search for Papers:**
```
Search for 5 papers about machine learning
```

**Get Paper Details:**
```
Show me information about paper ID 1234.5678
```

**Browse Saved Papers:**
```
What papers do I have saved on physics?
```

### Filesystem Tool šŸ“

**Browse Files:**
```
List all files in my project directory
```

**Read Files:**
```
Show me the contents of research_server.py
```

**Create Files:**
```
Create a new Python script for data analysis
```

### Fetch Tool 🌐

**Get Web Content:**
```
Fetch the latest Python documentation
```

**API Calls:**
```
Get current weather data from an API
```

## šŸ“‹ Available Tools

### Research Server Tools

| Tool | Description | Parameters |
|------|-------------|------------|
| `search_papers` | Search arXiv for papers | `topic`, `max_results` |
| `extract_info` | Get paper details | `paper_id` |
| `get_available_folders` | List saved topics | None |

### Filesystem Server Tools

| Tool | Description |
|------|-------------|
| `read_file` | Read file contents |
| `write_file` | Write to files |
| `list_dir` | List directory contents |
| `delete_file` | Delete files |

### Fetch Server Tools

| Tool | Description |
|------|-------------|
| `fetch` | Fetch content from URLs |

## šŸ“ Project Structure

```
mcp_project/
ā”œā”€ā”€ research_server.py          # Main research MCP server
ā”œā”€ā”€ mcp_chatbot_L7.py          # Chatbot with LLM integration
ā”œā”€ā”€ pyproject.toml             # Project configuration
ā”œā”€ā”€ requirements.txt           # Python dependencies
ā”œā”€ā”€ uv.lock                   # Dependency lock file
ā”œā”€ā”€ papers/                   # Research data storage
│   └── [topic_name]/         # Organized by topic
│       └── papers_info.json  # Paper metadata
ā”œā”€ā”€ .env                      # Environment variables
└── README.md                 # This file
```

## šŸ”§ Configuration Details

### Research Server Configuration

The research server automatically:
- Creates topic-based directories in `papers/`
- Saves paper metadata as JSON files
- Provides search and retrieval functions
- Integrates with arXiv API

### Filesystem Server Configuration

The filesystem server:
- Operates within your project directory
- Provides full file management capabilities
- Uses relative paths for portability

### Fetch Server Configuration

The fetch server:
- Handles web requests and API calls
- Supports custom user agents
- Can ignore robots.txt restrictions



![MCP Research Assistant Working](final_working.png)

*Screenshot showing the MCP Research Assistant successfully running with all tools working*

## šŸ“ Development

### Adding New Tools

1. Edit `research_server.py` to add new functions
2. Use the `@mcp.tool()` decorator
3. Test with MCP Inspector
4. Update documentation

### Customizing LLM Behavior

1. Edit `mcp_chatbot_L7.py`
2. Modify tool descriptions and parameters
3. Add custom prompts and resources

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: extract_info retrieves information about a specific paper by ID, while search_papers finds papers on arXiv by topic and stores them. There is no overlap or ambiguity between these operations.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (extract_info and search_papers), using snake_case and descriptive action-object naming. The naming is predictable and readable throughout.

Tool Count2/5

With only 2 tools for a research server, the set feels thin and incomplete for the apparent scope. A research domain typically requires more operations like managing papers, updating information, or handling citations, making this count inadequate.

Completeness2/5

There are significant gaps in the tool surface for a research server. While search and retrieval are covered, missing operations include creating, updating, or deleting paper records, organizing topics, or accessing stored data beyond extraction, which will limit agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues