TableSpark Restaurants MCP server
uk.tablespark/restaurantstablespark.ukstreamable-httpv1.0.0Scanned
Find UK independent restaurants, menus, hours and live tables; book or order on their own site.
8 tools: 4 change things and 4 only read.
- Reads private data · 2
- Reads text others write · 5
- Can send data out · 0
- 3 findings
Tools listed without sign-in. Remote posture
With Anlyon
4 tools here change things. Govern them.
- Anlyon lists the tools and adopts none.
- Each tool you adopt gets approvals and receipts.
- Your agent never holds the key.
A tool your agent calls directly is not routed through Anlyon and is not governed by it. anlyon.dev only lists and labels, and these labels are the same either way.
What the TableSpark Restaurants MCP server can do
The TableSpark Restaurants MCP server is published by tablespark.uk, a domain the MCP Registry verified. It has 8 tools. It can create or change data (4 tools: check_table_availability, get_booking_link, get_order_link and get_gift_voucher_link), but cannot delete data. 4 tools only read.
2 tools read private data (search_restaurants and get_restaurant); 5 tools bring in text other people can write (get_restaurant, get_booking_link, get_order_link and 2 more).
The fixed checks matched 3 findings (annotation-conflict). Each one comes with the text it matched.
Its remote endpoint lists its tools without sign-in.
Last scanned Nov 10, 2026, version 1.0.0.
Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
8 tools
Changes things 4Claude Code: ask
check_table_availabilityLive table times for a date and party size, from the restaurant's own booking system.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 Live table times for a date and party size, from the restaurant's own booking system. Each time comes with a link to book it on the restaurant's website. Does not make a booking.
Annotations the server declares
- title: Check table availability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_booking_linkLink to the restaurant's booking form on its own website, carrying the chosen date, party size and time.Reads text others write1 finding
Why it is in this group
- The name "get_booking_link" says "get": a word for reading.
- The description's first verb is "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe description's first sentence says "link" and "website": it reads web pages, which anyone can write.
Findings
- Warn
The server marks "get_booking_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_booking_link" says "get": a word for reading.
Description, as the server wrote it Link to the restaurant's booking form on its own website, carrying the chosen date, party size and time. The guest completes and confirms the booking there.
Annotations the server declares
- title: Booking link
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_gift_voucher_linkLink to buy the restaurant's gift vouchers on its own website.Reads text others write1 finding
Why it is in this group
- The name "get_gift_voucher_link" says "get": a word for reading.
- The description's first verb is "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe description's first sentence says "link" and "website": it reads web pages, which anyone can write.
Findings
- Warn
The server marks "get_gift_voucher_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_gift_voucher_link" says "get": a word for reading.
Description, as the server wrote it Link to buy the restaurant's gift vouchers on its own website.
Annotations the server declares
- title: Gift voucher link
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_order_linkLink to order from the restaurant's own website.Reads text others write1 finding
Why it is in this group
- The name "get_order_link" says "get": a word for reading.
- The description's first verb is "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe description's first sentence says "link" and "website": it reads web pages, which anyone can write.
Findings
- Warn
The server marks "get_order_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_order_link" says "get": a word for reading.
Description, as the server wrote it Link to order from the restaurant's own website. Pass item_id values from get_menu to open it with those dishes already in the basket; the guest reviews, chooses collection or delivery and pays there.
Annotations the server declares
- title: Online order link
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 4Show 4 read-only tools
get_restaurantAddress, phone, opening hours (with open-now and special dates), cuisine, and whether the restaurant takes table bookings, online orders and gift vouchers, with links to its websit…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_restaurant" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "table": it reads databases.
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it Address, phone, opening hours (with open-now and special dates), cuisine, and whether the restaurant takes table bookings, online orders and gift vouchers, with links to its website.
Annotations the server declares
- title: Restaurant details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_eventsUpcoming events the restaurant lists on its website (tastings, live music, set evenings), with links.Reads text others writeNo findings
Why it is in this group
- The name "list_events" says "list": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "website": it reads web pages, which anyone can write.
Description, as the server wrote it Upcoming events the restaurant lists on its website (tastings, live music, set evenings), with links.
Annotations the server declares
- title: Upcoming events
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_restaurantsFind independent UK restaurants that use TableSpark, by name, dish or cuisine words, town or postcode.Reads private dataNo findings
Why it is in this group
- The name "search_restaurants" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "find" and "table": it reads databases.
Description, as the server wrote it Find independent UK restaurants that use TableSpark, by name, dish or cuisine words, town or postcode. Use this first to get a restaurant_id. Can filter to places open now, or that take table bookings or online orders.
Annotations the server declares
- title: Search restaurants
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- 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.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data2
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write5
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Nov 11, 2026, 09:20 UTC, unchanged since Nov 11, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 4
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- not observed
- Authorization servers
- not observed
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
- WarnThe whole server
The endpoint served tools/list without credentials, and the list has 4 tools that change things (4 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://mcp.tablespark.uk/mcp: tools/list returned 8 tools to an anonymous client, including check_table_availability (write), get_booking_link (write), get_order_link (write), get_gift_voucher_link (write)
Findings
Matches of fixed checks, with the text they matched.
- Warnget_booking_link
The server marks "get_booking_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_booking_link" says "get": a word for reading.
- Warnget_order_link
The server marks "get_order_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_order_link" says "get": a word for reading.
The server marks "get_gift_voucher_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_gift_voucher_link" says "get": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http restaurants https://mcp.tablespark.uk/mcpclaude mcp add --transport http restaurants https://mcp.tablespark.uk/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__restaurants__search_restaurants",
"mcp__restaurants__get_restaurant",
"mcp__restaurants__get_menu",
"mcp__restaurants__list_events"
],
"ask": [
"mcp__restaurants__check_table_availability",
"mcp__restaurants__get_booking_link",
"mcp__restaurants__get_order_link",
"mcp__restaurants__get_gift_voucher_link"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as restaurants. Review it before you use it.
Capability tags behind 6 rules
- mcp__restaurants__search_restaurants private-data
- mcp__restaurants__get_restaurant private-data, untrusted-input
- mcp__restaurants__get_booking_link untrusted-input
- mcp__restaurants__get_order_link untrusted-input
- mcp__restaurants__list_events untrusted-input
- mcp__restaurants__get_gift_voucher_link untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/uk.tablespark/restaurants/verify?hash=57092e439835db448d437c5b6b41ead7516aadd9374e4e4a546785dd8e2d7c96" | jq -e '.changed == false'Pinned hash 57092e439835, from Nov 10, 2026, 08:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/uk.tablespark/restaurants/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/uk.tablespark/restaurants)Source: MCP Registry. Synced Nov 10, 2026, 08:18 UTC.
TableSpark Restaurants MCP server: questions and answers
Answered from the scan above, not from the publisher's description.
Is the TableSpark Restaurants MCP server safe?
- No scan can promise that. What its definitions show: 8 tools, 4 of which can change, send or delete something, and 3 findings from fixed checks. Allow the reads, ask before each change, and deny the deletes; the permissions block on this page does that.
Can the TableSpark Restaurants MCP server delete data?
- No tool is classed as destructive: going by their definitions, none of them deletes, cancels or revokes anything.
Can the TableSpark Restaurants MCP server do things that cannot be undone?
- No tool is classed as irreversible: none of them sends, pays, publishes or merges, going by their definitions.
What tools does the TableSpark Restaurants MCP server have?
- 8 tools: 4 write, 4 read. check_table_availability, get_booking_link, get_order_link, get_gift_voucher_link, search_restaurants, get_restaurant, get_menu and list_events.
Does the TableSpark Restaurants MCP server need sign-in or OAuth?
- Its remote endpoint listed its tools to an anonymous client, without sign-in.
Does the TableSpark Restaurants MCP server send data to outside services?
- None of its tools sends, posts or publishes, or takes a recipient, channel or URL.
Has the TableSpark Restaurants MCP server changed its tools?
- Not since anlyon.dev started tracking it. Last scanned Nov 10, 2026.