食谱管理服务器

一个基于C#的模型上下文协议(MCP)服务器,通过DummyJSON API提供食谱管理工具,包括搜索、检索和浏览食谱等功能。

  • by RorroRojas3
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 RorroRojas3/mcp-server

使用说明

RR。MCP服务器

C#中的模型上下文协议(MCP)服务器实现,通过DummyJSON API提供配方管理工具。该服务器演示了如何构建MCP工具,以便与强大的错误处理和日志记录进行外部API集成。

概述

此MCP服务器向AI助手和其他MCP客户端公开与配方相关的功能。它提供了用于从DummyJSON API搜索、检索和浏览食谱的工具,以及用于测试连接的简单回声工具。

特性

  • 配方管理工具:
    • 按ID获取食谱
    • 按查询搜索食谱
    • 通过分页、排序和字段选择浏览食谱
  • 回声工具:用于测试的简单消息回声
  • 稳健的错误处理:全面的验证和错误报告
  • 结构化日志记录:具有适当日志级别的控制台日志记录
  • 类型安全DTO:API响应的良好定义的数据传输对象

技术栈

  • 框架: .净值9.0
  • MCP库:ModelContextProtocol v0.3.0-review.3
  • HTTP客户端:微软。扩展。API调用的Http
  • 依赖注入:微软。扩展。依赖注入
  • 日志记录:微软。扩展。使用控制台输出进行日志记录
  • 配置:微软。扩展。支持JSON的配置

项目结构

RR.MCPServer/
├── RR.MCPServer/                 # Main executable project
│   ├── Program.cs               # Application entry point and MCP server setup
│   ├── appsettings.json         # Configuration (DummyJSON API URL)
│   └── RR.MCPServer.csproj      # Project file
├── RR.MCPServer.Tool/           # MCP tools implementation
│   └── DummyJsonTool.cs         # Recipe API tools
├── RR.MCPServer.Dto/            # Data transfer objects
│   ├── RecipeDto.cs             # Individual recipe model
│   └── RecipeSearchDto.cs       # Recipe search results model
└── .vscode/
    └── mcp.json                 # VS Code MCP client configuration

可用工具

1.回声工具

  • 目的:测试服务器连接
  • 方法: Echo(string message)
  • 退货: "hello {message}"

2.按ID获取配方

  • 目的:通过其唯一标识符检索特定配方
  • 方法: GetRecipeByIdAsync(int recipeId)
  • 参数:
    • recipeId:配方的唯一标识符
  • 退货:JSON序列化配方数据

3.搜索食谱

  • 目的:使用查询字符串搜索食谱
  • 方法: SearchRecipeAsync(string query)
  • 参数:
    • query:搜索词以查找食谱
  • 退货:JSON序列化搜索结果

4.获取食谱(浏览)

  • 目的:使用高级选项浏览食谱
  • 方法: GetRecipesAsync(...)
  • 参数:
    • limit:要检索的配方数量(默认值:10,全部使用0)
    • skip:分页时要跳过的食谱数量(默认值:0)
    • select:要选择的逗号分隔字段(可选)
    • sortBy:要排序的字段名(可选)
    • order:排序顺序“asc”或“desc”(默认:“asc“)
  • 退货:带分页信息的JSON序列化配方列表

先决条件

  • .NET 9.0 SDK
  • Visual Studio代码(建议用于MCP集成)

安装和设置

  1. 克隆存储库:

    git clone <repository-url>
    cd RR.MCPServer
    
  2. 恢复依赖关系:

    dotnet restore
    
  3. 构建项目:

    dotnet build
    

运行服务器

选项1:直接执行

cd RR.MCPServer
dotnet run

选项2:VS代码MCP集成

  1. 确保 .vscode/mcp.json 配置存在
  2. 通过VS Code的MCP客户端访问时,服务器将自动启动
  3. 配置包括正确的工作目录设置 appsettings.json

选项3:生产建设

dotnet publish -c Release -o ./publish
cd publish
./RR.MCPServer.exe

配置

服务器使用 appsettings.json 配置:

{
  "DummyJSON": {
    "Url": "https://dummyjson.com"
  }
}

示例用法

通过MCP客户端连接后,您可以使用以下工具:

# Echo test
Echo("test") → "hello test"

# Get specific recipe
GetRecipeByIdAsync(1) → Returns Classic Margherita Pizza details

# Search for recipes
SearchRecipeAsync("pizza") → Returns pizza-related recipes

# Browse recipes with pagination
GetRecipesAsync(5, 0) → Returns first 5 recipes

发展

添加新工具

  1. 在中创建方法 DummyJsonTool.cs 或新的工具类
  2. 用…装饰 [McpServerTool] 和 [Description] 属性
  3. 在课堂上标记 [McpServerToolType]
  4. 注册 Program.cs 使用 .WithTools<YourToolClass>()

日志记录

所有操作都会以适当的日志级别记录到stderr中:

  • 信息:正常运行
  • 警告:非关键问题(例如,未找到结果)
  • 错误:验证失败的严重错误

许可证

[在此处包含您的许可证信息]

贡献

[此处包含投稿指南]