Skip to main content
Glama
README.md
# 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:

```
ANTHROPIC_API_KEY=""  # Enter your Anthropic API secret key
```

### 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

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

read_doc_contents and edit_document perform clearly distinct operations: reading versus modifying content. There is no functional overlap between the two tools.

Naming Consistency4/5

Both names follow a verb_noun snake_case pattern, but 'doc' in read_doc_contents is abbreviated while 'document' is spelled out in edit_document. This is a minor inconsistency rather than a systemic problem.

Tool Count3/5

Two tools is borderline: the set is small but each tool serves a clear purpose. It feels thin for a general document server, though it could be sufficient for a very narrow read/edit-only use case.

Completeness2/5

The domain appears to be document manipulation, but the surface is missing obvious operations like creating, deleting, listing, or searching documents. Edit is also limited to simple string replacement, which leaves significant workflow gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues