Token导航 LogoToken导航TokenDH.com
MCP Recipe Server logo
数据服务stdio官方级别未说明来源级核验

MCP Recipe Server

MCP Server

一个基于.NET 8的模型上下文协议(MCP)服务器实现,提供对TheMealDB API中食谱数据的访问,包含完整的烹饪工具、资源和提示功能。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
C#Claude数据分析Claude DesktopClaudeVS Code

安装说明

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

作者 / 组织

ajayindfw

提供方

ajayindfw

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

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

命令预览

docker run -p 8080:8080 recipe-mcp-server

详细介绍

配方MCP服务器 - .NET 8实现

一个基于.NET 8的全面模型上下文协议(MCP)服务器实现,提供对TheMealDB API食谱数据的访问。该服务器提供了一整套以烹饪为中心的工具、资源和提示,用于美食探索和餐食规划。

特点/特性

🔧 工具

  • 搜索食谱按菜品名称搜索食谱,并可自定义结果数量
  • 获取食谱详情通过ID检索特定食谱的详细信息
  • 创建饮食计划根据选定的食谱生成有条理的饮食计划
  • 按首字母搜索查找以特定字母开头的食谱
  • 获取随机食谱发现随机食谱以获取灵感
  • 测试文件系统验证文件系统操作和权限
  • 获取系统信息显示系统和环境信息

📚 资源

  • recipes://cuisines 翻译为中文是:“食谱://菜系”浏览所有可用的食谱集
  • recipes://meal-plans 翻译为中文是:“食谱://饮食计划”访问已保存的饮食计划
  • recipes://stats 翻译成中文是:“食谱://统计数据”查看全面的食谱统计数据
  • 食谱:{菜系}探索特定的美食收藏

💡 提示

  • 生成食谱搜索提示创建美食探索提示
  • 生成膳食规划提示生成全面的膳食计划指南
  • 生成烹饪课程提示设计结构化的烹饪课程
  • 生成食材探索提示创建以食材为中心的分析提示
  • 生成文化美食提示生成探索文化美食的提示

先决条件

  • .NET 8.0 SDK 或之后
  • 用于访问TheMealDB API的互联网连接

安装与设置

1. 克隆或下载

# If cloning from a repository
git clone 
cd mcp-recipe-final

# Or download and extract the source files

2. 恢复依赖项

dotnet restore

3. 构建应用程序

dotnet build

4. 配置(可选)

编辑 appsettings.json 自定义设置:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "Server": {
    "Host": "0.0.0.0",
    "Port": 8000
  },
  "RecipeService": {
    "ApiBaseUrl": "https://www.themealdb.com/api/json/v1/1",
    "RequestTimeoutSeconds": 10
  }
}

使用方法

命令行选项

dotnet run -- [options]

Options:
  --port 
         Port to run the server on (default: 8000)
  --host          Host to bind the server to (default: 0.0.0.0)
  --transport   Transport method - stdio or http (default: stdio)
  --help               Show help information

运行服务器

📡(天线/卫星天线/广播信号发射器) STDIO 模式(本地 MCP 客户端)

dotnet run -- --transport stdio

VS Code 和本地 MCP 客户端的默认模式。

🌐 表示“地球/网络”的意思,但单独使用时,它通常被用作一个符号或表情符号,代表互联网、全球连接或广阔的信息世界。在没有具体上下文的情况下,可以简单地翻译为“网络”或“全球连接”。 HTTP 模式(Web/远程客户端)

dotnet run -- --transport http --port 8080 --host localhost

启用HTTP API以实现远程访问和网页客户端功能。

🚀 表情符号“🚀”通常表示火箭、太空探索或快速前进,没有直接的中文翻译,但可以理解为“火箭”或根据上下文译为“飞速前进”等。 渲染云部署

  1. 将代码推送到GitHub
  2. 将存储库连接到 渲染
  3. 使用自动部署渲染 render.yaml 并且 Dockerfile
  4. 访问方式: https://your-app.onrender.com/mcp

🐳 表示“海豚”,但在此作为表情符号使用时,没有直接对应的中文翻译,通常保留原样或根据上下文意译为“海豚表情”等。若单纯作为符号描述,则可理解为“海豚”。 Docker 部署

docker build -t recipe-mcp-server .
docker run -p 8080:8080 recipe-mcp-server

HTTP 端点(当使用 --transport http 时)

  • POST /mcp - 主MCP协议端点
  • GET /health - 健康检查
  • GET / - 服务器信息

示例用法

搜索食谱

# Search for Italian recipes
search_recipes("pasta", 5)

# Get specific recipe details
get_recipe_details("52771")

制定饮食计划

create_meal_plan(["52771", "52772", "52773"], "Weekly Italian Menu")

探索资源

# View all available cuisines
recipes://cuisines

# Explore Italian recipes
recipes://italian

# Check meal plans
recipes://meal-plans

项目结构

RecipeServer/
├── Models/
│   ├── Mcp/                    # MCP protocol models
│   │   └── McpModels.cs
│   └── Recipe/                 # Recipe data models
│       └── RecipeModels.cs
├── Services/
│   ├── Interfaces/
│   │   └── IServices.cs        # Service interface definitions
│   ├── McpServer.cs           # Core MCP message handling
│   ├── RecipeApiService.cs    # TheMealDB API integration
│   ├── ToolService.cs         # MCP tools implementation
│   ├── ResourceService.cs     # MCP resources implementation
│   └── PromptService.cs       # MCP prompts implementation
├── .vscode/                   # VS Code configuration
│   ├── launch.json           # Debug configurations
│   └── tasks.json            # Build tasks
├── Program.cs                 # Application entry point
├── appsettings.json          # Configuration file
├── RecipeServer.csproj       # Project file
├── build.sh                  # Build script
└── README.md                 # This documentation

数据存储

服务器自动创建一个 recipes/ 存储目录:

  • 食谱集锦按菜系/菜品类型组织
  • 饮食计划已保存的餐食计划数据
  • 搜索结果按字母缓存的搜索结果

目录结构示例:

recipes/
├── italian/
│   └── recipes_info.json
├── pasta/
│   └── recipes_info.json
├── meal_plans/
│   ├── weekly_italian_menu.json
│   └── dinner_ideas.json
└── by_letter/
    └── letter_a_search.json

API集成

这台服务器与……集成 TheMealDB API:

  • 按名称搜索/search.php?s={dish_name}
  • 按首字母搜索/search.php?f={letter}
  • 随机食谱/random.php
  • 按ID查找食谱/lookup.php?i={recipe_id}

发展

添加新工具

  1. 定义工具模式(或工具架构)于 ToolService.GetToolsListAsync()
  2. 在(相应位置)实现工具逻辑 ToolService.CallToolAsync()
  3. 添加任何所需的辅助方法

添加新资源

  1. 在(某处)添加资源定义 ResourceService.GetResourcesListAsync()
  2. 实现资源读取逻辑于 ResourceService.ReadResourceAsync()

添加新提示

  1. 定义提示模式(或提示框架)在 PromptService.GetPromptsListAsync()
  2. 在(系统/程序中)实现提示生成 PromptService.GetPromptAsync()

错误处理

该服务器包含全面的错误处理机制:

  • 网络故障优雅的API超时处理
  • 文件系统错误权限和访问错误管理
  • JSON解析数据保护格式错误
  • MCP协议符合标准的错误响应

记录日志

结构化日志记录是通过配置实现的 appsettings.json

  • 信息一般操作日志
  • 警告非关键问题
  • 错误异常和故障日志

性能考量

  • Async/await(异步/等待)所有的输入/输出操作都是异步的
  • HTTP客户端重用共享的HttpClient实例
  • 文件缓存搜索结果已本地缓存
  • 内存效率尽可能采用流式JSON处理

兼容性

.NET 版本

  • 主要的,重要的。.NET 8.0
  • 兼容的。.NET 6.0+(带有一些小修改)

操作系统

  • Windows全面支持
  • macOS(发音为“Mac OS”)全面支持
  • Linux(发音为“利尼斯”)全力支持

MCP 客户端

  • 兼容任何MCP 2024-11-05协议客户端
  • 已在Claude Desktop及其他MCP兼容应用程序上进行了测试

故障排除

常见问题

“权限被拒绝”错误

# Ensure write permissions for recipes directory
chmod 755 recipes/

“网络超时”错误

  • 检查网络连接
  • 验证TheMealDB API的可用性
  • 调整超时设置 appsettings.json

“端口已被使用”

# Use a different port
dotnet run -- --port 8001

做出贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交一个拉取请求

许可证

此项目遵循MIT许可证授权——详情请参阅LICENSE文件。

致谢

  • TheMealDB 集成全面的食谱数据库,支持本地缓存
  • TheMealDB(可译为“美食数据库”或保持原名,根据上下文决定是否需要具体翻译)免费食谱数据库API
  • 模型上下文协议Anthropic的MCP规范
  • .NET 社区框架和生态系统支持

目录标签

目录标签

C#Claude数据分析食谱搜索本地部署餐饮规划烹饪工具API集成数据服务

支持客户端

Claude DesktopClaudeVS Code

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP