项目简介

该项目是一个MCP(Model Context Protocol)的演示实现,旨在展示如何构建一个后端服务,通过MCP协议为大语言模型(LLM)客户端提供上下文信息和功能。它由两部分组成:一个MCP服务器(ms_mcp)和一个使用Claude LLM作为客户端的聊天机器人(ms_chat)。服务器使用FastAPI和PostgreSQL实现客户数据的CRUD操作,并将这些操作作为工具通过MCP暴露给客户端。

主要功能点

  • 客户数据工具暴露: 通过MCP协议,将创建、读取、更新、删除和列出客户数据的功能作为工具提供给LLM客户端。
  • 数据库集成: 使用PostgreSQL数据库存储客户信息。
  • FastAPI实现: MCP服务器基于流行的FastAPI框架构建,易于开发和部署。
  • MCP协议支持: 利用'fastapi-mcp'等库实现MCP协议的工具暴露和交互。
  • 客户端交互示例: 提供一个基于Streamlit和Claude/OpenAI的聊天机器人示例,展示LLM如何发现和调用MCP服务器提供的工具。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Leonardojdss/MCP-Guide.git
    cd MCP-Guide
  2. 安装服务器依赖: 进入'ms_mcp'目录,安装Python依赖。
    cd ms_mcp
    pip install -r requirements.txt
  3. 配置数据库:
    • 确保已安装并运行PostgreSQL数据库。
    • 根据README中的SQL脚本创建'customer'表。
    • 在'ms_mcp'目录下创建'.env'文件,配置数据库连接信息(DBHOST, DBNAME, DBUSER, DBPASSWORD, SSLMODE等)。示例:
      DBHOST=your_db_host
      DBNAME=your_db_name
      DBUSER=your_db_user
      DBPASSWORD=your_db_password
      SSLMODE=require # 或 prefer/disable 根据你的数据库设置
  4. (可选)安装客户端依赖: 如果需要运行客户端示例,进入'ms_chat'目录,安装依赖。
    cd ../ms_chat
    pip install -r requirements.txt
  5. (可选)配置客户端LLM: 在'ms_chat'目录下创建'.env'文件,配置Claude或OpenAI的API密钥。

服务器配置

一个MCP客户端需要知道如何启动和连接到服务器。对于此项目中的MCP服务器(ms_mcp),需要的信息如下:

  • 服务器名称: 用于标识该服务,例如:“客户管理MCP服务”
  • 启动命令 (command): 启动服务器的可执行程序或脚本。通常是'uvicorn'。
  • 命令参数 (args): 传递给启动命令的参数。对于此服务器,参数包括:
    • 'mcp_server:app': 指定FastAPI应用对象的位置。
    • '--host 0.0.0.0': 指定服务器监听的IP地址。
    • '--port 8000': 指定服务器监听的端口号。

MCP客户端通常会连接到服务器暴露的特定端点URL,例如 'http://<host>:<port>/mcp',通过该端点与服务器进行协议交互并发现可用的工具。

基本使用方法

  1. 启动PostgreSQL数据库
  2. 启动MCP服务器: 在'ms_mcp'目录下执行启动命令。
    uvicorn mcp_server:app --host 0.0.0.0 --port 8000
    服务器将在指定地址和端口监听请求。
  3. 启动客户端聊天机器人: 在'ms_chat'目录下执行客户端应用。例如运行Streamlit应用:
    streamlit run app.py
  4. 连接客户端到服务器: 在客户端界面或配置中输入MCP服务器的URL,例如 'http://localhost:8000/mcp',并建立连接。
  5. 与LLM交互: 在聊天界面中输入关于客户数据的指令或问题(例如,“创建客户 John Doe,邮箱 [email protected]”,“列出所有客户”,“查找ID为1的客户”等)。LLM将识别意图并调用MCP服务器提供的相应工具来执行操作,并将结果反馈给用户。

信息

分类

数据库与文件