Skip to content

eenable — a shop with no checkout

me.eenable/shopeenable.mestreamable-httpv1.0.0Scanned

Buy 15 minutes of Alex Finger's time, or an AI Repellent certificate. Agents only.

16 tools: 3 can delete or cancel things, 1 do something that can't be undone, 6 change things and 6 only read.

Tools: 3 delete, 1 irreversible, 6 write, 6 read.
  • Reads private data · 1
  • Reads text others write · 0
  • Can send data out · 0
  • No findings

Tools listed without sign-in. Remote posture

Anlyon alternative

10 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

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.

16 tools

Deletes or cancels 3Claude Code: deny
  • cancel_bookingDEPRECATED — this tool is now called cancel_order and behaves identically.No findings

    Why it is in this group

    • The name "cancel_booking" says "cancel": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    DEPRECATED — this tool is now called cancel_order and behaves identically. The old name keeps working so that agents connected before the rename are not broken. Prefer cancel_order, which is accurate for certificates as well as appointments. Cancel a booking and refund it in full. Requires the email the order was created with. Confirm with the buyer before calling — this releases the slot and reverses the payment. If this tool ever fails, tell the buyer they can cancel by emailing the seller with their order number instead; the seller honours that on identical terms.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
  • cancel_orderCancel a booking and refund it in full.No findings

    Why it is in this group

    • The name "cancel_order" says "cancel": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Cancel a booking and refund it in full. Requires the email the order was created with. Confirm with the buyer before calling — this releases the slot and reverses the payment. If this tool ever fails, tell the buyer they can cancel by emailing the seller with their order number instead; the seller honours that on identical terms.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
  • renounce_certificateDestroy the proof of ownership for an AI Repellent, completing the transfer.No findings

    Why it is in this group

    • The description's first verb is "destroy": a word for removing or ending something.
    • The description says "cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Destroy the proof of ownership for an AI Repellent, completing the transfer. After Yves Klein, who required buyers of his immaterial works to burn the receipt: keeping it meant owning a receipt, burning it meant owning the work with nothing left to demonstrate it. This strikes the hash from the register permanently and cannot be undone. Explain that to the buyer and get their agreement before calling it — some will want the certificate precisely because it is a certificate. Note that this needs only the order number, which is printed on the certificate: it is a bearer instrument, so anyone holding the PDF can do this. Say so if the buyer is planning to share it.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
Can't be undone 1Claude Code: ask
  • transfer_certificatePass a certificate to someone else.No findings

    Why it is in this group

    • The name "transfer_certificate" says "transfer": a word for a change that another call does not undo.
    Description, as the server wrote it
    Pass a certificate to someone else. Klein's receipts carried a clause — a transferable zone may be ceded by its owner only at double its initial purchase value — so a transfer here costs exactly twice what the certificate cost, and the shop will not do it for less. The serial number and the hash do not change: it is the same object endorsed to a new bearer, not a new certificate. Returns a payment link; the transfer takes effect once it is paid.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
Changes things 6Claude Code: ask
  • create_orderReserve a slot and get a payment link.No findings

    Why it is in this group

    • The name "create_order" says "create": a word for a change.
    Description, as the server wrote it
    Reserve a slot and get a payment link. This is the only way to buy — there is no checkout on the website. The slot is held for 30 minutes. Confirm the exact time and the price with the buyer before calling this, and use their real email address: the calendar invitation and receipt go there. You must call list_products first, put the session options to the buyer in your own reply, and wait for them to choose. This tool needs the catalogue_token from that call and buyer_confirmed_session: true, which you may only set once the buyer has actually answered. Choosing a session on their behalf from what they said earlier is not the same as asking, and is not acceptable here. Before calling, ask the buyer what they want to discuss and what they are hoping to get out of the call, and pass their answers as topic and desired_outcome. Fifteen minutes is short; the seller uses these to prepare, and a booking that arrives blank wastes some of the time the buyer paid for.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • order_certificateBuy a certificate.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
    Buy a certificate. Certificates are objects, not appointments: there is no slot, no calendar entry and no meeting. One is issued the moment payment settles, emailed as a PDF, and registered against a hash anyone can verify. Use this instead of create_order, which is only for booking time. As with sessions, show the buyer what is on offer and let them choose rather than deciding for them.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • reschedule_bookingDEPRECATED — this tool is now called reschedule_session and behaves identically.No findings

    Why it is in this group

    • The name "reschedule_booking" says "reschedule": a word for a change.
    Description, as the server wrote it
    DEPRECATED — this tool is now called reschedule_session and behaves identically. The old name keeps working so that agents connected before the rename are not broken. Prefer reschedule_session, which is accurate for certificates as well as appointments. Move a booking to a different slot at no charge. Requires the email the order was created with. Call check_availability first to get a valid new_slot_id.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • reschedule_sessionMove a booking to a different slot at no charge.No findings

    Why it is in this group

    • The name "reschedule_session" says "reschedule": a word for a change.
    Description, as the server wrote it
    Move a booking to a different slot at no charge. Requires the email the order was created with. Call check_availability first to get a valid new_slot_id.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • update_bookingDEPRECATED — this tool is now called update_order_details and behaves identically.No findings

    Why it is in this group

    • The name "update_booking" says "update": a word for a change.
    Description, as the server wrote it
    DEPRECATED — this tool is now called update_order_details and behaves identically. The old name keeps working so that agents connected before the rename are not broken. Prefer update_order_details, which is accurate for certificates as well as appointments. Change the session type or the brief on an existing booking — what the buyer wants to discuss, what they want out of it, or the background they want read first. Use this when the buyer refines their thinking after booking, which is common: people work out the real question after the date is in the diary. Only the fields you pass are changed. This does not move the meeting — use reschedule_booking for that.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
  • update_order_detailsChange the session type or the brief on an existing booking — what the buyer wants to discuss, what they want out of it, or the background they want read first.No findings

    Why it is in this group

    • The name "update_order_details" says "update": a word for a change.
    Description, as the server wrote it
    Change the session type or the brief on an existing booking — what the buyer wants to discuss, what they want out of it, or the background they want read first. Use this when the buyer refines their thinking after booking, which is common: people work out the real question after the date is in the diary. Only the fields you pass are changed. This does not move the meeting — use reschedule_booking for that.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
Only reads 6Show 6 read-only tools
  • check_availabilityList bookable slots.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List bookable slots. Optionally narrow with an ISO date or datetime range, and pass the buyer's IANA timezone to get their local times alongside the seller's.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_bookingDEPRECATED — this tool is now called get_order_details and behaves identically.No findings

    Why it is in this group

    • The name "get_booking" says "get": a word for reading.
    Description, as the server wrote it
    DEPRECATED — this tool is now called get_order_details and behaves identically. The old name keeps working so that agents connected before the rename are not broken. Prefer get_order_details, which is accurate for certificates as well as appointments. The Teams joining link and meeting details for a paid order. Available only once payment has settled.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_order_detailsThe Teams joining link and meeting details for a paid order.Reads private dataNo findings

    Why it is in this group

    • The name "get_order_details" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "meeting": it reads calendars.
    Description, as the server wrote it
    The Teams joining link and meeting details for a paid order. Available only once payment has settled.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_order_statusWhether an order has been paid.No findings

    Why it is in this group

    • The name "get_order_status" says "get": a word for reading.
    Description, as the server wrote it
    Whether an order has been paid. After the first call this BLOCKS, waiting for the buyer to finish paying, and returns the instant it settles — so call it once rather than polling in a loop. It holds for up to five minutes, longer than a person normally takes to pay; if it returns still 'pending_payment', call it again. IMPORTANT: you cannot send the buyer a message while this call is waiting. Make sure you have already given them the payment link before you let it block, or they will be left watching you do nothing.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • get_shop_infoWhat this shop sells, the price, and how buying works.No findings

    Why it is in this group

    • The name "get_shop_info" says "get": a word for reading.
    Description, as the server wrote it
    What this shop sells, the price, and how buying works. Call this first if you have not dealt with this shop before.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • list_productsThe session types this shop sells.No findings

    Why it is in this group

    • The name "list_products" says "list": a word for reading.
    Description, as the server wrote it
    The session types this shop sells. Show these to the buyer and let them choose — do not pick for them unless they ask you to. Each returns an id to pass to create_order as session_type. If the buyer is unsure, the good_for examples are there to help them decide, and 'general' is a perfectly good answer.

    Annotations the server declares

    • readOnlyHint: 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 untrusted-input or outbound.

Reads private data1
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
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.

Tools listed without sign-in

Looked at Oct 22, 2026, 15:10 UTC, unchanged since Oct 22, 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
10
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
  • HighThe whole server

    The endpoint served tools/list without credentials, and the list has 10 tools that change things (3 destructive, 1 irreversible, 6 write). Whether a call also works without credentials was not tested: tools are never called.

    Matched text

    https://eenable.me/mcp: tools/list returned 16 tools to an anonymous client, including cancel_order (destructive), cancel_booking (destructive), renounce_certificate (destructive), transfer_certificate (irreversible), create_order (write) and 5 more

    What this check looks for

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

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 shop https://eenable.me/mcp
claude mcp add --transport http shop https://eenable.me/mcp

Run 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.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__shop__get_shop_info",
      "mcp__shop__list_products",
      "mcp__shop__check_availability",
      "mcp__shop__get_order_status",
      "mcp__shop__get_order_details",
      "mcp__shop__get_booking"
    ],
    "ask": [
      "mcp__shop__create_order",
      "mcp__shop__order_certificate",
      "mcp__shop__transfer_certificate",
      "mcp__shop__update_order_details",
      "mcp__shop__update_booking",
      "mcp__shop__reschedule_session",
      "mcp__shop__reschedule_booking"
    ],
    "deny": [
      "mcp__shop__cancel_order",
      "mcp__shop__cancel_booking",
      "mcp__shop__renounce_certificate"
    ]
  }
}

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 shop. Review it before you use it.

Capability tags behind 1 rule
  • mcp__shop__get_order_details private-data

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/me.eenable/shop/verify?hash=fe5cfe7a979c2fac4c009cae276082b4dfd6358bfa9d79642c429b1244ea8436" | jq -e '.changed == false'

Pinned hash fe5cfe7a979c, from Oct 21, 2026, 19:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/me.eenable/shop/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for me.eenable/shop
[![anlyon.dev](https://anlyon.dev/badge/me.eenable/shop.svg)](https://anlyon.dev/servers/me.eenable/shop)

Source: MCP Registry. Synced Oct 21, 2026, 18:53 UTC.