食谱管理服务器

一个与Nextcloud Cookbook应用API集成的模型上下文协议(MCP)服务器,允许AI助手通过标准化接口管理食谱。

  • by code-massel
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 code-massel/nextcloud-cookbook-mcp

使用说明

Nextcloud食谱MCP服务器

一个模型上下文协议(MCP)服务器,提供与Nextcloud Cookbook应用API的集成。该服务器允许像Claude这样的AI助手通过标准化接口与您的Nextcloud食谱进行交互。

特点/特性

  • 列出并搜索食谱
  • 获取详细的食谱信息
  • 创建、更新和删除食谱
  • 从URL导入食谱
  • 获取食谱图片
  • 管理类别和关键词
  • 全面支持Docker,便于轻松部署

先决条件

  • Node.js 18 或更高版本(用于本地开发)
  • Docker 和 Docker Compose(用于容器化部署)
  • 已安装Cookbook应用的Nextcloud实例
  • Nextcloud 应用密码(推荐)或用户密码

获取Nextcloud应用程序密码

  1. 登录到您的Nextcloud实例
  2. 进入设置 > 安全
  3. 滚动到“设备与会话”
  4. 输入名称(例如“MCP 服务器”)并点击“创建新应用密码”
  5. 复制生成的密码(之后您将无法再次看到它!)

安装

选项1:Docker部署(推荐)

  1. 克隆或下载此存储库

  2. 复制 .env.example to .env:

    cp .env.example .env
    
  3. 编辑 .env 使用您的Nextcloud凭据:

    NEXTCLOUD_URL=https://your-nextcloud-instance.com
    NEXTCLOUD_USERNAME=your-username
    NEXTCLOUD_PASSWORD=your-app-password
    PORT=3000
    
  4. 使用 Docker Compose 构建并运行:

    docker-compose up -d
    
  5. 服务器将在 stdio (标准输入/输出)

选项2:本地开发

  1. 安装依赖项:

    npm install
    
  2. 复制 .env.example to .env 并配置您的凭据

  3. 构建TypeScript代码:

    npm run build
    
  4. 运行服务器:

    npm start
    

配置

使用环境变量配置服务器:

变量 描述 必填 默认值
(无对应中文) (无对应中文) (无对应中文) (无对应中文)
您的 Nextcloud 实例 URL 是 - NEXTCLOUD_USERNAME
您的Nextcloud用户名 是 - NEXTCLOUD_PASSWORD
应用密码或用户密码 是 - PORT

| 服务器端口(当前未用于标准输入输出) | 否 | 3000 |

配置Claude代码

要使用此MCP服务器与Claude Code配合,需将其添加到您的MCP设置中:

对于stdio传输:

{
  "mcpServers": {
    "nextcloud-cookbook": {
      "command": "node",
      "args": ["/path/to/nextcloud-cookbook-mcp/dist/index.js"],
      "env": {
        "NEXTCLOUD_URL": "https://your-nextcloud-instance.com",
        "NEXTCLOUD_USERNAME": "your-username",
        "NEXTCLOUD_PASSWORD": "your-app-password"
      }
    }
  }
}

在您的Claude Code MCP配置文件中添加:

{
  "mcpServers": {
    "nextcloud-cookbook": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "NEXTCLOUD_URL=https://your-nextcloud-instance.com",
        "-e", "NEXTCLOUD_USERNAME=your-username",
        "-e", "NEXTCLOUD_PASSWORD=your-app-password",
        "nextcloud-cookbook-mcp"
      ]
    }
  }
}

或者如果使用 Docker:

可用工具

MCP服务器提供以下工具:

  • list_recipes 配方管理
  • search_recipes - 列出菜谱中的所有食谱
  • get_recipe - 按关键词、标签或类别搜索食谱
  • create_recipe - 获取特定食谱的详细信息
  • update_recipe - 创建一个新的食谱
  • delete_recipe - 更新现有食谱
  • import_recipe - 删除一个食谱

- 从URL导入食谱

  • get_recipe_image_url 图片

- 获取食谱图片(全图、缩略图或16x16缩略图)的URL

  • list_categories 组织
  • list_keywords - 列出所有食谱类别及其数量
  • get_recipes_by_keyword - 列出所有食谱关键词/标签

- 获取带有特定关键词标记的食谱

示例用法

User: "Show me all my recipes"
Claude: [Uses list_recipes tool]

User: "Search for pasta recipes"
Claude: [Uses search_recipes tool with query "pasta"]

User: "Get the details for recipe ID 42"
Claude: [Uses get_recipe tool with id 42]

User: "Import this recipe: https://example.com/recipe"
Claude: [Uses import_recipe tool]

User: "Create a new recipe for chocolate chip cookies"
Claude: [Uses create_recipe tool with recipe data]

一旦配置了Claude Code,您就可以使用自然语言与您的Nextcloud食谱应用进行交互:

发展

nextcloud-cookbook-mcp/
├── src/
│   ├── index.ts              # MCP server implementation
│   └── nextcloud-client.ts   # Nextcloud API client
├── dist/                     # Compiled JavaScript (generated)
├── Dockerfile               # Docker container configuration
├── docker-compose.yml       # Docker Compose setup
├── package.json            # Node.js dependencies
├── tsconfig.json          # TypeScript configuration
└── README.md             # This file

项目结构

npm run build

建筑;建筑物

npm run dev

开发模式

npm run watch

监视模式(自动重建)

故障排除

  • 认证错误
  • 验证您的Nextcloud网址是否正确(包含https://)
  • 确保您使用的是应用密码,而不是您的常规密码

检查您的用户名是否正确(通常为小写)

  • 连接错误
  • 验证您的Nextcloud实例是否可访问
  • 检查Cookbook应用是否已安装并启用

确保没有防火墙规则阻止访问

  • Docker 问题
  • 确保 Docker 正在运行 docker-compose logs -f
  • 使用以下命令检查日志: docker-compose build --no-cache

重建镜像:

API 参考文档 如需详细的Nextcloud Cookbook API文档,请参阅:

https://nextcloud.github.io/cookbook/dev/api/0.1.2/index.html 翻译为中文是:“Nextcloud GitHub 上的烹饪书(开发版)/API 文档 0.1.2 版本的索引页面”。不过,这里的“烹饪书”可能是一个比喻或特定语境下的说法,实际上可能指的是开发指南、API 文档或类似的资源集合。因此,更自然的翻译可能是:“Nextcloud 在 GitHub 上的开发指南/API 文档 0.1.2 版本的索引页面”

许可证

麻省理工学院(MIT)

贡献