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.
- Python 3.9+
- Anthropic API Key
- Create or edit the
.envfile in the project root and verify that the following variables are set correctly:
ANTHROPIC_API_KEY="" # Enter your Anthropic API secret key
uv is a fast Python package installer and resolver.
- Install uv, if not already installed:
pip install uv- Create and activate a virtual environment:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
uv pip install -e .- Run the project
uv run main.py- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install anthropic python-dotenv prompt-toolkit "mcp[cli]==1.8.0"- Run the project
python main.pySimply type your message and press Enter to chat with the model.
Use the @ symbol followed by a document ID to include document content in your query:
> Tell me about @deposition.md
Use the / prefix to execute commands defined in the MCP server:
> /summarize deposition.md
Commands will auto-complete when you press Tab.
Edit the mcp_server.py file to add new documents to the docs dictionary.
To fully implement the MCP features:
- Complete the TODOs in
mcp_server.py - Implement the missing functionality in
mcp_client.py
There are no lint or type checks implemented.
- Python version 3.12.0
- mcp version 2.1.1
- fastmcp module version 4.0.0
The import statement in mcp_server.py was updated to
from fastmcp import FastMCP
from pydantic import Field
mcp = FastMCP("DocumentMCP")- Use following commands to run the mcp server and inspector
uv run mcp_server.py - followed by another command in separate terminal *
uv run fastmcp dev inspector mcp_server.py Follow these steps to run main.py with the example prompt used for tool-calling and to understand recent fixes applied in this repo.
-
Setup virtualenv and activate it (if not already):
python -m venv .venv source .venv/bin/activate -
Install dependencies (use your preferred method):
pip install -r requirements.txt # or uv pip install -e .
-
Run
main.py(the CLI will prompt for input):uv run main.py
-
Example prompt to trigger tool calling:
What is the content of report.pdf -
Fixes applied in this workspace (already committed):
core/tools.py: convertedinputSchema→input_schemaandisError→is_errorto match Pydantic/typed-field names.core/claude.py: removed unsupportedtemperaturekeyword frommessages.create(...)call to match the installed Anthropics client API.
-
Troubleshooting tips:
- If you see an AttributeError on model fields (e.g.,
'Tool' object has no attribute 'inputSchema'), switch camelCase references to snake_case (e.g.,input_schema). - If you see TypeError: unexpected keyword argument, inspect the client method signature and remove unsupported params.
- Search the repo for common camelCase names:
rg "inputSchema|isError|temperature" || grep -R "inputSchema\|isError\|temperature" .
- If you see an AttributeError on model fields (e.g.,