Lokand Restaurant MCP

com.lokandPublished by lokand.comOfficial publisherv1.0.2Updated Nov 11, 2026

Free restaurant websites and menus: read any public menu, or build, import and publish a site.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Lets an assistant read public restaurant menus and build, import, theme and publish a restaurant's Lokand menu website.

What you can do
  • Read public restaurant profiles, hours, contact info and menus by slug
  • Manage menus and dishes: create full menus, add, update, reorder and delete sections and items
  • Edit the business profile, opening hours, currency, locale and place details
  • Build the website: pages, sections, templates, style presets and theme settings, then publish or unpublish
  • Import a menu by AI from an existing website URL and review the draft before committing
  • Check menu compliance against a country's rules, apply suggested settings, and view billing or create a Stripe checkout link
When to use it
Useful when an assistant is helping a restaurant owner or agency set up, restyle, import or maintain a Lokand restaurant site and menu, or when it needs to look up a public restaurant's menu and details.
Requirements
Remote streamable HTTP endpoint at api.lokand.com; no package or environment variables declared. Management operations need membership in the business and OAuth bearer tokens, which create_restaurant returns and claim_status can refresh after the customer claims the site.
Before you install
Many tools write, publish, replace or permanently delete data: delete_menu removes all sections and items, apply_template replaces page structure, and publish_site makes a site public. create_checkout_link produces a payment link anyone can use to pay. OAuth tokens returned by create_restaurant and claim_status are credentials and should be kept private.

Installation

In SourceWeft

  1. Open Lokand Restaurant MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.lokand%2Flokand/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "lokand-restaurant": {
      "type": "http",
      "url": "https://api.lokand.com/mcp"
    }
  }
}

Tools

73

get_started

Get started

How to use Lokand as an agent: the recipes for creating a restaurant for a customer, editing menus, and handing over ownership. Call this first if you're unsure what to do.

Takes no parameters.

list_businesses

List businesses

List the businesses the signed-in user is a member of (id, name, slug, role). Use it to pick the business_id other ops need.

Takes no parameters.

get_business

Get business

Look up a public Lokand restaurant/business by its slug. Returns profile, hours, contact info, locale and theme metadata.

Parametersslugrequired

list_menus

List menus

List the active menus of a public Lokand restaurant by its slug.

Parametersslugrequired

get_menu

Get menu

Fetch a single menu (categories + items with prices) of a public Lokand restaurant.

Parametersslugrequiredmenu_idrequired

get_status

Get status

Private status of a business the caller manages: profile (including unpublished state), all menus (active and inactive), and plan. Requires the menu:read scope and membership.

Parametersbusiness_idrequired

create_full_menu

Create full menu

Create a COMPLETE menu (sections + items) in one call — prefer this over separate create_menu/add_category/add_item calls. With replace=true, existing menus are deactivated so this becomes the business's live menu (their data is kept, just hidden).

Parametersmenurequiredreplacebusiness_idrequired

create_menu

Create menu

Create an EMPTY menu on a business the caller manages (add sections with add_category, dishes with add_item). For a whole menu at once, use create_full_menu instead. Returns the new menu_id.

Parametersidnamerequiredis_activebusiness_idrequireddescription

add_category

Add category

Add a category (section) to a menu. Returns the new category_id.

Parametersidnamerequiredmenu_idrequiredsort_order

add_item

Add item

Add a dish/item to a menu (optionally inside a category). Returns the new item_id.

Parametersidnamerequiredpricemenu_idrequiredsort_ordervariationscategory_iddescriptiondietary_infois_available

update_item

Update item

Update a menu item's fields (name, description, price, availability, category, sort order). Only provided fields change. Setting is_available=false takes a dish off the public site (86 it).

Parametersnamepriceitem_idrequiredsort_ordervariationscategory_iddescriptiondietary_infois_available

delete_item

Delete item

Delete a menu item.

Parametersitem_idrequired

update_menu

Update menu

Rename a menu, change its description, or switch it on/off on the public site (is_active). Only provided fields change. Menu ids come from get_status.

Parametersnamemenu_idrequiredis_activedescription

delete_menu

Delete menu

Permanently delete a menu together with ALL of its sections and items. To take a menu off the site but keep it, use update_menu is_active=false instead.

Parametersmenu_idrequired

rename_category

Rename category

Rename a menu category (section).

Parametersnamerequiredcategory_idrequired

reorder_categories

Reorder categories

Set the order of a menu's categories (sections). List category ids top to bottom; any you leave out keep their current relative order after the listed ones.

Parametersmenu_idrequiredcategory_idsrequired

delete_category

Delete category

Delete a menu category (section). Its items are NOT deleted — they stay on the menu without a section; move them with update_item category_id or delete them with delete_item.

Parameterscategory_idrequired

reorder_items

Reorder items

Set the order of the items in one section of a menu. List item ids top to bottom; listed items from another section are moved into this one, and the section's other items keep their relative order after the listed ones.

Parametersmenu_idrequireditem_idsrequiredcategory_idrequired

update_business

Update business

Update a business's profile: name, description, about text, opening hours, contact info, currency, default locale, menu display options, country, business details, or place (location, address, timezone, category, cuisines). Only provided fields change.

Parametersnameabouthoursplacemaps_urllegal_infobusiness_idrequireddescriptioncontact_infocountry_codemenu_optionscurrency_code+1 more

set_theme

Set theme

Switch the site to a system theme with `theme_id` (lokand-base, lokand-one — get_site lists them; pages, sections and settings are kept). Legacy shape: `theme_key` (a style preset) plus an optional v1 `theme_config` patch (colors, fonts, hero title/subtitle) — prefer apply_style_preset / update_theme_settings for that. Revertible with revert_last_site_change.

Parameterstheme_idtheme_keybusiness_idrequiredtheme_config

publish_site

Publish site

Publish (or unpublish) the business's public menu site at https://<slug>.lokand.co.

Parameterspublishbusiness_idrequired

create_restaurant

Create restaurant

Create a new Lokand restaurant on a customer's behalf — ONE call can produce a complete LIVE website when you pass `menu` (and optionally hours/theme). Returns working OAuth tokens (Bearer, for follow-up edit ops), the live site_url, and a claim_url. NEXT STEPS after this call: refine with add_item/update_item/set_theme if needed, then give the customer the claim_url so they take ownership (free signup); poll claim_status to keep access after they claim. Requires a client registered once via POST /api/auth/oauth2/register (see https://lokand.com/auth.md).

Parametersmenunamerequiredslughoursplacethemepublishmaps_urlclient_idrequireddescriptioncontact_infoclient_secretrequired+2 more

claim_status

Claim status

Check whether the customer has claimed an agent-created restaurant. On the first poll after a claim with consent granted, returns fresh OAuth tokens for continued management (delivered exactly once).

Parametersclient_idrequiredclaim_tokenrequiredclient_secretrequired

get_billing_summary

Get billing summary

Current plan, billing region, and subscription state of a business the caller manages.

Parametersbusiness_idrequired

import_menu

Import menu

Start an AI import of a restaurant's menu from the URL of its existing website. Returns an import_id to poll with import_status; when complete, call commit_import to turn the draft into a real menu.

Parametersurlrequiredbusiness_idrequired

import_status

Import status

Check an AI menu import: processing, complete (draft ready to commit), or failed. `progress.found` lists what is known so far; complete responses include the draft for review.

Parametersimport_idrequired

commit_import

Commit import

Commit a completed AI menu import as a real menu (creates the menu, categories, and items). Returns the new menu_id.

Parametersimport_idrequired

check_compliance

Check compliance

Check a business's published menu against what a country's menu rules ask for — allergen and calorie declarations, price-list notices, banned surcharges, operator identity. Returns each requirement with its official sources, plus which ones the menu currently falls short of and the item ids involved. ADVISORY ONLY: it reports, it never changes the site, and it is not legal advice.

Parameterscountrybusiness_idrequired

apply_country_settings

Apply country settings

Fill the business's menu display options with the values a country's rules suggest — a notice about tax-inclusive pricing, the price-effective date, ordering restrictions. These are DEFAULTS: the owner can change any of them afterwards, and nothing here is enforced.

Parameterslocalecountryoverwritebusiness_idrequired

get_site

Get site

Read the business's website: `document` (the v3 site document — settings, home, pages, and templates[page_id] → sections → blocks, with the ids every other site op needs), `theme` (what the live theme offers: every section and block type with its settings, the theme settings, and style presets), `resolved_settings` (the concrete theme settings the site renders with), `live_theme` (the custom theme code in use, with its file paths, or null for a system theme), `style_hooks` (stable [data-lk="…"] attributes custom_css can target on a system theme), `system_themes` (for set_system_theme) and `templates` (segment layouts for apply_template). Settings are listed compactly as "id:type(options)"; pass detail: "full" for labels and defaults. ALWAYS call this before changing the site.

Parametersdetailbusiness_idrequired

update_site

Update site

Low-level escape hatch: apply an RFC 7386 JSON merge patch to the whole v3 site document returned by get_site.document (objects merge, null deletes a key, arrays REPLACE). Prefer the specific site ops. The result is validated against the theme before anything is saved.

Parameterspatchrequiredbusiness_idrequired

update_theme_settings

Update theme settings

Merge-patch the theme's global settings (keys from get_site.theme.theme_settings, e.g. color_primary, font_heading, radius, custom_css). null resets a key to the theme/preset default.

Parameterssettingsrequiredbusiness_idrequired

apply_style_preset

Apply style preset

Switch the site's style preset (get_site.theme.style_presets, e.g. terra, porto, noir, marche, slate). Colors and fonts the owner changed are reset unless keep_overrides=true.

Parameterspresetrequiredbusiness_idrequiredkeep_overrides

update_theme

Update theme

Legacy look op: switch `preset`, patch v2-style `tokens` (colors, fonts, radius, hero layout, …) or set custom CSS. Prefer update_theme_settings / apply_style_preset.

Parameterspresettokenscustom_cssbusiness_idrequired

apply_template

Apply template

Rebuild the site's pages and sections from a segment template (cafe, ghost-kitchen, fine-dining, chain, bar, bakery — see get_site.templates). Replaces the page structure; hero copy and custom CSS carry over. keep_theme=true keeps the current style. Revertible with revert_last_site_change.

Parameterstemplaterequiredkeep_themebusiness_idrequired

apply_site_preset

Apply site preset

Alias of apply_template (`preset` = template id).

Parameterspresetrequiredkeep_themebusiness_idrequired

set_page

Set page

Change one page: enable/disable it, show/hide it in the navigation, rename its title, change its path, make it the home page, or move it in the navigation. Only provided fields change. Page ids come from get_site.document.pages (built-ins: home, menu, about, loyalty).

Parameterspathtitleenabledpage_idrequiredpositionmake_homebusiness_idrequiredshow_in_nav

add_page

Add page

Add a new page with a text section (add more with add_section). Returns the updated document, where the new page's id appears.

Parameterspathtitlerequiredpositionbusiness_idrequired

remove_page

Remove page

Remove a custom page and its sections. The home page can't be removed — make another page home first (set_page make_home).

Parameterspage_idrequiredbusiness_idrequired

add_section

Add section

Add a section of a given `type` (keys of get_site.theme.sections) to a page, optionally from one of its presets, with a settings patch and a 0-based position (default: the end). Sections hold blocks; add them with add_block.

Parameterskindtypepresetpage_idrequiredpositionsettingsbusiness_idrequired

update_section

Update section

Change one section: merge-patch its settings (null removes a key; settings: null resets them all) and/or hide/show it. Ids come from get_site.document.templates[page_id].

Parametershiddenpage_idrequiredsettingssection_idrequiredbusiness_idrequired

remove_section

Remove section

Remove a section from a page. To keep it for later, hide it with update_section hidden=true instead.

Parameterspage_idrequiredsection_idrequiredbusiness_idrequired

move_section

Move section

Move a section to a 0-based position within its page.

Parameterspage_idrequiredpositionrequiredsection_idrequiredbusiness_idrequired

add_block

Add block

Add a block (a repeatable piece inside a section: a link, a photo, a testimonial, …) of a `type` the section accepts (get_site.theme.sections[type].blocks). Nest it in another block with parent_block_id.

Parameterstyperequiredpresetpage_idrequiredpositionsettingssection_idrequiredbusiness_idrequiredparent_block_id

update_block

Update block

Merge-patch one block's settings (null removes a key) and/or hide/show it.

Parametershiddenpage_idrequiredblock_idrequiredsettingssection_idrequiredbusiness_idrequired

move_block

Move block

Move a block to a 0-based position among its siblings.

Parameterspage_idrequiredblock_idrequiredpositionrequiredsection_idrequiredbusiness_idrequired

remove_block

Remove block

Remove a block (and any blocks nested in it).

Parameterspage_idrequiredblock_idrequiredsection_idrequiredbusiness_idrequired

set_system_theme

Set system theme

Switch to another system theme (get_site lists `system_themes`). Pages, sections and settings are kept.

Parameterstheme_idrequiredbusiness_idrequired

make_menu_only

Make menu only

Turn the site into a single menu page (the menu becomes the home page, every other page is disabled). Use when the owner wants "just the menu". Revertible with revert_last_site_change.

Parametersbusiness_idrequired

publish_brand_template

Publish brand template

Chains only: make this location's published site the brand template that every linked location of its organization shows (see set_brand_link). Requires brand owner/admin and the franchise plan.

Parametersbusiness_idrequired

revert_last_site_change

Revert last site change

Undo the most recent site change made through the site ops or set_theme (up to the last 10, kept for 30 days). Call repeatedly to step further back. 404 when there is nothing to undo.

Parametersbusiness_idrequired

update_loyalty_card

Update loyalty card

Set up or change the business's loyalty stamp card: how many stamps earn the reward, the reward text, whether the card is live, and its look. Only provided fields change; the first call must include stamps_required and reward_text. Requires the Pro plan (402 plan_required otherwise — offer create_checkout_link).

Parametersis_activebusiness_idrequiredcard_configreward_textstamps_required

theme_list

Theme list

List the business's custom themes (id, name, role live|unpublished|development, version, upload status) and the system themes. Custom theme code is a Pro feature.

Parametersbusiness_idrequired

theme_get

Theme get

One theme's details and upload status: ready (the version is stored and can be published), processing (poll again in a second or two) or failed (with the error).

Parameterstheme_idrequiredbusiness_idrequired

theme_pull

Theme pull

Download a theme's files ({path: text}). theme_id "lokand-base" or "lokand-one" returns a system theme to start from. Custom themes return their latest stored version. A whole theme is large: pass search to find the lines you need to change, or list_only for paths and sizes, then paths for whole files.

Parameterspathssearchtheme_idrequiredlist_onlybusiness_idrequired

theme_upload

Theme upload

Upload a complete custom theme (Pro plan) as a new commit in its Git repo. Files are validated and compiled at once — a 422 lists every problem as `path: message` lines — then compiled in the background: poll theme_get until status is ready, then theme_publish. Without theme_id, role development reuses your one development theme and role unpublished creates a new theme; with theme_id it stores the next version of that theme. Updating the live theme needs allow_live: true.

Parametersnamerolefilesrequiredmessagetheme_idallow_livebusiness_idrequired

theme_write_files

Theme write files

Change some files of a custom theme (Pro plan) as one new commit: files maps path → whole new text (null deletes), edits are find/replace changes. Read the current files with theme_pull first. Same validation and background compile as theme_upload. On the LIVE theme the change goes live automatically once compiled; theme_rollback undoes it. On a system theme id (lokand-base, lokand-one) it creates a new unpublished theme from it; pass publish: true to make that live too.

Parametersnameeditsfilesmessagepublishtheme_idrequiredbusiness_idrequired

theme_publish

Theme publish

Make a custom theme the live site's code (Pro plan). The previous live theme becomes unpublished and cached pages refresh. `warnings` lists parts of the current site document the new theme doesn't define (fix them with the site ops).

Parameterstheme_idrequiredbusiness_idrequired

theme_unpublish

Theme unpublish

Stop using custom theme code: the site goes back to its system theme. The custom theme is kept as unpublished.

Parametersbusiness_idrequired

theme_delete

Theme delete

Delete a custom theme and all its stored versions. The live theme can't be deleted — unpublish it first.

Parameterstheme_idrequiredbusiness_idrequired

get_storefront_context

Get storefront context

The exact data a theme renders with (the StorefrontData Liquid objects are built from): the business (localized, brand site applied), every active menu with items, primary menu id, loyalty/ordering flags, the stamp-card program and its resolved style — plus theme_data (the site document) and live_theme. Use it to preview or test theme code locally.

Parameterslocalebusiness_idrequired

theme_history

Theme history

The commit history of a custom theme's code, newest first: hash, message, author, time. The `commit` on theme_get is the one the site renders.

Parameterslimittheme_idrequiredbusiness_idrequired

theme_rollback

Theme rollback

Restore a custom theme's code to an earlier commit (Pro plan). It is saved as a new commit, so the rollback itself can be undone; on the live theme it goes live once compiled. Without commit, restores the version before the latest change.

Parameterscommittheme_idrequiredbusiness_idrequired

theme_git_access

Theme git access

Git access to a custom theme's code: the HTTPS remote and a repo-scoped token (read, or write on the Pro plan). Pushes to main compile automatically and, for the live theme, publish once compiled; theme_get shows a push that failed to compile as push_error. Tokens expire (default 1 hour).

Parametersscopetheme_idrequiredbusiness_idrequiredttl_seconds

theme_sync

Theme sync

Compile the latest commit on a custom theme's main branch now (Pro plan). Pushes compile on their own; call this to apply a push immediately or to retry. Validates like an upload and, for the live theme, publishes once compiled. Poll theme_get for status.

Parameterstheme_idrequiredbusiness_idrequired

list_assets

List assets

List every image the business owns: its media library (uploads, photos copied from its old website at import, photos the owner attached in chat), its logo and every menu item photo. Each entry has its url, kind, source, where it is used, and tags a vision model read off the image: subject (dish, drink, interior, exterior, people, logo, menu), what it shows, whether it matches the dish it is labelled as, quality 1-5, dominant colors and alt text. Use these urls for any site or menu image; never use an outside image.

Parameterskindbusiness_idrequired

use_asset

Use asset

Put one of the business's own images (a url from list_assets) to use: as the logo (target "logo") or as a menu item's photo (target "item" with item_id). For a site section or block image, pass the same url to update_section / update_block instead.

Parametersurlrequiredtargetrequireditem_idbusiness_idrequired

suggest_styles

Suggest styles

Recommend looks for the business's website from Lokand's style library (14 hand-made looks, from a Michelin-style 'gastronomique' to a street 'bufe'), read from its menu, prices, logo and photos. Returns the three best fits, how bold to go (safe / distinct / bold, from how much material the business has) and why, and the whole library. Call this before a new look or a redesign, then get_style for the chosen look.

Parametersbusiness_idrequired

get_style

Get style

Compile one look from the style library into the exact settings to send in ONE update_theme_settings call (palette, fonts, shape, spacing and a signature custom_css on the stable [data-lk] hooks), plus the menu section style to set, the photo to put in the home hero (hero_image, if any), how to shape the home page, the copy voice, and do / don't lists. By default it uses the logo's color when the logo has a strong one. level: safe, distinct or bold (from suggest_styles, or the owner's ask: 'bolder' / 'simpler').

Parameterslevelstylerequiredseed_colorbusiness_idrequireduse_logo_colors

Version history

1
  1. v1.0.2LatestNov 11, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.