fastchat-mcp 是一个 Python 聊天客户端,基于 mcp[cli],用于通过多种协议连接 MCP 服务器,专为集成语言模型而设计。它提供了一种简单、直观、可配置的方式来与 MCP 服务器交互,并使用自然语言进行自定义聊天。
用途
该工具旨在简化与 MCP(Model Context Protocol)服务器的交互过程,允许用户通过自然语言对话来使用 MCP 服务器提供的工具、资源和提示。它适合需要将多个 MCP 服务器集成到聊天流程中的开发者和应用场景。
主要能力
- 完全流式聊天:通过传递查询实现流式响应。
- MCP 集成:与 MCP 服务器的工具、资源、提示集成,形成完整的客户端工作流。
- 认证系统:使用 mcp-oauth 和环境配置支持简单认证,也支持 header 授权。
- LLM 网关:使用 LiteLLM 作为集成 LLM 网关,支持任何 LiteLLM 支持的模型标识符。
- 传输协议:支持 httpstream 和 stdio 传输协议。注意:当前不支持 SSE(Server-Sent Events)协议。
- 控制台使用:通过 TerminalChat().open() 轻松使用控制台。
- 响应管理:可通过系统提示控制响应和 MCP 服务选择。
- 数据持久化:通过 fastchat.config.json 中定义的 API 建立数据库连接,集成到工作流中。
使用方式
安装:可使用 pip 安装 MCP 客户端。
配置:
- 需要创建 .env 文件在项目根目录,包含认证凭证,如 CRIPTOGRAFY_KEY 和各个 LLM 提供商的 API 密钥(如 OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY 等)。
- 需要创建 fastchat.config.json 文件在项目根目录,定义可用的 MCP 服务器及其连接方式(protocol、url、auth 等)。
- 可选配置:可提供额外的系统提示来修改响应行为。
使用示例:
- 创建聊天实例:chat = Fastchat(model="groq/llama-3.1-70b-versatile", ...)
- 默认模型为 "groq/openai/gpt-oss-120b"。
- 模型标识符需带提供商前缀,例如 groq/llama-3.1-70b-versatile。
API 与 WebSocket 集成:
- 提供 API 扩展,支持通过 JWT 令牌认证的 WebSocket 连接。
- 两个主要端点:用户(ACCESS TOKEN)和管理员(MASTER TOKEN)。
- 支持通过 additional_servers 参数传递额外 MCP 服务器。
- 浏览器兼容的额外服务器注入:可通过第一个 WebSocket 消息发送 additional_servers。
适用场景
- 需要将多个 MCP 服务器集成到聊天应用中的开发者。
- 希望通过自然语言与 MCP 服务器交互的用户。
- 需要灵活切换不同 LLM 提供商(如 OpenAI、Anthropic、Google、Groq 等)的场景。
- 需要实时 WebSocket 通信和认证的应用程序。
限制
- 项目处于活跃开发阶段,可能出现错误或意外行为。
- 当前不支持 SSE 协议。
- 系统要求 Python >= 3.11。
- 未来版本计划包括语音系统、快速数据库集成、内置 WebSocket 支持等。
其他信息
- 许可证:MIT License。
- 默认使用 LiteLLM 作为运行时提供商,模型/提供商选择由模型标识符和环境变量控制。
- 数据库连接设置定义在 fastchat.config.json 中。
- 如需测试 httpstream MCP 服务器,可使用 simple-mcp-server。