NAME

MCP::Picnic - MCP Server for Picnic Supermarket API

VERSION

version 0.001

SYNOPSIS

# As a stdio MCP server (for Claude Desktop, etc.)
use MCP::Picnic;
MCP::Picnic->run_stdio;

# Or with the bundled script:
# mcp-picnic

# Set the environment variables:
export PICNIC_USER="you@email.de"
export PICNIC_PASS="your-password"
export PICNIC_COUNTRY="de"  # or "nl"

DESCRIPTION

MCP::Picnic provides an MCP (Model Context Protocol) server that gives AI assistants such as Claude access to the Picnic supermarket API.

The server supports:

  • Product search

  • Cart management (add, remove, clear)

  • Viewing and selecting delivery time windows

  • Viewing the user profile

  • 2FA authentication (interactive, driven through the AI assistant)

2FA AUTHENTICATION

Picnic often requires two-factor authentication via SMS. The MCP server handles this interactively:

1. On the first request, a login is attempted automatically.
2. If 2FA is required, an SMS is sent to your phone number.
3. The AI assistant asks you for the code.
4. You provide the code and the assistant verifies it.
5. All further requests work normally.

CLAUDE DESKTOP INTEGRATION

Add the following to your Claude Desktop MCP configuration:

{
  "mcpServers": {
    "picnic": {
      "command": "mcp-picnic",
      "env": {
        "PICNIC_USER": "you@email.de",
        "PICNIC_PASS": "your-password",
        "PICNIC_COUNTRY": "de"
      }
    }
  }
}

AVAILABLE TOOLS

verify_2fa

Verifies the 2FA SMS code.

Parameter: code (string, required)

search_products

Searches for products.

Parameter: query (string, required)

get_product_details

Gets details for a product.

Parameter: product_id (string, required)

get_suggestions

Gets search suggestions.

Parameter: term (string, required)

get_cart

Shows the current cart.

add_to_cart

Adds a product to the cart.

Parameter: product_id (string, required), count (integer, default: 1)

remove_from_cart

Removes a product from the cart.

Parameter: product_id (string, required), count (integer, default: 1)

clear_cart

Clears the cart.

get_delivery_slots

Shows available delivery time windows.

set_delivery_slot

Selects a delivery slot.

Parameter: slot_id (string, required)

get_user

Shows user information.

get_categories

Shows product categories.

Parameter: depth (integer, default: 0)

SEE ALSO

MCP::Server, WWW::Picnic

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-mcp-picnic/issues.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudss.us>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.