CraveUp MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EXPO_TOKEN | No | Scoped Expo robot-user token. Required only for mobile release tools. | |
| CRAVEUP_API_KEY | No | Merchant API key. Must match the environment prefix (crv_test_ for sandbox, crv_live_ for production). Used for menu, discount, and readiness tools. | |
| CRAVEUP_ENVIRONMENT | Yes | Required. The environment selects all dashboard, API, and Clerk hosts together. Must be 'sandbox' or 'production'. | |
| CRAVEUP_LOCATION_ID | No | Optional default location ID. Every tool also accepts an explicit locationId. | |
| CRAVEUP_ACCESS_TOKEN | No | Optional alternative to the keychain session. A session token for CLI/MCP shared browser authentication. | |
| CRAVEUP_ALLOW_CUSTOM_ENDPOINTS | No | Set to 'true' to allow custom deployments with endpoint overrides. Normally unnecessary. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_mcp_capabilitiesA | Return safe runtime versions, the tool-policy digest, and fail-closed capability blockers. Use this before project generation or long-running automation. |
| start_crave_authA | Start secure browser authentication for CLI and MCP access. Open the returned Crave Up URL for the user; they can sign in or create a free account without leaving the flow. |
| complete_crave_authA | Complete the browser login started by start_crave_auth and save the shared CLI/MCP session securely. |
| cancel_crave_authA | Cancel a pending browser authentication flow and close its local callback. |
| get_onboarding_flowA | How to take a restaurant repo from zero to a live Crave-powered app in one chat: login → create org → connect .env → import menu → run. |
| whoamiA | Verify the MCP server can read a craveup login session (CLI keychain or CRAVEUP_ACCESS_TOKEN). |
| create_organizationA | Create a new restaurant org (merchant + default location). Requires craveup login. MCP never mints or returns a plaintext API key; create scoped credentials in Business Manager. |
| connect_projectB | Write the public API origin and location ID into an Expo/React Native project .env. Browser and mobile storefronts connect directly without an API key. |
| get_location_settingsA | Fetch store hours, scheduled-order flag, tax settings, and takeout config for a location. Requires craveup login (Clerk session). |
| update_store_hoursA | Set when a location accepts orders. Use preset always_open for dev/demo, or pass a custom 7-day schedule. Requires craveup login. |
| set_scheduled_orders_enabledA | Toggle order-ahead when the restaurant is closed. Preserves existing tax settings unless overridden. Requires craveup login. |
| set_takeout_enabledA | Turn takeout on/off for a location. Copies the location main schedule when enabling. Requires craveup login. |
| open_location_for_ordersA | Fixes "Restaurant is closed. Scheduled orders are not allowed." by setting 24/7 store hours, enabling scheduled orders, and enabling takeout. Requires craveup login. |
| check_mobile_release_readinessA | Read-only Expo/EAS preflight for internal TestFlight or Google Play internal testing. Checks app identity, production build profile, generated workflow, internal-only Android track, EAS project link, and EXPO_TOKEN. Run craveup apps configure first. |
| start_mobile_releaseA | Dispatch the committed Crave Up EAS Workflow for internal TestFlight. This consumes paid EAS build minutes. Requires EXPO_TOKEN from a scoped Expo robot user and the exact confirmation phrase. Android stays CLI-only so the local Play internal-track setting can be verified immediately before submission. This tool cannot publish to the public store. |
| get_mobile_release_statusA | Fetch a previously dispatched EAS Workflow run and its build/submission jobs. Requires the same scoped EXPO_TOKEN used to start the release. |
| get_onboarding_statusA | Fetch the 6 dashboard go-live steps (subscription, business information, address, hours, menu, ordering methods) with completion state and the suggested next action for each pending required step. Sandbox marks subscription and Stripe Connect as not required. In production, the business-information step lists the outstanding Stripe KYC items (outstandingRequirements) — tell the user what Stripe still needs, then hand them the Stripe-hosted link. Completing all six marks the merchant onboarded. Requires craveup login. |
| create_locationA | Create an additional location under the authenticated merchant (multi-location setup). POSTs { restaurantDisplayName } to /api/v1/locations (Clerk session required), then optionally PATCHes /address (pass lat/lng to skip geocoding). Returns the Crave location id — follow with update_store_hours, import_menu, set_menu_active, set_fulfillment_methods. Requires craveup login. After rebuilding @craveup/mcp, restart the Cursor MCP server. |
| delete_locationA | Soft-deletes a location: sets archivedAt, frees the slug, removes it from the merchant location list and Clerk org metadata. Order/menu rows remain for audit. Use to remove unused duplicates. Requires craveup login. |
| list_locationsA | List locations for the authenticated merchant (dashboard locations-stats). Use to verify multi-location setup without opening the browser. Requires craveup login. |
| get_location_ordersA | Fetch active (new) orders for a location — same data as the Orders Manager. Requires craveup login. |
| list_customersA | Fetch the dashboard Customers page for a location (grouped by Crave customerId). Guest checkouts with email now create a customerId. Requires craveup login. |
| set_location_addressA | Update a location address (shown on the storefront and used for delivery/pickup). Omit lat/lng — the server geocodes the address. Requires craveup login. |
| set_fulfillment_methodsA | Choose how customers order: takeout (pickup), table_side, delivery, room_service. At least one is required to accept orders; store hours must be set first. Requires craveup login. |
| list_subscription_plansA | List available subscription plans (name, price, billing interval, trial). Use the priceId with start_subscription_checkout. Production only; sandbox development does not require a subscription. Requires craveup login. |
| start_subscription_checkoutA | Create a Stripe Checkout URL for the chosen plan. Give the URL to the user to open in a browser — card entry cannot be automated. After payment, poll get_onboarding_status until the subscription step completes (webhook latency of a few seconds). Production only; sandbox development does not require a subscription. Requires craveup login. |
| seed_sandbox_analyticsA | Create deterministic customers, orders, ratings, and storefront funnel events for the Alvin's Test Hospitality Group dev organization. This tool is idempotent and refuses production hosts, production API processes, non-dev databases, and mismatched locations. |
| list_discountsA | List every discount configured for one authorized location. Requires a Crave merchant API key; the API verifies that the key can access the requested location. |
| create_order_discountB | Idempotently create an order-level promo code at one authorized location. If the code already exists, returns it without creating a duplicate. Percentage amounts must be at most 100. Use list_discounts afterward to verify the stored configuration. |
| import_menuA | Store a complete menu (categories, products, prices, image URLs, modifiers) at a Crave location in one call. Use this after extracting a menu from a website, PDF, or photos. Idempotent: re-importing updates existing items by name instead of duplicating. Forces menu.isActive=true unless explicitly set false. Follow with set_menu_active if needed. |
| set_menu_activeA | Set menu.isActive explicitly so the storefront serves it without falling back to an inactive first menu. Prefer after import_menu when list_menus shows isActive:false. Requires CRAVEUP_API_KEY. |
| list_menusA | Read back the menus exactly as the storefront API serves them (menus → categories → products). Use to verify an import or inspect current state. |
| get_productA | Fetch one product (menu-editor view) by id, including its modifier group ids. |
| update_productA | Change a product's name, description, price, or availability. Fields you omit keep their current values. Use import_menu for structural changes (images, modifiers). |
| set_product_availabilityB | Mark a product available or sold out (today / indefinitely). |
| delete_productA | Remove a product from the location. Category references are cleaned up. |
| check_storefront_readinessA | Hybrid wizard readiness probe: verifies menu has products, a read-only ordering-readiness GET reports takeout availability without creating a cart, and payment configuration is ready. Connected Square is authoritative and must itself be ready; otherwise Stripe is used. It does not create a PaymentIntent or Square payment. Does not use dashboard isOnboardingCompleted. Public probes use the direct Storefront API; private integration status still requires CRAVEUP_API_KEY. |
| get_integration_guideA | Documented patterns for implementing a Crave storefront: SDK setup, menu display, checkout flow, and the bulk menu import format. Read the relevant guide before writing storefront code. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/craveup-oss/craveup-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server