项目简介
该项目是一个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服务器提供的工具。
安装步骤
- 克隆仓库:
git clone https://github.com/Leonardojdss/MCP-Guide.git cd MCP-Guide - 安装服务器依赖: 进入'ms_mcp'目录,安装Python依赖。
cd ms_mcp pip install -r requirements.txt - 配置数据库:
- 确保已安装并运行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 根据你的数据库设置
- (可选)安装客户端依赖: 如果需要运行客户端示例,进入'ms_chat'目录,安装依赖。
cd ../ms_chat pip install -r requirements.txt - (可选)配置客户端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',通过该端点与服务器进行协议交互并发现可用的工具。
基本使用方法
- 启动PostgreSQL数据库。
- 启动MCP服务器: 在'ms_mcp'目录下执行启动命令。
服务器将在指定地址和端口监听请求。uvicorn mcp_server:app --host 0.0.0.0 --port 8000 - 启动客户端聊天机器人: 在'ms_chat'目录下执行客户端应用。例如运行Streamlit应用:
streamlit run app.py - 连接客户端到服务器: 在客户端界面或配置中输入MCP服务器的URL,例如 'http://localhost:8000/mcp',并建立连接。
- 与LLM交互: 在聊天界面中输入关于客户数据的指令或问题(例如,“创建客户 John Doe,邮箱 [email protected]”,“列出所有客户”,“查找ID为1的客户”等)。LLM将识别意图并调用MCP服务器提供的相应工具来执行操作,并将结果反馈给用户。
信息
分类
数据库与文件