Skip to main content
Glama

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

  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 Mode

npm run dev

Watch Mode (auto-rebuild)

npm run watch

Troubleshooting

Authentication Errors

  • Verify your Nextcloud URL is correct (include https://)

  • Ensure you're using an app password, not your regular password

  • Check that your username is correct (usually lowercase)

Connection Errors

  • Verify your Nextcloud instance is accessible

  • Check if the Cookbook app is installed and enabled

  • Ensure there are no firewall rules blocking access

Docker Issues

  • Make sure Docker is running

  • Check logs with: docker-compose logs -f

  • Rebuild the image: docker-compose build --no-cache

API Reference

For detailed Nextcloud Cookbook API documentation, see: https://nextcloud.github.io/cookbook/dev/api/0.1.2/index.html

License

MIT

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/code-massel/nextcloud-cookbook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server