CLI聊天应用

MCP Chat是一个命令行界面(CLI)应用程序,通过提供商无关的架构实现与大型语言模型的交互式聊天,支持文档检索和命令提示等功能。

  • by PS-Rishil-Bhatt
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 PS-Rishil-Bhatt/RAG-Level-2-MCP-INTRO-ANTHROPIC

使用说明

MCP聊天

MCP Chat是一个命令行界面(CLI)应用程序,它使用 与提供者无关的架构.
它当前配置为与 Groq主持的模特 并且被设计为易于扩展到其他LLM提供商。

该应用程序支持:

  • 交互式对话聊天
  • 文献检索
  • 基于命令的提示
  • 通过可扩展的工具集成 MCP(模型控制协议) 建筑

先决条件

  • Python 3.9+
  • Groq API密钥

设置

步骤1:配置环境变量

创建或编辑 .env 在项目根目录中创建文件,并配置以下变量:

LLM_PROVIDER=groq

GROQ_API_KEY="sk_..."
GROQ_MODEL="deepseek-r1-distill-llama-70b"

步骤2:安装依赖项

选项1:使用紫外线设置(推荐)
uv是一个快速的Python包安装程序和解析器。

如果尚未安装,请安装uv:

pip install uv

创建并激活虚拟环境:

uv venv
source .venv/bin/activate      # On Windows: .venv\Scripts\activate

安装依赖项:

uv pip install -e .

运行应用程序:

uv run main.py

选项2:无紫外线设置

创建并激活虚拟环境:

python -m venv .venv
source .venv/bin/activate      # On Windows: .venv\Scripts\activate

安装依赖项:

pip install python-dotenv prompt-toolkit groq "mcp[cli]==1.8.0"

运行应用程序:

python main.py

用法

基本相互作用
键入您的信息,然后按Enter键:

> Explain the MCP architecture

文献检索
使用 @ 在查询中包含文档内容的符号:

> Tell me about @deposition.md

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

> /summarize deposition.md

命令支持通过Tab键自动完成。


Groq兼容性说明

该项目使用基于文本的工具调用协议来实现Groq兼容性。

当模型请求执行工具时,它会使用以下格式进行响应:

TOOL_CALL:
tool_name
{ "argument": "value" }

执行流程:

  1. 工具请求已被解析。
  2. MCP客户端执行该工具。
  3. 工具结果作为辅助可见文本注入。
  4. 模型继续推理。

这避免了对特定于提供者的函数调用API的依赖,并保持了系统的可移植性。


架构概述

main.py
 └── LLM Factory
       └── GroqLLM
            ↓
         CliChat
            ↓
           Chat
            ↓
       ToolManager
            ↓
        MCP Clients

LLM在启动期间实例化一次,并注入聊天运行时。


发展

添加新文档

编辑 mcp_server.py 并将条目添加到 docs 字典。

添加或修改工具

  • 在MCP服务器中定义工具。
  • 实现逻辑 mcp_client.py.
  • 确保输出以纯文本或JSON格式返回。

添加新的LLM提供程序

  • 在下创建新适配器 core/.
  • 实施a chat(messages, tools) 界面。
  • 在LLM工厂中注册提供者。
  • 通过选择 LLM_PROVIDER 环境变量。

过梁和类型检查

当前未配置linting或静态类型检查。


设计目标

  • 代理优先架构
  • 显式工具执行
  • 的确定性行为
  • 与提供商无关的LLM集成
  • 易于扩展