项目简介
本项目“智膳源道营养膳食 MCP 服务器”是基于 Model Context Protocol (MCP) 实现的应用后端,专注于营养膳食领域。它通过 MCP 协议向兼容的 LLM 客户端提供特定的营养相关功能和数据访问能力,是“智膳源道”平台的 MCP 协议支持部分。
主要功能点
该服务器对外提供以下主要功能(以MCP工具形式提供):
- 智能菜品推荐:根据用户的年龄、性别、身高、体重等体征数据,结合可选的营养模型,智能推荐适合用户当餐的菜品及其详细的重量和食材信息。
- 营养模型查询:提供接口查询系统中所有可用的营养模型名称和对应的标识符,方便客户端了解和选择不同的膳食方案。
这些功能通过标准化的 MCP 工具调用方式暴露给 LLM 客户端。
安装步骤
要运行此 MCP 服务器,您需要安装 Python 环境及相关的依赖库。
- 确保安装 Python: 请安装 Python 3.7 或更高版本。
- 安装依赖: 使用 pip 命令安装项目所需的库。
(注:'fastmcp'可能需要'fastapi'和'uvicorn'作为底层框架,'requests'用于调用外部API,'mcp'可能是MCP协议相关的基础库)pip install fastmcp requests fastapi uvicorn mcp
服务器配置
MCP 客户端需要特定的配置信息才能识别并连接到此服务器。这些信息通常以 JSON 格式存储在客户端的配置中。配置至少应包含服务器名称、以及启动服务器进程的命令和参数。
以下是客户端配置此服务器时需要的信息:
- Server Name (服务器名称): 'mcp-nutrimaster'
- 客户端使用此名称来唯一标识和引用此 MCP 服务器及其提供的能力。
- Command (启动命令): 'python'
- 指明用于启动服务器脚本的主程序命令。
- Arguments (启动参数): '["mcp-nutrimaster.py"]'
- 指明传递给启动命令的参数列表,这里即为服务器脚本文件。
客户端通常会根据这些信息构建命令行 'python mcp-nutrimaster.py' 来启动服务器进程,并通过配置的传输协议(如SSE、Stdio等)进行通信。此服务器代码中指定了使用 SSE 协议,并监听 '0.0.0.0:9000' 地址和端口,但客户端配置主要关注如何启动进程并与之建立连接。
基本使用方法
此服务器作为 MCP 后端,不是一个独立运行的带有用户界面的应用程序。它需要由支持 MCP 协议的 LLM 客户端(如特定的聊天机器人前端、AI应用平台等)来调用。
典型的使用流程如下:
- 客户端启动服务器: LLM 客户端根据配置信息(command 和 args)启动 'mcp-nutrimaster.py' 脚本作为子进程或独立进程。
- 建立连接: 客户端通过配置的传输协议(如 SSE)与服务器建立通信连接。
- 能力发现: 客户端与服务器进行协议握手,发现服务器提供的工具(如 'create_recommended_dishes', 'get_all_nutrition_models')。
- 调用工具: 当用户在客户端中提出与营养推荐或模型查询相关的请求时,客户端会构建相应的 MCP JSON-RPC 请求,调用服务器上的工具,并传递必要的参数(如年龄、性别、身高、体重或营养模型名称)。
- 获取结果: 服务器执行工具功能(调用内部逻辑和外部API),并将结果通过 MCP JSON-RPC 响应返回给客户端。客户端接收到结果后,可以将其展示给用户或用于进一步的交互。
例如,客户端可能会向服务器发送一个调用 'create_recommended_dishes' 工具的请求,包含用户的体征参数,服务器返回推荐的菜品列表,客户端将其展示给用户。
要实际测试服务器功能,通常需要一个支持 MCP 协议的客户端应用。直接运行 'python mcp-nutrimaster.py' 可以在控制台启动服务器,但没有客户端与之交互时,您将无法看到功能输出,只能看到服务器的运行状态或日志。
信息
分类
AI与计算