Skip to main content
Glama
SDias14

MCP Chat

by SDias14
README.md
# MCP Chat

MCP Chat is a command-line interface application that enables interactive chat capabilities with AI models through the Google Gemini API. The application supports document retrieval, command-based prompts, and extensible tool integrations via the MCP (Model Control Protocol) architecture.

## Prerequisites

- Python 3.9+
- Google Gemini API Key

## Setup

### Step 1: Configure the environment variables

1. Create or edit the `.env` file in the project root and verify that the following variables are set correctly:

```
GEMINI_API_KEY=""  # Enter your Google Gemini API key
GEMINI_MODEL="gemini-3.6-flash"  # The Gemini model to use
```

> You can generate an API key from [Google AI Studio](https://aistudio.google.com/app/apikey).

### Step 2: Install dependencies

#### Option 1: Setup with uv (Recommended)

[uv](https://github.com/astral-sh/uv) is a fast Python package installer and resolver.

1. Install uv, if not already installed:

```bash
pip install uv
```

2. Create and activate a virtual environment:

```bash
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
```

3. Install dependencies:

```bash
uv pip install -e .
```

4. Run the project

```bash
uv run main.py
```

#### Option 2: Setup without uv

1. Create and activate a virtual environment:

```bash
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
```

2. Install dependencies:

```bash
pip install google-genai python-dotenv prompt-toolkit "mcp[cli]==1.8.0"
```

3. Run the project

```bash
python main.py
```

## Usage

### Basic Interaction

Simply type your message and press Enter to chat with the model.

### Document Retrieval

Use the @ symbol followed by a document ID to include document content in your query:

```
> Tell me about @deposition.md
```

### Commands

Use the / prefix to execute commands defined in the MCP server:

```
> /summarize deposition.md
```

Commands will auto-complete when you press Tab.

## Development

### Adding New Documents

Edit the `mcp_server.py` file to add new documents to the `docs` dictionary.

### Implementing MCP Features

To fully implement the MCP features:

1. Complete the TODOs in `mcp_server.py`
2. Implement the missing functionality in `mcp_client.py`

### Linting and Typing Check

There are no lint or type checks implemented.

TDQS

B3.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools are clearly distinct: one reads document contents, the other edits by replacing a string. No ambiguity exists between them.

Naming Consistency4/5

Both use a verb_noun pattern (read_doc_contents, edit_document), but the noun part is slightly inconsistent ('doc_contents' vs 'document'). Minor deviation from perfect consistency.

Tool Count3/5

With only 2 tools, the server feels thin for a document-focused interface. It is borderline on the lower end of acceptable, as a minimal read/edit pair can work but lacks breadth.

Completeness2/5

The surface is severely limited—no create, delete, list, or search capabilities. For a document management domain, this leaves major gaps that would require agents to use other tools or fail.

Maintenance

ActivitySlowing
ResponsivenessNo issues