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