MCP聊天服务

基于FastAPI的MCP(Model Context Protocol)聊天服务,支持模型上下文协议和流式聊天API。

  • by blueworm-lee
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 blueworm-lee/mcp_chat

使用说明

FastAPI MCP聊天

  • 基于FastAPI的模型上下文协议(MCP)聊天服务。
  • 将Host(UI)、MCP Client和MCP Server完全分离的演示。
  • 在本演示中,您可以删除Host部分或连接到单独的API端点。 (POST /chat/stream)
  • 需要创建.env文件。
    • 必须使用GPT密钥(即使使用ANTHROPIC,在消息摘要部分也使用gpt-mini以降低成本)
    • ANTHROPIC键是可选的

要求

  • Python 3.8+
  • 紫外线 -Python包管理器
  • Linux/MacOS(支持systemd)

安装方法

1.安装uv(如果需要)

# Linux/macOS
curl -LsSf https://astral.sh/uv/install.sh | sh

2.项目克隆

git clone https://github.com/blueworm-lee/mcp-chat.git
cd mcp-chat

3.自动安装

chmod +x install/install.sh
./install/install.sh

安装脚本将执行以下操作:

  • 安装Python依赖性(uv sync)
  • 创建日志目录(/var/log/mcp_chat)
  • systemd服务注册

4.首选参数

创建.env文件:

OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ANTHROPIC_API_KEY="sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
TAVILY_API_KEY="tvly-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

注意:

  • OPENAI_API密钥:必需-用于消息摘要
  • ANTHROPIC_API_键:选择-使用Claude型号时需要
  • TAVILY_API_键:必需-使用Web搜索功能时需要(将搜索功能作为默认工具放入)

守护程序驱动

服务管理

# 서비스 시작
sudo systemctl start mcp_client

# 서비스 중지
sudo systemctl stop mcp_client

# 서비스 재시작
sudo systemctl restart mcp_client

# 서비스 상태 확인
sudo systemctl status mcp_client

启动时自动启动

# 자동 시작 활성화
sudo systemctl enable mcp_client

# 자동 시작 비활성화
sudo systemctl disable mcp_client

检查日志

# 실시간 로그 보기
sudo journalctl -u mcp_client -f

# 최근 로그 확인
sudo journalctl -u mcp_client --since "1 hour ago"

API端点

  • 发布 /chat/stream -流聊天API

开发模式

在开发过程中,可以直接运行而不是服务:

# 개발 서버 실행
uv run uvicorn main:app --host 0.0.0.0 --port 8000 --reload

故障射击

如果服务无法启动

# 서비스 상태 확인
sudo systemctl status mcp_client

# 상세 로그 확인
sudo journalctl -u mcp_client -n 50

环境变量问题

请确保.env文件位于项目根目录中,并确保API密钥正确。

许可证

MIT许可证