GastroKalk MCP Server

Integration Documentation for AI Clients (Claude, ChatGPT, Claude Code)

Server Description

GastroKalk is a Swiss SaaS platform for the restaurant and hospitality industry (DACH region: Switzerland, Germany, Austria). Our MCP server exposes 159 tools that let AI assistants read, write, and automate across 28 restaurant management modules — from recipe costing and inventory to staff scheduling, POS, and supplier management.

The server implements JSON-RPC 2.0 over Streamable HTTP with full OAuth 2.1 authorization code flow (PKCE) and API key authentication. All 159 tools include safety annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).

Endpointhttps://mcp.gastrokalk.com/mcp
ProtocolMCP JSON-RPC 2.0 over Streamable HTTP
Tools159 (98 read-only, 61 write/workflow)
AuthOAuth 2.1 (PKCE) + API Key (Bearer)
PlansStarter (CHF 79/mo), Professional, Enterprise

Features

Recipe & Food Cost Management

  • Search, create, and update recipes with ingredient linking
  • Calculate food cost per recipe and per portion
  • Analyze food cost trends and detect anomalies
  • Menu engineering analysis (Stars, Puzzles, Plowhorses, Dogs)
  • Allergen detection across 14 EU main allergens

Inventory & Purchasing

  • Track stock levels, detect expiring items (MHD/FIFO)
  • Compare supplier prices across multiple vendors
  • Generate shopping lists from inventory and recipes
  • Create and send purchase orders to suppliers

Staff & Scheduling

  • View and manage staff schedules with labor law compliance (L-GAV/ArbZG)
  • Auto-plan weekly schedules based on demand forecasts
  • Track working hours, overtime, and vacation balances

POS & Reservations

  • Process orders, payments, and table management
  • Manage reservations with guest profiles
  • Daily revenue reports and X/Z reports

Financial & Analytics

  • Cash book management with Swiss MwSt compliance
  • Monthly P&L statements and profitability analysis
  • Revenue forecasting with weather and holiday integration
  • Multi-location comparison (Enterprise)

Setup Instructions

Option A: OAuth 2.0 (Claude.ai)

  1. In Claude.ai, go to Settings → Integrations → Add MCP Server
  2. Enter the server URL: https://mcp.gastrokalk.com/mcp
  3. Click Connect — you will be redirected to GastroKalk for authorization
  4. Log in with your GastroKalk account and grant the requested permissions
  5. After authorization, Claude can access your restaurant data via MCP tools

Option B: API Key (Claude Desktop / Claude Code)

  1. In GastroKalk, go to Einstellungen → Integrationen → KI-Verbindung (MCP)
  2. Click "Neuen Schlüssel generieren" — copy the API key (shown once!)
  3. Add the following to your Claude Desktop configuration:
{
  "mcpServers": {
    "gastrokalk": {
      "type": "http",
      "url": "https://mcp.gastrokalk.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Authentication

OAuth 2.0 Authorization Code Flow

  • Authorization Server Metadata: /.well-known/oauth-authorization-server
  • Authorization Endpoint: /api/oauth/authorize
  • Token Endpoint: /api/oauth/token
  • Registration Endpoint: /api/oauth/register (Dynamic Client Registration)
  • Scopes: read, write, delete

API Key Authentication

  • Format: Authorization: Bearer mcp_live_...
  • Generated per organization in the GastroKalk dashboard
  • Keys can be revoked at any time

Rate Limits

PlanCalls/HourMax Concurrent
Starter1003
Professional5003
Enterprise2,0003

Safety Annotations

Every tool includes MCP safety annotations, auto-derived from the tool's category and behavior:

AnnotationCountDescription
readOnlyHint: true98Read/analysis tools that don't modify state
destructiveHint: true61All write operations (create, update, delete, send)
idempotentHint: true118All reads + update/toggle/mark operations
openWorldHint: true5Email, service alerts, external sync

Usage Examples

Example 1: Food Cost Analysis & Optimization

User Prompt:

"Show me all recipes where the food cost is above 35%. What can I do to bring them down?"

Tools Used:

analyze_food_cost → search_recipes → suggest_price_optimization

Expected Outcome:

Claude identifies 3 recipes above 35% food cost (e.g., Rindsfilet Cafe de Paris at 38.2%), analyzes ingredient costs, and suggests: (a) switch to a different beef cut (-12% cost), (b) adjust portion size from 200g to 180g, or (c) increase menu price by CHF 4. The response includes concrete numbers for each option.

Example 2: Supplier Price Comparison & Order

User Prompt:

"Compare prices for salmon across all my suppliers and create an order for 5 kg from the cheapest one."

Tools Used:

compare_supplier_prices → search_ingredients → create_bestellung

Expected Outcome:

Claude compares salmon prices: Merat AG at CHF 38.50/kg, Aligro at CHF 41.20/kg. Recommends Merat (saves CHF 13.50 on 5 kg). Creates a purchase order for 5 kg fresh salmon from Merat AG with next available delivery day (Monday or Wednesday).

Example 3: Reservation Management & Revenue Forecast

User Prompt:

"How many covers do we have booked for tomorrow evening? And what's the expected revenue based on our average spend per guest?"

Tools Used:

get_reservations → predict_weekly_revenue → get_weather_forecast

Expected Outcome:

Claude reports 5 confirmed reservations for 22 covers total (Familie Mueller: 4, Herr Schneider: 2, Firma Swiss Re: 8, Dr. Brunner: 2, plus 1 pending: Frau Keller: 6). With an average spend of CHF 65/guest, estimated revenue is CHF 1,430. Weather forecast is clear/18°C — suggests opening the terrace for additional walk-ins.

Privacy & Terms

Data Handling

  • All data is stored in Switzerland (Supabase EU region)
  • Multi-tenant isolation: each organization sees only its own data
  • OAuth tokens expire after 1 hour; API keys can be revoked instantly
  • No conversation data is stored on GastroKalk's side
  • Audit log tracks all tool executions (tool name, timestamp, success/error)

Support

Emailmarcel@gastrokalk.ch
Phone+41 76 801 53 30
Support Pagegastrokalk.com/support
Response Time1–2 business days

Technical Reference

Supported MCP Methods

  • initialize — Handshake with protocol version negotiation
  • tools/list — Discover available tools (filtered by auth). Default: curated food-cost catalog; full catalog via OAuth scope tools:full
  • tools/call — Execute a single tool (curated tools also return structuredContent)
  • resources/list, resources/read, resources/templates/list — Recipes and supplier price lists
  • prompts/list, prompts/get — Food-cost workflow prompts
  • gastrokalk/batch — Execute up to 20 tools (GastroKalk extension; old name tools/batch is deprecated)
  • gastrokalk/subscribe — Register webhooks for events (old name tools/subscribe is deprecated)
  • ping — Health check

Webhook Events

14 event types available for real-time notifications:

  • reservation.created, .updated, .cancelled
  • order.created, .completed
  • ingredient.price_changed, .low_stock
  • pos.order_completed, .day_closed
  • lieferschein.received, inventur.completed, checklist.completed
  • lead.created, .status_changed

Error Handling

All errors follow JSON-RPC 2.0 error format with German-language messages:

  • -32601 — Unknown tool or insufficient access
  • -32602 — Invalid parameters
  • -32000 — Rate limit / concurrency limit
  • -32603 — Internal error (with reference ID for support)

Transient errors (timeouts, DB connection issues) include a retryable: true flag in the tool result. Clients should retry after 2–3 seconds.

MCP Integration Documentation | GastroKalk