Lenius
by lenius.app · remote · no sign-in to list tools · v1.1.0 · published by app.lenius
Order from local Danish shops: products, pickup times, card payment and AltID age verification.
8 tools: 4 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http takeaway https://mcp.lenius.app/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 4Claude Code: ask
available_timesAvailable pickup or delivery times for a shop on a date (default: the first date with times), the next dates with times, preparation time and upcoming closed days.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Available pickup or delivery times for a shop on a date (default: the first date with times), the next dates with times, preparation time and upcoming closed days.
Annotations the server declares
- title: Available times
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
place_orderPlace the order with the shop (like the checkout).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Place the order with the shop (like the checkout). Only after the customer confirmed the quoted order and accepted the terms (terms_url). Paid by card in advance on the shop's order page: returns the order number and order_url (with "Betal nu"; the shop gets the order when paid). The customer gets a confirmation e-mail when paid. With products with an age limit and no approved age_check_id, nothing is ordered: returns status age_check_required with the AltID card; call again with age_check_id when the age is confirmed.
Annotations the server declares
- title: Place order
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
quote_orderPrice an order exactly like the shop checkout (lines, fees, discounts, total in DKK incl.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Price an order exactly like the shop checkout (lines, fees, discounts, total in DKK incl. VAT), check that the time, products, minimum order and delivery address are OK, and tell how it is paid. Nothing is saved. Shows a card with the products (with their images), fees and total so the customer can see what they are ordering; show the result to the customer before place_order.
Annotations the server declares
- title: Quote order
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
start_age_checkOnly when the customer orders products with an age limit from several shops: start one age check with AltID with the highest age limit across all the orders (min_age from get_menu/…No findings
Why it is in this group
- The name "start_age_check" says "start": a word for a change.
Description, as the server wrote it Only when the customer orders products with an age limit from several shops: start one age check with AltID with the highest age limit across all the orders (min_age from get_menu/quote_order) and reuse the age_check_id in every place_order (valid 30 minutes after approval, at any shop). With an order from one shop, call place_order instead: it shows the AltID card itself. Shows the AltID card (QR code / "Åbn AltID app") that updates by itself. Never make your own QR code.
Annotations the server declares
- title: Confirm age with AltID
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 4Claude Code: allow
find_shopsFind Lenius takeaway restaurants and shops in a Danish city or postal code.No findings
Why it is in this group
- The name "find_shops" says "find": a word for reading.
Description, as the server wrote it Find Lenius takeaway restaurants and shops in a Danish city or postal code. Optional: what the customer wants (query, e.g. "pizza"), pickup or delivery, and a date/time to check availability (returns the nearest available times).
Annotations the server declares
- title: Find shops
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_age_checkStatus of an age check: pending, approved (pass age_check_id to place_order), failed, expired or revoked.No findings
Why it is in this group
- The name "get_age_check" says "get": a word for reading.
Description, as the server wrote it Status of an age check: pending, approved (pass age_check_id to place_order), failed, expired or revoked. wait_seconds (max 25) waits while pending. While pending, the card shows the AltID QR code again.
Annotations the server declares
- title: Age check status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
order_statusStatus of an order from place_order: awaiting_payment, awaiting_shop_approval, approved, in_kitchen, ready, out_for_delivery, completed, cancelled or rejected (and any delay).No findings
Why it is in this group
- The name "order_status" says "status": a word for reading.
Description, as the server wrote it Status of an order from place_order: awaiting_payment, awaiting_shop_approval, approved, in_kitchen, ready, out_for_delivery, completed, cancelled or rejected (and any delay).
Annotations the server declares
- title: Order status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http takeaway https://mcp.lenius.app/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__takeaway__find_shops",
"mcp__takeaway__get_menu",
"mcp__takeaway__get_age_check",
"mcp__takeaway__order_status"
],
"ask": [
"mcp__takeaway__available_times",
"mcp__takeaway__quote_order",
"mcp__takeaway__place_order",
"mcp__takeaway__start_age_check"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as takeaway. Review it before you use it.