Nextcloud Cookbook MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "NEXTCLOUD_URL=${NEXTCLOUD_URL}" -e "NEXTCLOUD_USERNAME=${NEXTCLOUD_USERNAME}" -e "NEXTCLOUD_PASSWORD=${NEXTCLOUD_PASSWORD}" nextcloud-cookbook -- docker run -i --rm -e NEXTCLOUD_URL=... -e NEXTCLOUD_USERNAME=... -e NEXTCLOUD_PASSWORD=... nextcloud-cookbook-mcp
Required:NEXTCLOUD_URLNEXTCLOUD_USERNAMENEXTCLOUD_PASSWORD+ 1 optional
README.md

Integrates with the Nextcloud Cookbook app API to manage recipes.

Nextcloud Cookbook MCP Server

A Model Context Protocol (MCP) server that provides integration with the Nextcloud Cookbook app API. This server allows AI assistants like Claude to interact with your Nextcloud recipes through a standardized interface.

Features

  • List and search recipes
  • Get detailed recipe information
  • Create, update, and delete recipes
  • Import recipes from URLs
  • Get recipe images
  • Manage categories and keywords
  • Full Docker support for easy deployment

Prerequisites

  • Node.js 18 or higher (for local development)
  • Docker and Docker Compose (for containerized deployment)
  • Nextcloud instance with Cookbook app installed
  • Nextcloud app password (recommended) or user password

Getting a Nextcloud App Password

  1. Log into your Nextcloud instance
  2. Go to Settings > Security
  3. Scroll to "Devices & sessions"
  4. Enter a name (e.g., "MCP Server") and click "Create new app password"
  5. Copy the generated password (you won't see it again!)

Installation

Option 1: Docker Deployment (Recommended)

  1. Clone or download this repository

  2. Copy .env.example to .env:

    cp .env.example .env
    
  3. Edit .env with your Nextcloud credentials:

    NEXTCLOUD_URL=https://your-nextcloud-instance.com
    NEXTCLOUD_USERNAME=your-username
    NEXTCLOUD_PASSWORD=your-app-password
    PORT=3000
    
  4. Build and run with Docker Compose:

    docker-compose up -d
    
  5. The server will be available on stdio (standard input/output)

Option 2: Local Development

  1. Install dependencies:

    npm install
    
  2. Copy .env.example to .env and configure your credentials

  3. Build the TypeScript code:

    npm run build
    
  4. Run the server:

    npm start
    

Configuration

Configure the server using environment variables:

Variable Description Required Default
NEXTCLOUD_URL Your Nextcloud instance URL Yes -
NEXTCLOUD_USERNAME Your Nextcloud username Yes -
NEXTCLOUD_PASSWORD App password or user password Yes -
PORT Server port (currently unused for stdio) No 3000

Configuring Claude Code

To use this MCP server with Claude Code, add it to your MCP settings:

For stdio transport:

Add to your Claude Code MCP configuration file:

{
  "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"
      }
    }
  }
}

Or if using Docker:

{
  "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"
      ]
    }
  }
}

Available Tools

The MCP server provides the following tools:

Recipe Management

  • list_recipes - List all recipes in the cookbook
  • search_recipes - Search recipes by keyword, tag, or category
  • get_recipe - Get detailed information about a specific recipe
  • create_recipe - Create a new recipe
  • update_recipe - Update an existing recipe
  • delete_recipe - Delete a recipe
  • import_recipe - Import a recipe from a URL

Images

  • get_recipe_image_url - Get the URL for a recipe image (full, thumb, or thumb16)

Organization

  • list_categories - List all recipe categories with counts
  • list_keywords - List all recipe keywords/tags
  • get_recipes_by_keyword - Get recipes tagged with a specific keyword

Example Usage

Once configured with Claude Code, you can interact with your Nextcloud Cookbook using natural language:

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]

Development

Project Structure

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

Building

npm run build

Development

Tools (11)

list_recipesList all recipes in the cookbook
search_recipesSearch recipes by keyword, tag, or category
get_recipeGet detailed information about a specific recipe
create_recipeCreate a new recipe
update_recipeUpdate an existing recipe
delete_recipeDelete a recipe
import_recipeImport a recipe from a URL
get_recipe_image_urlGet the URL for a recipe image
list_categoriesList all recipe categories with counts
list_keywordsList all recipe keywords/tags
get_recipes_by_keywordGet recipes tagged with a specific keyword

Environment Variables

NEXTCLOUD_URLrequiredYour Nextcloud instance URL
NEXTCLOUD_USERNAMErequiredYour Nextcloud username
NEXTCLOUD_PASSWORDrequiredApp password or user password
PORTServer port

Configuration

claude_desktop_config.json
{"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"}}}}

Try it

Show me all my recipes.
Search for pasta recipes.
Get the details for recipe ID 42.
Import this recipe: https://example.com/recipe
Create a new recipe for chocolate chip cookies.

Frequently Asked Questions

What are the key features of Nextcloud Cookbook?

List and search recipes. Get detailed recipe information. Create, update, and delete recipes. Import recipes from URLs. Manage categories and keywords.

What can I use Nextcloud Cookbook for?

Quickly finding recipes based on ingredients or tags using natural language.. Importing new recipes from cooking websites directly into your Nextcloud instance.. Managing your digital cookbook collection via AI-assisted organization..

How do I install Nextcloud Cookbook?

Install Nextcloud Cookbook by running: docker-compose up -d

What MCP clients work with Nextcloud Cookbook?

Nextcloud Cookbook works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Nextcloud Cookbook docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare