MCP Chat
# MCP Chat
MCP Chat is a command-line interface application that enables interactive chat capabilities with AI models through the Anthropic API. The application supports document retrieval, command-based prompts, and extensible tool integrations via the MCP (Model Control Protocol) architecture.
## Prerequisites
- Python 3.9+
- Anthropic 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:
```
CLAUDE_MODEL="claude-sonnet-4-5"
ANTHROPIC_API_KEY="" # Enter your Anthropic API secret key
# Set to 1 if you're using uv to run the project
# Set to 0 if you're *not* using uv
USE_UV=1
```
### 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 anthropic 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
Scored across 2 tools
The two tools are completely distinct: one reads document contents, the other edits them. There is no overlap or ambiguity in their purposes.
Both names follow a verb_noun pattern, but one uses the abbreviation 'doc' while the other uses 'document', and one refers to 'contents' while the other uses 'document'. Minor inconsistency, but the pattern is still readable and predictable.
With only two tools, the server feels thin for a document-related service. While each tool has a clear purpose, the low count is borderline for being considered a well-scoped set.
The server supports reading and editing but lacks create, delete, or listing capabilities. Editing is limited to string replacement, which restricts the possible workflows agents can perform.