这是一个基于Model Context Protocol (MCP) 构建的后端应用,旨在为AI语言模型提供模拟餐厅环境下的交互能力。它充当AI与外部功能(如点单处理、服务员呼叫)之间的桥梁,通过标准的MCP协议暴露这些功能作为可调用的工具。
主要功能点
- 工具注册与执行: 将餐厅特有的操作(点单、呼叫服务员)封装为可供LLM调用的工具,并在接收到LLM请求时执行相应逻辑。
- 数据访问: 工具可以访问后端维护的数据(例如菜单 'menu.txt'),并处理如对话记录 ('call.txt') 等信息。
- Prompt管理: 服务器可以提供系统提示词,帮助引导LLM理解其角色和如何使用工具。
- MCP协议实现: 通过使用 MCP SDK,服务器遵循 MCP 协议标准,与兼容的客户端(例如 LangChain 或其他 MCP 客户端)进行通信,支持如 'discover'(发现工具)和 'invoke'(调用工具)等操作。
安装步骤
-
前置条件:
- 确保您已安装 Node.js (版本 18.x 或更高) 及随附的 npm。
- 确保您已安装 Python (建议使用 3.8+ 版本)。
- (可选) 安装 uv (Python 包管理器): 'curl -LsSf https://astral.sh/uv/install.sh | sh'
- 获取一个 Deepseek API 密钥,用于连接到大语言模型。
-
克隆仓库:
git clone https://github.com/gcbellys/Ai4Life_MCP.git cd Ai4Life_MCP -
安装依赖:
- 安装 Node.js 客户端/服务器依赖: 'npm install'
- 安装 Python 客户端/服务器依赖: 使用 uv (推荐) 或 pip。如果使用 uv,通常在项目根目录或包含 pyproject.toml 的子目录运行 'uv sync'。如果使用 pip,请确保安装 'mcp langchain-mcp-adapters langchain-openai langgraph openai langchain langchain-core'。
-
配置 API 密钥: 在项目根目录创建 '.env' 文件,并添加您的 Deepseek API 密钥:
DEEPSEEK_API_KEY=your-deepseek-api-key请将 'your-deepseek-api-key' 替换为实际密钥。
-
准备数据文件: 在 'MCP_py' 目录或 'MCP_js' 目录 (取决于您运行哪个版本的服务器) 创建以下文件:
- 'menu.txt': 每行包含一个描述菜单项的 JSON 对象,例如 '{"item": "咖啡", "describe": "香浓的现磨咖啡"}'。
- 'restaurant_prompt.txt': 包含服务器需要向LLM提供的系统提示词内容。
服务器配置 (供 MCP 客户端参考)
MCP 服务器通过 JSON-RPC 协议与客户端通信。本项目示例使用 Stdio 传输协议。MCP 客户端需要知道如何启动服务器进程并与其建立 Stdio 连接。配置信息通常是一个 JSON 对象,包含以下关键字段:
- 'serverName': 服务器的标识符,例如 '"restaurant_assistant"'。
- 'command': 启动服务器进程的命令,例如 'python' 或 'node'。
- 'args': 传递给启动命令的参数列表,包含服务器脚本的路径,例如 '["MCP_py/MCP_Server.py"]' 或 '["MCP_js/Server.js"]'。
- 'transport': 使用的传输协议,本项目示例为 '"stdio"'。
MCP 客户端 (如本项目中的客户端脚本) 会使用类似这样的配置来启动和连接服务器。您无需手动修改服务器代码来“配置连接信息”,这些信息是由客户端提供的。
基本使用方法
- 确保已完成上述安装和配置步骤。
- 选择并运行一个客户端脚本来启动 MCP 服务器并与之交互。例如:
- 运行 Python 客户端 (将自动启动配置的 Python MCP 服务器): 'python MCP_py/MCP_Client.py'
- 运行 Node.js 客户端 (将自动启动配置的 Node.js MCP 服务器): 'node MCP_js/Client.js'
- 客户端启动后,按照命令行提示输入您的问题或指令,例如“我要点一杯咖啡”或“请叫服务员过来”。
- 输入 'quit' 或 'exit' 退出客户端程序。
- 对话记录和工具调用日志将保存在 'call.txt' 文件中 (具体位置取决于运行客户端时的当前工作目录)。
请注意,本项目包含多个客户端和服务器脚本 (Python 和 Node.js 版本,以及一些测试文件)。主功能实现通常在 'MCP_py/MCP_Server.py' 和 'MCP_js/Server.js' 中,而主要的交互客户端是 'MCP_py/MCP_Client.py' 和 'MCP_js/Client.js'。
信息
分类
AI与计算