DuckHub QR Menu

DuckHub QR Menu

Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API (menu, categories, modifiers, prices, images, translations, promotions, and orders).

Category
Visit Server

README

DuckHub MCP Server — restaurant menu management for AI agents

Hosted MCP (Model Context Protocol) server for DuckHub. Manage a restaurant's menu — products, categories, modifiers, prices, images, translations, promotions, orders — straight from Claude, Cursor, or any MCP-capable AI agent. One URL, your dk_live_ API key, 39 ready-made tools. No install, no code — the server is hosted by DuckHub.

<!-- SEO/AEO keywords: DuckHub MCP server, restaurant menu MCP, AI menu management, hosted MCP server, remote MCP server, Model Context Protocol restaurant, menu API MCP, Claude restaurant menu, Cursor MCP menu, AI restaurant SaaS -->

MCP Transport Hosted Auth Docs Glama quality


What is this?

DuckHub is a SaaS platform for restaurants: digital menus, contactless ordering, table reservations and delivery. The DuckHub MCP server exposes the DuckHub v1 REST API to AI agents as typed tools. Instead of writing HTTP requests, your agent sees build_menu, set_image, publish_menu and can build and manage a full menu from a conversation.

The server is remote / hosted — there is nothing to install or run. You add one URL to your AI client and authenticate with the same dk_live_ API key the REST API uses.

Endpoint

POST https://mcp.duck-hub.com/mcp

If the mcp. subdomain is not yet resolvable in your network, the same server is also reachable at https://api.duck-hub.com/mcp.

  • Transport: Streamable HTTP (stateless)
  • Auth: Authorization: Bearer dk_live_... header (API key from the DuckHub app → Integrations page)
  • All the usual rate limits, plan limits and the audit log apply unchanged.

Connect your client

Get your API key from the DuckHub app → Integrations, then:

Claude Code

claude mcp add --transport http duckhub https://mcp.duck-hub.com/mcp \
  --header "Authorization: Bearer dk_live_your_api_key"

Cursor — .cursor/mcp.json

{
  "mcpServers": {
    "duckhub": {
      "url": "https://mcp.duck-hub.com/mcp",
      "headers": { "Authorization": "Bearer ${env:DUCKHUB_API_KEY}" }
    }
  }
}

Claude Desktop — claude_desktop_config.json

Desktop connects remote servers through the mcp-remote bridge (needs Node.js):

{
  "mcpServers": {
    "duckhub": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.duck-hub.com/mcp",
        "--header",
        "Authorization: Bearer dk_live_your_api_key"
      ]
    }
  }
}

Claude API — MCP connector block

{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://mcp.duck-hub.com/mcp",
      "name": "duckhub",
      "authorization_token": "dk_live_your_api_key"
    }
  ]
}

claude.ai (web) & ChatGPT — OAuth

claude.ai and ChatGPT connect custom MCP servers through OAuth (there is no API-key field). Add DuckHub as a custom connector with the URL:

https://mcp.duck-hub.com/mcp

then Sign in to DuckHub, choose the venue to connect, and approve. The flow uses OAuth 2.1 with PKCE — your DuckHub login authorizes access and no API key is stored in the client. One DuckHub account maps to one connected venue at a time (reconnect from the DuckHub app to switch venues).

Read-only access

The Integrations page can also issue a read-only key (same dk_live_ format). With it every read tool works normally, and every write tool fails with 403 READ_ONLY_KEY — the API refuses the write before touching anything. Write tools are also marked with standard MCP annotations (readOnlyHint / destructiveHint), so well-behaved clients can filter or confirm them. Use a read-only key for agents that should analyse the menu but never change it.

The 39 tools

All tools wrap the v1 REST API — same behavior, same limits.

Group Tools
Discover & read get_reference, get_menu, list_products, get_product, list_categories, list_publications, get_audit_log
Build the menu build_menu (bulk sync), set_product, delete_product, set_modifier_group, delete_modifier_group, list_modifier_groups
Settings get_settings + 7 task-scoped update_* tools
Media set_image — product / banner / logo
Translations set_translations, get_translations
Merchandising promotions / banners / tables — list_* / set_* / delete_*
Go live publish_menu, rollback_publish, cleanup_menu
Orders (paid plans) list_orders, get_order, update_order_status

Agents should call get_reference first: it returns every allowed enum value, the venue's plan limits and current usage, and the money conventions.

Things agents get wrong

  • Money is integers in minor units — 12.50 is sent as 1250 (cents).
  • Nothing is guest-visible until you publish. build_menu edits the draft; publish_menu makes it live (with a rollback snapshot).
  • Dry-run first. build_menu and cleanup_menu accept dryRun: true.
  • cleanup_menu arrays are KEEP-lists — anything not listed is hidden/deleted.
  • Orders tools need a paid plan — else 403 PAID_PLAN_REQUIRED.

Full documentation

→ docs.duck-hub.com/mcp — connection guide, per-tool reference, error envelope, rate/plan limits.

About / support

License

MIT — see LICENSE. This repository contains documentation and the server manifest only; the MCP server itself is hosted by DuckHub.

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