Lokand Restaurant MCP
com.lokand/lokandVersion 1.0.2Free restaurant websites and menus: read any public menu, or build, import and publish a site.
Status
Responds1096 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:04 UTC
- Latency
- 1096 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://api.lokand.com/mcpResponds1096 msNo sign-in
Claude Code
claude mcp add --transport http lokand https://api.lokand.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: lokand
Remote MCP server URL: https://api.lokand.com/mcpCursor
{
"mcpServers": {
"lokand": {
"url": "https://api.lokand.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"lokand","type":"http","url":"https://api.lokand.com/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
73 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
add_blockAdd 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. | Yes | No | No | Yes |
add_categoryAdd a category (section) to a menu. Returns the new category_id. | No | No | No | Yes |
add_itemAdd a dish/item to a menu (optionally inside a category). Returns the new item_id. | No | No | No | Yes |
add_pageAdd a new page with a text section (add more with add_section). Returns the updated document, where the new page's id appears. | Yes | No | No | Yes |
add_sectionAdd 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. | Yes | No | No | Yes |
apply_country_settingsFill 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. | Yes | No | No | Yes |
apply_site_presetAlias of apply_template (`preset` = template id). | Yes | No | No | Yes |
apply_style_presetSwitch 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. | Yes | No | No | Yes |
apply_templateRebuild 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. | Yes | No | No | Yes |
check_complianceCheck 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. | No | Yes | Yes | Yes |
claim_statusCheck 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). | No | Yes | Yes | Yes |
commit_importCommit a completed AI menu import as a real menu (creates the menu, categories, and items). Returns the new menu_id. | No | No | No | Yes |
create_checkout_linkCreate a Stripe Checkout link to upgrade a business to a paid plan. Hand the returned URL to the customer — anyone who opens it can pay; the plan activates automatically after payment (3-month free trial). Pass customer_country (ISO 3166-1 alpha-2) so first-time pricing is quoted in the customer's region, not the agent's. | No | No | No | Yes |
create_full_menuCreate 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). | Yes | No | No | Yes |
create_menuCreate 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. | No | No | No | Yes |
create_restaurantCreate 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). | No | No | No | Yes |
delete_categoryDelete 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. | Yes | No | No | Yes |
delete_itemDelete a menu item. | Yes | No | No | Yes |
delete_menuPermanently 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. | Yes | No | No | Yes |
get_billing_summaryCurrent plan, billing region, and subscription state of a business the caller manages. | No | Yes | Yes | Yes |
get_businessLook up a public Lokand restaurant/business by its slug. Returns profile, hours, contact info, locale and theme metadata. | No | Yes | Yes | Yes |
get_menuFetch a single menu (categories + items with prices) of a public Lokand restaurant. | No | Yes | Yes | Yes |
get_siteRead 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. | No | Yes | Yes | Yes |
get_startedHow 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. | No | Yes | Yes | Yes |
get_statusPrivate 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. | No | Yes | Yes | Yes |
get_storefront_contextThe 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. | No | Yes | Yes | Yes |
get_styleCompile 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'). | No | Yes | Yes | Yes |
import_menuStart 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. | No | No | No | Yes |
import_statusCheck 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. | No | Yes | Yes | Yes |
list_assetsList 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. | No | Yes | Yes | Yes |
list_businessesList the businesses the signed-in user is a member of (id, name, slug, role). Use it to pick the business_id other ops need. | No | Yes | Yes | Yes |
list_menusList the active menus of a public Lokand restaurant by its slug. | No | Yes | Yes | Yes |
make_menu_onlyTurn 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. | Yes | No | No | Yes |
move_blockMove a block to a 0-based position among its siblings. | Yes | No | No | Yes |
move_sectionMove a section to a 0-based position within its page. | Yes | No | No | Yes |
publish_brand_templateChains 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. | Yes | No | No | Yes |
publish_sitePublish (or unpublish) the business's public menu site at https://<slug>.lokand.co. | Yes | No | No | Yes |
remove_blockRemove a block (and any blocks nested in it). | Yes | No | No | Yes |
remove_pageRemove a custom page and its sections. The home page can't be removed — make another page home first (set_page make_home). | Yes | No | No | Yes |
remove_sectionRemove a section from a page. To keep it for later, hide it with update_section hidden=true instead. | Yes | No | No | Yes |
rename_categoryRename a menu category (section). | Yes | No | No | Yes |
reorder_categoriesSet 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. | Yes | No | No | Yes |
reorder_itemsSet 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. | Yes | No | No | Yes |
revert_last_site_changeUndo 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. | Yes | No | No | Yes |
set_brand_linkChains only: link this location to its brand's shared site (linked=true) so it shows the brand template's pages and theme, or unlink it (linked=false) to use its own site again. Hours, address, menus and ordering always stay this location's own. The brand template is set with publish_brand_template. | Yes | No | No | Yes |
set_featured_itemsChoose the dishes shown in the home page's "featured" section, in order (menu item ids, max 12; [] lets the site pick automatically). Adds the section after the hero if the page has none. | Yes | No | No | Yes |
set_nav_linksReplace the navigation with custom links ([] restores the automatic page list). | Yes | No | No | Yes |
set_pageChange 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). | Yes | No | No | Yes |
set_system_themeSwitch to another system theme (get_site lists `system_themes`). Pages, sections and settings are kept. | Yes | No | No | Yes |
set_themeSwitch 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. | Yes | No | No | Yes |
suggest_stylesRecommend 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. | No | Yes | Yes | Yes |
theme_deleteDelete a custom theme and all its stored versions. The live theme can't be deleted — unpublish it first. | Yes | No | No | Yes |
theme_getOne 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). | No | Yes | Yes | Yes |
theme_git_accessGit 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). | No | Yes | Yes | Yes |
theme_historyThe 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. | No | Yes | Yes | Yes |
theme_listList 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. | No | Yes | Yes | Yes |
theme_publishMake 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). | Yes | No | No | Yes |
theme_pullDownload 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. | No | Yes | Yes | Yes |
theme_rollbackRestore 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. | Yes | No | No | Yes |
theme_syncCompile 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. | Yes | No | No | Yes |
theme_unpublishStop using custom theme code: the site goes back to its system theme. The custom theme is kept as unpublished. | Yes | No | No | Yes |
theme_uploadUpload 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. | Yes | No | No | Yes |
theme_write_filesChange 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. | Yes | No | No | Yes |
update_blockMerge-patch one block's settings (null removes a key) and/or hide/show it. | Yes | No | No | Yes |
update_businessUpdate 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. | Yes | No | No | Yes |
update_itemUpdate 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). | Yes | No | No | Yes |
update_loyalty_cardSet 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). | Yes | No | No | Yes |
update_menuRename 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. | Yes | No | No | Yes |
update_sectionChange 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]. | Yes | No | No | Yes |
update_siteLow-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. | Yes | No | No | Yes |
update_themeLegacy look op: switch `preset`, patch v2-style `tokens` (colors, fonts, radius, hero layout, …) or set custom CSS. Prefer update_theme_settings / apply_style_preset. | Yes | No | No | Yes |
update_theme_settingsMerge-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. | Yes | No | No | Yes |
use_assetPut 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. | No | No | No | Yes |
Details
- Registry status
- Active
- Published
- Nov 10, 2026
- Updated
- Nov 10, 2026
- Repository
- Not given
- Categories (suggested)
- SecurityFiles and storageSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared