About DuckHub QR Menu
DuckHub QR Menu is a hosted MCP server for restaurant operators to manage menus, orders, and related content through the DuckHub API. It exposes 39 tools, including draft editing, publishing with rollback, and read-only key access.
Key features
- 01Inspect menus, products, categories, and orders
- 02Build and edit menus in bulk
- 03Manage images, translations, and promotions
- 04Publish menus and roll back changes
- 05Restrict changes with read-only keys
- 06Use dry runs and review audit logs
Use cases
- 01Sync restaurant products into a menu in bulk
- 02Update product prices, images, and translations
- 03Publish a menu or roll back to an earlier version
- 04Let an agent analyze a menu without changing it
MCP support
The hosted MCP server exposes 39 tools for the DuckHub v1 REST API over Streamable HTTP. It accepts an API key or OAuth connection; read-only keys can use read tools but are denied write operations.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.duck-hub.com/mcpclaude mcp add --transport http com-duck-hub-menu https://mcp.duck-hub.com/mcp{"mcpServers":{"com-duck-hub-menu":{"type":"http","url":"https://mcp.duck-hub.com/mcp"}}}Open in Cursor{"servers":{"com-duck-hub-menu":{"type":"http","url":"https://mcp.duck-hub.com/mcp"}}}Open in VS Code{"mcpServers":{"com-duck-hub-menu":{"type":"http","url":"https://mcp.duck-hub.com/mcp"}}}{"mcpServers":{"com-duck-hub-menu":{"serverUrl":"https://mcp.duck-hub.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEDuckHub 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.
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.50is sent as1250(cents). - Nothing is guest-visible until you publish.
build_menuedits the draft;publish_menumakes it live (with a rollback snapshot). - Dry-run first.
build_menuandcleanup_menuacceptdryRun: true. cleanup_menuarrays 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
- Product: duck-hub.com
- API docs: docs.duck-hub.com
- Issues / questions: open an issue in this repository.
License
MIT — see LICENSE. This repository contains documentation and the server manifest only; the MCP server itself is hosted by DuckHub.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.