Skip to main content
Glama
Ruoth1111

ai-research-assistant-mcp

by Ruoth1111
README.md
# AI Research Assistant - MCP Server

An implementation of a **Model Context Protocol (MCP)** server built in Python using the `FastMCP` framework. This server acts as an AI Research Assistant, providing tools, resources, and prompt templates to help LLM clients (like Claude Desktop) read, write, and summarize research notes stored in a local flat-file database.

---

## What the Project Does

This MCP server exposes the following capabilities to any compatible LLM client:

### 1. Tools (`tools`)
*   **`add_research(research: str)`**: Appends a new line of research notes or text to the local database file (`research.txt`).
*   **`read_research()`**: Reads and returns the entire contents of the research database. If the file is empty, it returns a message indicating no research has been saved yet.

### 2. Resources (`resources`)
*   **`research://latest`**: A dynamic URI resource that retrieves only the latest research entry (the last line of the `research.txt` file).

### 3. Prompts (`prompts`)
*   **`research_summary_prompt`**: A prompt template that reads the current contents of `research.txt` and automatically formats a prompt asking the AI model to summarize the collected research.

---

## Directory Structure

*   **`main.py`**: The entry point of the MCP server implementing the tools, resources, and prompts using FastMCP.
*   **`research.txt`**: The local storage file containing the research notes.
*   **`pyproject.toml`**: The Python project configuration defining metadata and dependencies (`mcp[cli]`).
*   **`uv.lock`**: The lockfile for deterministic dependency resolution via `uv`.

---

## Setup Instructions

### Prerequisites
*   **Python**: Version `3.12` or higher (configured via `.python-version`).
*   **uv**: It is highly recommended to use `uv` for fast dependency management and running the server. If you don't have it, install it using:
    ```bash
    curl -LsSf https://astral.sh/uv/install.sh | sh
    ```

### Installation
1. Clone or navigate to the project directory:
   ```bash
   cd /Users/gaganchaudhary/mcp-server-demo
   ```
2. Create the virtual environment and install dependencies:
   ```bash
   uv sync
   ```

---

## Running the Server

### 1. Developer Inspection & Testing (Recommended)
To test and interact with the server interactively using the **MCP Inspector** web interface, run:
```bash
uvx mcp dev main.py
```
This command starts the server and hosts a visual inspector tool locally (typically at `http://localhost:5173`) where you can trigger tools, read resources, and test prompts.

### 2. Standard Run Command
To run the server directly on standard input/output (stdio) transport:
```bash
uv run main.py
```

---

## Client Integration

To integrate this MCP server with **Claude Desktop**, add it to your configuration file.

### Configuration File Location
*   **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
*   **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

### Configuration Content
Open the configuration file and add the `ai-research-assistant` server under the `mcpServers` object:

```json
{
  "mcpServers": {
    "ai-research-assistant": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/gaganchaudhary/mcp-server-demo",
        "run",
        "main.py"
      ]
    }
  }
}
```

After modifying the configuration file, restart **Claude Desktop**. You will see the new hammer icon indicating that the AI Research Assistant tools are available!

TDQS

C2.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools are clearly distinct: one for adding research, one for reading research. No overlap in purpose, making selection unambiguous for an agent.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern ('add_research', 'read_research'), making the naming predictable and easy to understand.

Tool Count3/5

With only 2 tools, the server feels thin for a research assistant, but it may suffice for a simple file-based read/write system. The count is acceptable but on the low end.

Completeness2/5

The tool set is incomplete: it lacks update, delete, search, or any organizational operations. An agent cannot manage or modify research after adding, leading to dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues