Token导航 LogoToken导航TokenDH.com
MCP Meal logo
运维云端stdio官方级别未说明来源级核验

MCP Meal

MCP Server

MCP Meal是一个轻量级项目,通过FastMCP和FastAPI构建,提供基于现有食材的餐食建议服务。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
PythonFastMCP云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

alpogi2dmax

提供方

alpogi2dmax

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

MCP餐点——通过FastMCP + FastAPI的餐点建议API

MCP餐食 是一个轻量级项目,展示了如何使用 FastMCP 构建并提供可访问的人工智能/大型语言模型(AI/LLM)微服务。\ 它连接到 TheMealDB(可译为“美食数据库”或保持原名,根据上下文决定是否需要具体翻译) 根据您提供的信息,以下是原文内容的翻译:“基于您手头现有的食材,提供餐点创意的API。”。

______________________________________________________________________

项目概述

这个仓库包含三个关键组件:

mcp-meal/
├── server/
│ ├── fastmcp_server.py # Main FastMCP server hosting the meal suggestion tool
│ ├── proxy.py # FastAPI proxy server to expose MCP endpoint to external clients
│ ├── requirements.txt
│
└── client/
└── demo_client_fastmcp.py # Example async client demonstrating usage

特点/特性

  • FastMCP 集成 — 定义一个工具(suggest_meal(即大型语言模型或客户端可以通过MCP协议进行调用)。
  • 智能成分解析 — 解析类似“I have chicken, rice, and garlic.”的自由格式文本
  • 食谱查询 — 从(某处)获取数据 TheMealDB API.
  • HTTP 代理 — 将MCP服务封装在一个FastAPI端点中,以便进行REST风格的使用。
  • 异步客户端演示 — 展示了如何通过编程方式与该服务进行交互。

______________________________________________________________________

技术栈

组件技术
核心Python 3.9及以上版本
框架FastAPI
MCP 运行时FastMCP ≥2.0
HTTP 客户端requests
服务器运行程序uvicorn

______________________________________________________________________

安装

克隆仓库并安装依赖项:

git clone https://github.com/alpogi2dmax/mcp-meal.git
cd mcp-meal/server

python -m venv .venv
source .venv/bin/activate   # or .venv\Scripts\activate on Windows

pip install -r requirements.txt

运行服务器

这个项目运行了两个轻量级服务器——一个用于FastMCP,另一个用于FastAPI(作为代理)。

  1. 启动FastMCP服务器
cd server
python fastmcp_server.py

默认情况下,它会在(某个端口或地址)启动一个MCP HTTP服务 http://127.0.0.1:8000/mcp 翻译为中文可以是:“http://127.0.0.1:8000/mcp(本地服务器地址,用于访问MCP相关页面)”。不过,通常网址本身在中文语境下不会被翻译,而是直接保留原样,同时根据上下文解释其含义。在这里,“127.0.0.1”是本地主机的IP地址,“8000”是端口号,“mcp”可能是某个特定页面或应用的路径

  1. 启动FastAPI代理

这公开了一个简单的REST端点,用于将请求转发到MCP服务器。

在一个新终端中:

cd server
uvicorn proxy:app --reload --port 5000

代理将在以下地址监听: http://127.0.0.1:5000/mcp/suggest 翻译成中文是:“http://127.0.0.1:5000/mcp/suggest(本地回环地址,端口5000,路径为mcp/suggest)”。不过,通常在中文语境下,我们不会直接翻译网址,而是说明其功能或用途,比如“访问本地服务器上的MCP建议页面(地址:http://127.0.0.1:5000/mcp/suggest)”。但根据您的要求,这里直接给出了网址的直译

示例用法

使用REST API

向Fast API代理发送POST请求:

curl -X POST http://127.0.0.1:5000/mcp/suggest \
     -H "Content-Type: application/json" \
     -d '{"context": "I have chicken, rice, and onions"}'

示例回复:


{
  "recipe": "Chicken Fried Rice",
  "category": "Main Course",
  "area": "Chinese",
  "instructions": "Heat oil, fry chicken pieces...",
  "youtube": "https://www.youtube.com/watch?v=abc123",
  "source": "https://www.themealdb.com/meal.php?i=52874",
  "matched_requested_ingredients": ["chicken", "rice", "onion"]
}

使用演示客户端

您也可以运行异步演示客户端,该客户端直接调用MCP服务器:


cd client
python demo_client_fastmcp.py

输出示例:


Tools: ['suggest_meal']
Result:
 {
   'recipe': 'Beef Stroganoff',
   'category': 'Beef',
   'area': 'Russian',
   'instructions': 'Slice beef thinly...',
   ...
 }

代码亮点

MCP工具定义(fastmcp_server.py)


@mcp.tool()
def suggest_meal(context: str) -> Dict[str, Any]:
    """
    Suggest a meal based on free-text ingredient input.
    Example: "I have chicken, rice, and soy sauce"
    """
  • 解析自然语言的成分列表。
  • 查询TheMealDB API。
  • 返回最相关的食谱匹配结果。

REST 代理设计

proxy.py 使用 FastAPI 包装 MCP 服务器,提供传统的 REST API 接口


@app.post("/mcp/suggest")
async def suggest(req: ProxyRequest):
    async with Client(MCP_HTTP_URL) as client:
        res = await client.call_tool("suggest_meal", {"context": req.context})
        return res

依赖项

服务器/需求.txt


fastmcp>=2.0
requests>=2.28
fastapi>=0.95
uvicorn>=0.22

目录标签

目录标签

PythonFastMCP云端部署餐食建议本地部署FastAPI食材解析食谱查询

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP