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