AI交互式聊天工具

MCP Chat 是一个支持与AI模型进行交互式聊天的命令行界面应用,支持Anthropic Claude API和本地LLMs,具备文档检索和命令提示功能。

  • by Devisri-B
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Devisri-B/MCP-practice

使用说明

MCP聊天

MCP Chat是一个命令行界面应用程序,支持与AI模型的交互式聊天功能。该应用程序同时支持这两种功能 API人类克劳德 和 本地LLM (通过Docker/Ollama)。它包括文档检索、基于命令的提示和通过MCP(模型控制协议)架构的可扩展工具集成。

先决条件

  • Python 3.9+
  • 选项A: Anthropic API Key(适用于Claude车型)
  • 选项B: 带有本地LLM的Docker桌面(Ollama、LM Studio等)

设置

步骤1:配置环境变量

  1. 创建或编辑 .env 项目根目录中的文件:

对于人物克劳德(云):

USE_LOCAL_LLM=0
CLAUDE_MODEL="claude-sonnet-4-5"
ANTHROPIC_API_KEY="your-anthropic-api-key-here"
USE_UV=1

对于本地LLM(Docker/Ollama):

USE_LOCAL_LLM=1
LOCAL_LLM_BASE_URL="http://localhost:11434/v1"
LOCAL_LLM_MODEL="qwen3:4B-UD-Q4_K_XL"
LOCAL_LLM_API_KEY="not-needed"
USE_UV=1

步骤2:使用Docker设置本地LLM(可选)

如果要使用本地模型而不是Anthropic的API:

在Docker中使用Ollama

  1. 拉着Ollama跑:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
  1. 下载模型(例如Qwen、Llama、Mistral):
docker exec -it ollama ollama pull qwen3:4b
  1. 列出可用型号:
docker exec -it ollama ollama list
  1. 更新您的 .env 使用型号名称和端口:
USE_LOCAL_LLM=1
LOCAL_LLM_BASE_URL="http://localhost:11434/v1"
LOCAL_LLM_MODEL="qwen3:4b"

常见本地LLM端口

服务器 默认端口 基本URL
奥拉马 11434 http://localhost:11434/v1
LM工作室 1234 http://localhost:1234/v1
自定义 各不相同 http://localhost:PORT/v1

步骤3:安装依赖项

选项1:使用紫外线设置(推荐)

紫外线 是一个快速的Python包安装程序和解析器。

  1. 如果尚未安装,请安装uv:
pip install uv
  1. 创建并激活虚拟环境:
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项:
uv pip install -e .
  1. 运行项目:
uv run main.py

选项2:无紫外线设置

  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项:
pip install anthropic openai python-dotenv prompt-toolkit "mcp[cli]==1.8.0"
  1. 运行项目:
python main.py

用法

基本交互

只需键入您的信息,然后按Enter键即可与模特聊天。

文献检索

使用@符号后跟文档ID在查询中包含文档内容:

> Tell me about @deposition.md

命令

使用/前缀执行MCP服务器中定义的命令:

> /summarize deposition.md

按Tab键时,命令将自动完成。

发展

添加新文档

编辑 mcp_server.py 将新文档添加到 docs 字典。

实施MCP功能

要完全实现MCP功能:

  1. 在中完成TODO mcp_server.py
  2. 实现中缺失的功能 mcp_client.py

在模型之间切换

要在Anthropic Claude和您当地的法学硕士之间切换,只需更改 USE_LOCAL_LLM 设置在你的 .env 文件:

设置 使用的模型
USE_LOCAL_LLM=0 Anthropic Claude(需要API密钥)
USE_LOCAL_LLM=1 通过Docker/Ollama实现本地LLM

故障排除

本地LLM连接问题

  1. 验证Docker是否正在运行:

    docker ps
    
  2. 检查模型是否已加载:

    docker exec -it ollama ollama list
    
  3. 测试API端点:

    curl http://localhost:11434/v1/models
    
  4. 检查容器日志:

    docker logs ollama
    

常见错误

错误 解决方案
Connection refused 确保Docker容器正在运行并且端口正确
Model not found 拉动模型: docker exec -it ollama ollama pull MODEL_NAME
401 Unauthorized 检查API密钥(用于Anthropic)或设置 LOCAL_LLM_API_KEY="not-needed"

敲击和打字检查

没有实施棉绒或类型检查。