{"apiVersion":"v1","directorySlug":"eenable-mcp-31a7c7069a","title":"A shop you cannot buy from — eenable.me","description":"No cart, no checkout, no button. CHF 5.00 buys a certificate, CHF 50.00 buys fifteen minutes of Alex Finger's time — but only through an AI agent connected to its MCP server.","pageUrl":"https://www.mcpbundles.com/skills/eenable-mcp-31a7c7069a","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://eenable.me/mcp","hostedMcpUrl":null,"toolCount":16,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"me.eenable/eenable-mcp-31a7c7069a","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_shop_info","description":"What this shop sells, the price, and how buying works. Call this first if you have not dealt with this shop before.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Shop information","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_shop_info","displayName":"Shop information"},{"name":"list_products","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Session types","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_products","displayName":"Session types"},{"name":"check_availability","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"to":{"type":"string"},"from":{"type":"string"},"limit":{"type":"integer","maximum":100,"exclusiveMinimum":0},"timezone":{"type":"string"}}},"title":"Check availability","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"check_availability","displayName":"Check availability"},{"name":"create_order","description":"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, wh","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["email","name","session_type","catalogue_token","buyer_confirmed_session"],"properties":{"name":{"type":"string","maxLength":120,"minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"topic":{"type":"string","maxLength":1000},"slot_id":{"type":"string"},"timezone":{"type":"string"},"background":{"type":"string","maxLength":2000},"session_type":{"enum":["innovation","technology","legal-ai","general"],"type":"string"},"catalogue_token":{"type":"string"},"desired_outcome":{"type":"string","maxLength":1000},"buyer_confirmed_session":{"type":"boolean","const":true}}},"title":"Create an order","logicalName":"create_order","displayName":"Create an order","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_order_status","description":"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 wat","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id"],"properties":{"order_id":{"type":"string"},"wait_seconds":{"type":"integer","maximum":300,"minimum":0}}},"title":"Check order status","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_order_status","displayName":"Check order status"},{"name":"get_order_details","description":"The Teams joining link and meeting details for a paid order. Available only once payment has settled.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"title":"Get booking details","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_order_details","displayName":"Get booking details"},{"name":"get_booking","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"title":"Get booking details (old name)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_booking","displayName":"Get booking details (old name)"},{"name":"cancel_order","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","email"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"order_id":{"type":"string"}}},"title":"Cancel a booking","logicalName":"cancel_order","displayName":"Cancel a booking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cancel_booking","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","email"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"order_id":{"type":"string"}}},"title":"Cancel a booking (old name)","logicalName":"cancel_booking","displayName":"Cancel a booking (old name)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"order_certificate","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["email","name","certificate_id","catalogue_token","buyer_confirmed_choice"],"properties":{"name":{"type":"string","maxLength":120,"minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"certificate_id":{"enum":["ai-repellent"],"type":"string"},"catalogue_token":{"type":"string"},"buyer_confirmed_choice":{"type":"boolean","const":true}}},"title":"Order a certificate","logicalName":"order_certificate","displayName":"Order a certificate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"transfer_certificate","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","new_bearer_name","new_bearer_email"],"properties":{"order_id":{"type":"string"},"new_bearer_name":{"type":"string","maxLength":120,"minLength":1},"new_bearer_email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}}},"title":"Transfer a certificate to a new bearer","logicalName":"transfer_certificate","displayName":"Transfer a certificate to a new bearer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"renounce_certificate","description":"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","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id"],"properties":{"order_id":{"type":"string"}}},"title":"Renounce a certificate","logicalName":"renounce_certificate","displayName":"Renounce a certificate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_order_details","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","email"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"topic":{"type":"string","maxLength":1000},"order_id":{"type":"string"},"background":{"type":"string","maxLength":2000},"session_type":{"enum":["innovation","technology","legal-ai","general"],"type":"string"},"desired_outcome":{"type":"string","maxLength":1000}}},"title":"Update what a booking is about","logicalName":"update_order_details","displayName":"Update what a booking is about","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_booking","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","email"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"topic":{"type":"string","maxLength":1000},"order_id":{"type":"string"},"background":{"type":"string","maxLength":2000},"session_type":{"enum":["innovation","technology","legal-ai","general"],"type":"string"},"desired_outcome":{"type":"string","maxLength":1000}}},"title":"Update what a booking is about (old name)","logicalName":"update_booking","displayName":"Update what a booking is about (old name)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reschedule_session","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","email","new_slot_id"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"order_id":{"type":"string"},"new_slot_id":{"type":"string"}}},"title":"Reschedule a booking","logicalName":"reschedule_session","displayName":"Reschedule a booking","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reschedule_booking","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id","email","new_slot_id"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"order_id":{"type":"string"},"new_slot_id":{"type":"string"}}},"title":"Reschedule a booking (old name)","logicalName":"reschedule_booking","displayName":"Reschedule a booking (old name)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=A-shop-you-cannot-buy-from-eenable-me&config=eyJ1cmwiOiAiaHR0cHM6Ly9lZW5hYmxlLm1lL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22A-shop-you-cannot-buy-from-eenable-me%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Feenable.me%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22A-shop-you-cannot-buy-from-eenable-me%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Feenable.me%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=A+shop+you+cannot+buy+from+%E2%80%94+eenable.me&connectorUrl=https%3A%2F%2Feenable.me%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"A-shop-you-cannot-buy-from-eenable-me\" --url \"https://eenable.me/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/eenable-mcp-31a7c7069a","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/eenable-mcp-31a7c7069a/tools/{tool}","mcpServerUrl":"https://eenable.me/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/eenable-mcp-31a7c7069a?live=1"}