Nextcloud Cookbook MCP Server

Nextcloud Cookbook MCP Server

Integrates with the Nextcloud Cookbook app API to enable AI assistants to manage recipes, categories, and keywords. It supports listing, searching, creating, and importing recipes from URLs via a standardized Model Context Protocol interface.

Category
Visit Server

README

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 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured