mcp_server_document_manager
# 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
Scored across 2 tools
Read and edit are fundamentally distinct operations with no overlap. An agent can easily determine which tool to use based on whether it needs to view or modify a document.
Both tools follow the same verb_noun pattern: read_doc and edit_doc. The naming is perfectly consistent and predictable.
With only 2 tools, the set feels thin for a 'document manager,' but it is not extreme. The count is borderline and could be acceptable only if the server is intentionally scoped to just read and edit operations.
The tool surface lacks obvious document management operations such as create, delete, list, or search. Agents would hit dead ends if they need to add or remove documents, making the server significantly incomplete for its stated domain.