Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings
Server Details
Agent-to-business commerce sandbox: intents, offers, bookings. Demo data, ed25519-signed calls.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 25.9% over 60 days
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 6 tools
Each tool maps to a distinct step in the buy flow: register_agent, send_intent, list_offers, hold_slot, confirm_booking, and approve_pending as the seller-side approval branch. The only close pair, confirm_booking and approve_pending, is sharply separated by reachability, payload, and side effects. No two tools can plausibly be confused.
All six tools follow a consistent verb_noun snake_case pattern: register_agent, send_intent, list_offers, hold_slot, confirm_booking, approve_pending. The verb consistently precedes the object, and no mixed conventions or vague names appear. An agent can predict the tool name from the action it wants to perform.
Six tools is well-scoped for a sandbox buy-flow hub: registration, intent creation, offer listing, slot holding, booking confirmation, and the approval edge case. Each tool has a distinct role and none feels redundant or like filler. This sits comfortably in the ideal range.
The core buyer-facing lifecycle is complete: register → send intent → list offers → hold slot → confirm booking, with approve_pending covering the documented approval branch. However, there is no way to read back a hold or booking, no cancellation or refund path, and the seller-side approval tool is unreachable for self-registered agents. These are notable but non-blocking gaps for a demo sandbox.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- Changed
approve_pending1 field changed- changed
Input schema / properties / signature / descriptionPrevious value: -"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example: https://hub.videtion.com/spec"New value: +"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example, and where it actually is: https://hub.videtion.com/quickstart.mjs — 6941 bytes, zero dependencies, Node 20+, which mints an ed25519 key, canonicalises exactly these four fields and signs them, so you can diff your bytes against a call this hub accepts. https://hub.videtion.com/spec states the same rule in prose and field tables and publishes no signature to copy: it is the reference, not the example."
- Changed
confirm_booking1 field changed- changed
Input schema / properties / signature / descriptionPrevious value: -"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example: https://hub.videtion.com/spec"New value: +"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example, and where it actually is: https://hub.videtion.com/quickstart.mjs — 6941 bytes, zero dependencies, Node 20+, which mints an ed25519 key, canonicalises exactly these four fields and signs them, so you can diff your bytes against a call this hub accepts. https://hub.videtion.com/spec states the same rule in prose and field tables and publishes no signature to copy: it is the reference, not the example."
- Changed
hold_slot1 field changed- changed
Input schema / properties / signature / descriptionPrevious value: -"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example: https://hub.videtion.com/spec"New value: +"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example, and where it actually is: https://hub.videtion.com/quickstart.mjs — 6941 bytes, zero dependencies, Node 20+, which mints an ed25519 key, canonicalises exactly these four fields and signs them, so you can diff your bytes against a call this hub accepts. https://hub.videtion.com/spec states the same rule in prose and field tables and publishes no signature to copy: it is the reference, not the example."
- Changed
list_offers1 field changed- changed
Input schema / properties / signature / descriptionPrevious value: -"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example: https://hub.videtion.com/spec"New value: +"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example, and where it actually is: https://hub.videtion.com/quickstart.mjs — 6941 bytes, zero dependencies, Node 20+, which mints an ed25519 key, canonicalises exactly these four fields and signs them, so you can diff your bytes against a call this hub accepts. https://hub.videtion.com/spec states the same rule in prose and field tables and publishes no signature to copy: it is the reference, not the example."
- Changed
register_agent1 field changed- changed
Input schema / properties / signature / descriptionPrevious value: -"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example: https://hub.videtion.com/spec"New value: +"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example, and where it actually is: https://hub.videtion.com/quickstart.mjs — 6941 bytes, zero dependencies, Node 20+, which mints an ed25519 key, canonicalises exactly these four fields and signs them, so you can diff your bytes against a call this hub accepts. https://hub.videtion.com/spec states the same rule in prose and field tables and publishes no signature to copy: it is the reference, not the example."
- Changed
send_intent1 field changed- changed
Input schema / properties / signature / descriptionPrevious value: -"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example: https://hub.videtion.com/spec"New value: +"Hex-encoded ed25519 signature over the RFC 8785 (JCS) canonical JSON of exactly {payload, agent_id, nonce, timestamp} — the whole envelope minus this field. Sign with the private key matching the public_key you registered. Worked example, and where it actually is: https://hub.videtion.com/quickstart.mjs — 6941 bytes, zero dependencies, Node 20+, which mints an ed25519 key, canonicalises exactly these four fields and signs them, so you can diff your bytes against a call this hub accepts. https://hub.videtion.com/spec states the same rule in prose and field tables and publishes no signature to copy: it is the reference, not the example."
1 tool update
- Changed
send_intent1 field changed- changed
Input schema / properties / payload / properties / product / descriptionPrevious value: -"Free-form product spec, e.g. { width: 225, profile: 45, diameter: 18, season: \"winter\", quantity: 4 }."New value: +"Free-form product spec. Sellers match on product.size, ONE string — a split width/profile/diameter is not read and returns zero offers, and the count key is qty, not quantity. Shape the demo inventory answers: {\"size\":\"225/45 R18\",\"season\":\"winter\",\"qty\":4}"
6 tool updates
- Changed
approve_pending13 fields changed- added
Input schema / properties / agent_id / maxLengthAdded value: +128 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - added
Input schema / properties / nonce / maxLengthAdded value: +256 - added
Input schema / properties / nonce / minLengthAdded value: +1 - added
Input schema / properties / payload / additionalPropertiesAdded value: +true - changed
Input schema / properties / payload / descriptionPrevious value: -"Tool-specific arguments — see this tool's description for the exact shape. Covered by the signature."New value: +"Covered by the signature." - added
Input schema / properties / payload / propertiesAdded value: +{ + "approval_id": { + "description": "The approval_id returned by confirm_booking.", + "format": "uuid", + "type": "string" + } +} - added
Input schema / properties / payload / requiredAdded value: +[ + "approval_id" +] - added
Input schema / properties / payload / typeAdded value: +"object" - added
Input schema / properties / signature / maxLengthAdded value: +512 - added
Input schema / properties / signature / minLengthAdded value: +1 - changed
Input schema / properties / timestamp / typePrevious value: -"number"New value: +"integer" - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "nonce", - "timestamp", - "signature" -]New value: +[ + "payload", + "agent_id", + "nonce", + "timestamp", + "signature" +]
- Changed
confirm_booking13 fields changed- added
Input schema / properties / agent_id / maxLengthAdded value: +128 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - added
Input schema / properties / nonce / maxLengthAdded value: +256 - added
Input schema / properties / nonce / minLengthAdded value: +1 - added
Input schema / properties / payload / additionalPropertiesAdded value: +true - changed
Input schema / properties / payload / descriptionPrevious value: -"Tool-specific arguments — see this tool's description for the exact shape. Covered by the signature."New value: +"Covered by the signature." - added
Input schema / properties / payload / propertiesAdded value: +{ + "hold_id": { + "description": "The hold_id returned by hold_slot.", + "format": "uuid", + "type": "string" + } +} - added
Input schema / properties / payload / requiredAdded value: +[ + "hold_id" +] - added
Input schema / properties / payload / typeAdded value: +"object" - added
Input schema / properties / signature / maxLengthAdded value: +512 - added
Input schema / properties / signature / minLengthAdded value: +1 - changed
Input schema / properties / timestamp / typePrevious value: -"number"New value: +"integer" - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "nonce", - "timestamp", - "signature" -]New value: +[ + "payload", + "agent_id", + "nonce", + "timestamp", + "signature" +]
- Changed
hold_slot13 fields changed- added
Input schema / properties / agent_id / maxLengthAdded value: +128 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - added
Input schema / properties / nonce / maxLengthAdded value: +256 - added
Input schema / properties / nonce / minLengthAdded value: +1 - added
Input schema / properties / payload / additionalPropertiesAdded value: +true - changed
Input schema / properties / payload / descriptionPrevious value: -"Tool-specific arguments — see this tool's description for the exact shape. Covered by the signature."New value: +"Covered by the signature." - added
Input schema / properties / payload / propertiesAdded value: +{ + "offer_id": { + "description": "The offer_id returned by list_offers.", + "format": "uuid", + "type": "string" + } +} - added
Input schema / properties / payload / requiredAdded value: +[ + "offer_id" +] - added
Input schema / properties / payload / typeAdded value: +"object" - added
Input schema / properties / signature / maxLengthAdded value: +512 - added
Input schema / properties / signature / minLengthAdded value: +1 - changed
Input schema / properties / timestamp / typePrevious value: -"number"New value: +"integer" - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "nonce", - "timestamp", - "signature" -]New value: +[ + "payload", + "agent_id", + "nonce", + "timestamp", + "signature" +]
- Changed
list_offers13 fields changed- added
Input schema / properties / agent_id / maxLengthAdded value: +128 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - added
Input schema / properties / nonce / maxLengthAdded value: +256 - added
Input schema / properties / nonce / minLengthAdded value: +1 - added
Input schema / properties / payload / additionalPropertiesAdded value: +true - changed
Input schema / properties / payload / descriptionPrevious value: -"Tool-specific arguments — see this tool's description for the exact shape. Covered by the signature."New value: +"Covered by the signature." - added
Input schema / properties / payload / propertiesAdded value: +{ + "intent_id": { + "description": "The intent_id returned by send_intent.", + "minLength": 1, + "type": "string" + } +} - added
Input schema / properties / payload / requiredAdded value: +[ + "intent_id" +] - added
Input schema / properties / payload / typeAdded value: +"object" - added
Input schema / properties / signature / maxLengthAdded value: +512 - added
Input schema / properties / signature / minLengthAdded value: +1 - changed
Input schema / properties / timestamp / typePrevious value: -"number"New value: +"integer" - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "nonce", - "timestamp", - "signature" -]New value: +[ + "payload", + "agent_id", + "nonce", + "timestamp", + "signature" +]
- Changed
register_agent13 fields changed- added
Input schema / properties / agent_id / maxLengthAdded value: +128 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - added
Input schema / properties / nonce / maxLengthAdded value: +256 - added
Input schema / properties / nonce / minLengthAdded value: +1 - added
Input schema / properties / payload / additionalPropertiesAdded value: +true - changed
Input schema / properties / payload / descriptionPrevious value: -"Tool-specific arguments — see this tool's description for the exact shape. Covered by the signature."New value: +"Registration payload. Covered by the signature." - added
Input schema / properties / payload / propertiesAdded value: +{ + "principal": { + "additionalProperties": true, + "description": "Who the agent acts for. Optional.", + "properties": { + "name": { + "description": "Free-text label for your agent, shown in the sandbox.", + "maxLength": 200, + "type": "string" + }, + "type": { + "description": "Use \"user\". \"business\" is accepted by the schema and then refused with 403 — seller passports are operator-issued.", + "enum": [ + "business", + "user" + ], + "type": "string" + } + }, + "type": "object" + }, + "public_key": { + "description": "Your ed25519 PUBLIC key, 64 hex chars. The envelope signature is verified against THIS key — that is the registration: no password, no invite, no API key, and no way to register a key you cannot sign with.", + "maxLength": 128, + "minLength": 1, + "type": "string" + } +} - added
Input schema / properties / payload / requiredAdded value: +[ + "public_key" +] - added
Input schema / properties / payload / typeAdded value: +"object" - added
Input schema / properties / signature / maxLengthAdded value: +512 - added
Input schema / properties / signature / minLengthAdded value: +1 - changed
Input schema / properties / timestamp / typePrevious value: -"number"New value: +"integer" - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "nonce", - "timestamp", - "signature" -]New value: +[ + "payload", + "agent_id", + "nonce", + "timestamp", + "signature" +]
- Changed
send_intent13 fields changed- added
Input schema / properties / agent_id / maxLengthAdded value: +128 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - added
Input schema / properties / nonce / maxLengthAdded value: +256 - added
Input schema / properties / nonce / minLengthAdded value: +1 - added
Input schema / properties / payload / additionalPropertiesAdded value: +true - changed
Input schema / properties / payload / descriptionPrevious value: -"Tool-specific arguments — see this tool's description for the exact shape. Covered by the signature."New value: +"A structured Intent. Covered by the signature." - added
Input schema / properties / payload / propertiesAdded value: +{ + "availability": { + "additionalProperties": true, + "properties": { + "after_time": { + "maxLength": 64, + "type": "string" + }, + "before": { + "maxLength": 64, + "type": "string" + } + }, + "type": "object" + }, + "budget": { + "additionalProperties": true, + "properties": { + "currency": { + "description": "3-letter code, e.g. \"PLN\".", + "maxLength": 3, + "minLength": 3, + "type": "string" + }, + "max": { + "exclusiveMinimum": 0, + "type": "number" + } + }, + "required": [ + "currency", + "max" + ], + "type": "object" + }, + "location": { + "description": "Where. The demo inventory answers \"Wroclaw\".", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "product": { + "additionalProperties": {}, + "description": "Free-form product spec, e.g. { width: 225, profile: 45, diameter: 18, season: \"winter\", quantity: 4 }.", + "type": "object" + }, + "service": { + "description": "e.g. \"installation\".", + "maxLength": 200, + "type": "string" + }, + "type": { + "description": "What you want. The demo inventory answers \"car_tires\".", + "maxLength": 200, + "minLength": 1, + "type": "string" + } +} - added
Input schema / properties / payload / requiredAdded value: +[ + "type", + "location" +] - added
Input schema / properties / payload / typeAdded value: +"object" - added
Input schema / properties / signature / maxLengthAdded value: +512 - added
Input schema / properties / signature / minLengthAdded value: +1 - changed
Input schema / properties / timestamp / typePrevious value: -"number"New value: +"integer" - changed
Input schema / requiredPrevious value: -[ - "agent_id", - "nonce", - "timestamp", - "signature" -]New value: +[ + "payload", + "agent_id", + "nonce", + "timestamp", + "signature" +]
Related MCP Connectors
Structured B2B supply search, quoting, sandbox orders and fulfillment status for agents.
Agent-native insurance quoting protocol — sandbox, MCP + REST, eligibility pre-flight
Free agent-service discovery, OpenAPI document checks, and receipt verification. No API key needed.
Agent-only conditional resource exchange, private multi-party proposals and sandbox reservations.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables an agent to find a business by phone number, check availability, book and cancel appointments, and verify business-signed receipts against a sandbox registry and demo shops that run locally over stdio. Every registry record and receipt is signature-checked, and nothing real is booked because the shops live inside the server process.Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to browse customers, bookings, and availability while any booking creation or cancellation stays gated behind a human-approved, single-use token cryptographically bound to the exact arguments. Runs over stdio or Streamable HTTP and enforces the read/write separation in host code with a full audit trail.7MIT

Mercantry MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to search and retrieve structured merchant data, check availability, manage bookings, and submit feedback against an open commerce registry with real restaurant data for LA, Hong Kong, and Tokyo.Apache 2.0- AlicenseNot gradedqualityBmaintenanceEnables external AI agents to search a PayPal sandbox storefront, create and track orders, request refunds, and open disputes within buyer-set spending mandates, while every charge still requires buyer approval in PayPal.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.