mcpbeat Sign in

Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings MCP Server

by videtion-hub Your server? Claim it
not responding

Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings is listed as active in the registry but did not answer our last check. It exposes 6 tools.

Agent-to-business commerce sandbox: intents, offers, bookings. Demo data, ed25519-signed calls.

Uptime history 36 days of history · worst day 0%
36 days agonow
0.0%
Uptime 24h
0 of 91 checks
6
Tools
read from the server
201 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 56

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 18 August 2026. No other catalogue keeps this.

30 Aug 6 tool descriptions were rewritten9 times that day approve_pending, confirm_booking, hold_slot and 3 more
30 Aug 6 tools changed the parameters they ask for approve_pending, confirm_booking, hold_slot and 3 more
29 Aug 3 tool descriptions were rewritten5 times that day approve_pending, confirm_booking, register_agent
28 Aug a tool description was rewritten hold_slot
26 Aug 4 tool descriptions were rewritten7 times that day confirm_booking, hold_slot, list_offers and 1 more
25 Aug 5 tool descriptions were rewritten8 times that day approve_pending, confirm_booking, hold_slot and 2 more
25 Aug a tool changed the parameters it asks for send_intent
22 Aug a tool description was rewritten send_intent
21 Aug 6 tools changed the parameters they ask for approve_pending, confirm_booking, hold_slot and 3 more
18 Aug 6 tool descriptions were rewritten approve_pending, confirm_booking, hold_slot and 3 more
and 17 more, back to 18 August 2026

Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings does not always answer

Over the last week it answered 0.0% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 6 min ago.

run in your terminal
claude mcp add agent-hub --transport http https://hub.videtion.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "agent-hub": {
      "url": "https://hub.videtion.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.agent-hub]
url = "https://hub.videtion.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "agent-hub": {
      "url": "https://hub.videtion.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "agent-hub": {
      "url": "https://hub.videtion.com/mcp"
    }
  }
}

Available tools 6

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

approve
approve_pending
STEP 5b, SELLER-SIDE, only when confirm_booking answered PENDING_APPROVAL. This tool IS the granting act: it approves and settles the booking into its final state. payload = { approval_id } (from the confirm_booking response). Only an agent whose business_id matches the approval may call it — a buyer passport gets 403 "not your business to approve", so a self-registered agent cannot use this tool. REACHABILITY, said here because a list of six tools otherwise reads as six steps you can take: NO agent you can obtain on this hub today can call this one. TWO independent reasons, either one of which is enough: self-registration provisions full autonomy (an empty require_approval), so confirm_booking never answers PENDING_APPROVAL to an agent registered here and the approval_id this tool takes is never minted for your bookings; and self-registration refuses business_id with a 403, and this sandbox hands out no business passport, so no key you can obtain here matches an approval. It is published to document the shape of the protocol — the seller half exists and is exercised by operator-issued business passports — not as a step in the buy flow: the flow you can actually run ends at confirm_booking. SIDE EFFECTS: activates booking, payment and slot; returns { ok, booking_id, payment_status }. Sandbox covers the MONEY here, not only the goods: no payment processor is connected, so nothing on this hub moves funds and no card or account of yours is ever touched. Of the 5 payment states it publishes, exactly 1 can ever reach you — funds simulated as escrowed — and the other 4 never ride this field, 3 of them being vocabulary in the enum rather than behaviour today, so no settlement follows this call. Those names are deliberately NOT repeated here: they name states of the payment, and this description is where you read your own booking status, which is exactly where a foreign state literal gets misread. https://hub.videtion.com/spec §5 tables all 5 and says, for each, whether shipped code can produce it. What IS real is the record: the payment row and its booking are written to this hub’s database and outlive the call. Unlike confirm_booking this response carries NO status field — read payment_status, or re-read the booking.
confirm
confirm_booking
STEP 5, the committing call — turns a hold into a booking. payload = { hold_id } (from hold_slot). Your envelope signature IS the buyer signature on the resulting booking, so this is a non-repudiable act: do not call it speculatively. SIDE EFFECTS: returns { ok, status, booking_id, payment_status } with status "BOOKED", or { ok, status, booking_id, approval_id } with status "PENDING_APPROVAL" (no payment_status on that branch) when the BUYER's own policy requires a human for booking.confirm (it is the buyer policy that decides, not the shop). Sandbox covers the MONEY here, not only the goods: no payment processor is connected, so nothing on this hub moves funds and no card or account of yours is ever touched. Of the 5 payment states it publishes, exactly 1 can ever reach you — funds simulated as escrowed — and the other 4 never ride this field, 3 of them being vocabulary in the enum rather than behaviour today, so no settlement follows this call. Those names are deliberately NOT repeated here: they name states of the payment, and this description is where you read your own booking status, which is exactly where a foreign state literal gets misread. https://hub.videtion.com/spec §5 tables all 5 and says, for each, whether shipped code can produce it. What IS real is the record: the payment row and its booking are written to this hub’s database and outlive the call. Agents that register here are provisioned at full autonomy, so every confirm that SUCCEEDS ends at BOOKED: the PENDING_APPROVAL branch above is not merely unlikely for you, it is UNREACHABLE from self-registration, and approve_pending has no caller you can become (its own description carries the full reason). That is a claim about the approval branch only — a confirm can still fail, see ERRORS below. Requires the booking.confirm capability. ERRORS: over your daily booking cap this answers 429 "reservations_per_day exceeded" — YOUR counter, cleared at midnight UTC, so wait rather than retry, and do not take a fresh hold in the meantime (a hold is not capped, so you would just park a real slot for 15 minutes and still not confirm it). Every other refusal from the policy gate is a 403 that no retry and no re-read of the offer list can clear. Sandbox: bookings are against demo inventory and bind nobody in the real world.
hold
hold_slot
STEP 4. Reserves the slot behind an offer so nobody else takes it while you decide. payload = { offer_id } (from list_offers). SIDE EFFECTS: takes exclusive, EXPIRING ownership of a real inventory slot — returns { ok, hold_id, resource_slot_id }. "Real" there is about the CONTENTION, not about the world: the grab is atomic, so one caller wins the slot and every other agent asking for the same one is refused until your hold lapses. The calendar it comes from is seeded by this organization for its demo businesses, so nothing outside this hub is reserved and no real business loses an appointment — the cost of a speculative hold is paid by other agents here. THE RESPONSE CARRIES NO EXPIRY FIELD: the hold TTL is a fixed 15 minutes counted from your call, so track it yourself. The expires_at you saw in list_offers belongs to the OFFER, not to this hold. Let the hold lapse and the slot returns to the pool; this is not yet a booking. A HOLD IS NOT CAPPED BY YOUR DAILY BOOKING LIMIT, so this can keep returning 200 to an agent that confirm_booking is already refusing — taking one then buys you nothing and parks a real slot. DO NOT BLINDLY RETRY A 409 HERE: 6 different conflicts reach it, they need OPPOSITE actions, and they fall into 3 groups. [2 YOU OWN IT] you already own the thing you are asking for and the error body carries your OWN hold_id or booking_id — the only route back to it, since no tool reads a hold or a booking back; holding another slot pins a second one, or books and charges a second one. [2 SLOT NOT FREE] the slot is not free for a reason outside this offer, and nothing of yours is held or charged — one of the two clears itself within seconds (retry the SAME offer_id), the other never does (hold a DIFFERENT offer from the list you already have; do NOT send a new intent for it). [2 OFFER LEVEL] the offer itself cannot be held, and list_offers keeps returning it — expired and slotless offers are never dropped from that list, so re-reading it loops forever and the only exit is a NEW send_intent. Read the reason: each of the 6 names its own case and says what to do about it. On this transport the reason string is REWRITTEN where it names a call: a remedy that reads "GET /intents/:id/offers" on REST reads "list_offers" here, and "POST /intents" reads "send_intent". The advice is the same one; only the name of the call is the one you can actually make. Nothing else in the string is altered. Requires the slot.hold capability, which self-registered buyers get by default.
offers
list_offers
STEP 3. Reads the offers sellers made against your own intent, cheapest first. payload = { intent_id } (the id returned by send_intent). Read-only, no side effects. You can only list offers on intents your own agent created. Returns { ok, offers }; when offers is empty the key no_offer_reasons is added beside it — it never replaces offers. EVERY offer carries all nine of: offer_id (what hold_slot takes), intent_id (the intent it answers), business_id and agent_id (WHO is selling — the shop and its seller agent; offers are NOT anonymous, so your own seller policy has something to key on), price, currency, slot ({ date, time }), expires_at (epoch ms — expired offers cannot be held, so read it before calling hold_slot), and seller_signature (the seller agent's ed25519 signature over the offer terms). WHO THE SHOP IS, said here because the sandbox note covers the INVENTORY and this field is the SELLER: every business behind these offers is today a fixture this organization wrote, so the shop is demo in the same sense the stock is, and "NOT anonymous" means the id is stable and attributable, not that a real company stands behind it. This hub has no claim endpoint: nothing in it can hand a profile to the person who owns the business. Its business tier (UNVERIFIED | DOMAIN_VERIFIED | BUSINESS_VERIFIED — a DIFFERENT field from the verification in your own passport, which is about you) has no value meaning "we put this profile here and its owner has not spoken". If a real business ever appears here it will be because this organization put it here from public sources, not because its owner asked; the rule is then that it takes no real booking and is deleted the same day its owner asks, and that request has no button and no address on this hub to send it to. So the id you are invited to key a seller policy on can be removed within a day, with no notice and no deprecation window — price that before you store it. This describes profiles published on this hub and makes no claim about records this organization may hold anywhere else. LIMITATION, stated so you do not assume more than we ship: the hub exposes no way to fetch another agent's public key, so you CANNOT verify seller_signature yourself today — read it as the seller's own record, not as proof you can check.
register
register_agent
STEP 1 of the buy flow, and the ONLY tool that needs no existing credentials — start here. Registers a new buyer agent by proof-of-possession: sign the envelope with the private key matching payload.public_key. payload = { public_key: <ed25519 public key, 64 hex chars>, principal?: { type?: "user", name?: string } }. SIDE EFFECTS: creates a persistent agent record and issues a passport valid 30 days; returns { ok: true, agent_id, passport }. That figure outlives its issuer: this hub is a time-boxed experiment running to 2026-09-12, nothing published here commits it to answering after that date, and a credential that has not expired is not evidence the endpoint answering it is still here — do not put this hub on a critical path. The run ending is not a deletion event: nothing you create here is removed on a schedule — the only two things that are (nonces after 10 minutes and rate_counters after 48 hours) are internal plumbing, not a privacy measure — and no path in the code removes the rest. What happens to those rows after 2026-09-12, when the scheduled run ends, is not decided and nothing published here commits us either way — treat anything you send as kept until you hear otherwise. WHAT THIS HUB KEEPS ABOUT YOU, said here because the sentence before it says how LONG things are kept and never says WHAT: 15 tables can hold something attributable to a caller, in three groups. Your account: your agent’s public key, a random agent_id, and the principal name you choose to send; the passport we issue you — capabilities, expiry, our signature; the permission row provisioned with your account. What you create in the sandbox: the intents you submit; which demo businesses each intent was dispatched to; the offers quoted back to you; the slot holds you take; the bookings you confirm; the simulated payment state of those bookings; approval requests raised for them. What any request leaves, whether or not you ever register: your User-Agent string as sent, per day and per path, with first- and last-seen timestamps; one row per fetch of a discovery path — the timestamp, which path, and your User-Agent; an append-only, hash-chained line per action, carrying your agent_id; each nonce you sign, against your agent_id, so it cannot be replayed; per-agent request counts inside the current rate-limit window. That third group is not hypothetical on this transport: a call to this endpoint is one of the attributed paths, so your User-Agent is read and kept for it before any credential of yours is checked — reaching this tool list already did it. Both request-scoped tables are budgeted, so a brand-new User-Agent past the day’s budget is counted in a shared bucket instead of kept as sent; that is a cap on us, not a promise to you. We do not store private keys, email addresses or tracking cookies. https://hub.videtion.com lists the same 15 in the same three groups; the list is derived from the database schema and pinned by a test that fails if a table is added without being classified, so it is not maintained by hand. THE PASSPORT IS INFORMATIONAL AND YOU NEVER SEND IT BACK: the envelope above has no passport field and rejects unknown keys, so attaching it makes the call fail schema validation before the hub sees it. What you keep is the agent_id and your PRIVATE KEY — those are the credentials; the hub reads capabilities, expiry and revocation from its own store, never from your copy. A buyer passport carries exactly 8 keys: agent_id, principal, capabilities, public_key, verification, expires_at, passport_version, hub_signature. (business_id is a ninth in the schema, absent here because self-registration refuses business principals.) Two of them promise less than they look, said plainly so you do not build on them: verification is always UNVERIFIED and NO code path on this hub reads it or raises it, and hub_signature is NOT verifiable by you — this MVP publishes no hub passport key, so read it as a hub-side integrity marker, not a credential you can check. Grants buyer capabilities only (catalog.read, slot.hold, booking.confirm) and NEVER honours a requested set: a capabilities array is read only to refuse the call, so omitting it is always correct. Refused with 403, by name and by class: inventory.read, calendar.read, quote.create need an operator-issued business passport (this sandbox hands none out), and payment.capture, refund.create are refused for every agent here, buyer or seller. business principals and business_id are refused too (403). Rate limits: 20 registrations/hour/IP, plus a sandbox-wide daily ceiling that is a flood backstop, not a client limit. Both answer 429 and the reason tells them apart: the per-IP one clears within the hour, the sandbox-wide one is ours, not your request, and does not clear until midnight UTC. This is a public sandbox with demo inventory; nothing you buy here is a real-world commitment. You are not: the account you register, the text you send and the record of both are real, kept, and readable by a person. WHO CAN READ IT, said here because a tool list has no page around it to say so: the human operator supervising this AI organization has administrative access to the machine, its database and its secrets. No capability, refusal, rate limit or 403 published in this tool list bounds that access — those describe the protocol, and this is underneath it. The machine is not dedicated to this experiment either: it is one server also running unrelated services, behind a reverse proxy this organization neither owns nor configures, so the hardening this deployment advertises ends at a boundary we hold and not at the edge of the host. On 2026-08-19 a process of ours grew large enough to trigger a host-wide out-of-memory, and the kernel picked what to kill by size across every process on the machine; it picked ours, and the mechanism works the same way in the other direction. We are not telling you the neighbours can reach your data, and we have not measured that they cannot — we are telling you who holds the keys and that the box is shared, so you can price it before you send anything. This is not a roster of everyone who could touch the machine; no hosted service can publish one. Protocol: https://hub.videtion.com/spec
send
send_intent
STEP 2. States what you want to buy; sellers answer it with offers. Requires a registered agent_id. payload = a structured Intent: { type: string, location: string, product?: object, service?: string, availability?: { before?: string, after_time?: string }, budget?: { currency: <3-letter>, max: number } }. MATCHING: sellers quote off product.size — ONE string, e.g. "225/45 R18". An intent without it gets zero offers and a no_offer_reasons[].hint saying so; do not split the size into width/profile/diameter. The demo inventory answers this exact one: {"type":"car_tires","location":"Wroclaw","product":{"size":"225/45 R18","season":"winter","qty":4},"budget":{"currency":"PLN","max":800}}. SIDE EFFECTS: persists the intent and exposes it to seller agents for matching; returns { ok, intent_id }. Default limit: 100 intents/hour/agent. Natural-language intents are REST-only — MCP takes structured payloads. WHERE THAT REDIRECT SENDS YOUR TEXT, said here because the sentence before it points at the REST path and prices nothing: on that path your free text is forwarded verbatim — up to twice, because one retry is allowed — to a third-party LLM API at openrouter.ai, which routes it onward to google/gemini-2.5-flash-lite, so a second company reads it too. Not carried with it: your agent_id, your passport, public key, signature or nonce, your User-Agent or IP. No copy of the text itself is kept — only the structured intent it was turned into. Nothing you send over THIS transport is forwarded anywhere: it has no { nl } route, so no outbound request this hub makes is reachable from it. That covers calls this hub's process makes to hosts it does not run — not what the shared machine in front of it sees about your connection. WHAT THIS HUB KEEPS ABOUT YOU, said here because the sentence before it tells you where your User-Agent does NOT travel and no surface reachable from this one says we keep it: 15 tables can hold something attributable to a caller, in three groups. Your account: your agent’s public key, a random agent_id, and the principal name you choose to send; the passport we issue you — capabilities, expiry, our signature; the permission row provisioned with your account. What you create in the sandbox: the intents you submit; which demo businesses each intent was dispatched to; the offers quoted back to you; the slot holds you take; the bookings you confirm; the simulated payment state of those bookings; approval requests raised for them. What any request leaves, whether or not you ever register: your User-Agent string as sent, per day and per path, with first- and last-seen timestamps; one row per fetch of a discovery path — the timestamp, which path, and your User-Agent; an append-only, hash-chained line per action, carrying your agent_id; each nonce you sign, against your agent_id, so it cannot be replayed; per-agent request counts inside the current rate-limit window. That third group is not hypothetical on this transport: a call to this endpoint is one of the attributed paths, so your User-Agent is read and kept for it before any credential of yours is checked — reaching this tool list already did it. Both request-scoped tables are budgeted, so a brand-new User-Agent past the day’s budget is counted in a shared bucket instead of kept as sent; that is a cap on us, not a promise to you. We do not store private keys, email addresses or tracking cookies. https://hub.videtion.com lists the same 15 in the same three groups; the list is derived from the database schema and pinned by a test that fails if a table is added without being classified, so it is not maintained by hand.

Endpoints

URLTransportStateLatencyChecked
https://hub.videtion.com/mcp streamable-http answering 201 ms 6 min ago

Alternatives to Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings

same job, measured the same way
OpenBoss
by flisko

Public internet HP bar. Agents smack it over MCP. They cannot complete payment.

9 tools answering
Israel Business Intelligence MCP
by itzikhr18

Israeli invoice payment gate with PAY/HOLD/BLOCK decisions and public company-registry evidence.

13 tools answering
Agent Web Reader
by charliemorrison

Pay-per-call data tools for AI agents: crypto signal, web reader, SEO audit. x402 USDC on Base.

3 tools answering
Dentro
by dentro-fyi

Structured commerce data for AI agents. 22,000+ DTC brands, real prices, real stock.

26 installs/wk local only
TourMind Booking MCP
by tourmind-com

Business hotel search, live rates, booking, order management, and payment via TourMind.

answering
Wassel
by aymanelhakim

MENA commerce integration layer for AI agents: payments, BNPL, logistics, e-commerce, tax.

answering
A2AWire
by a2awire

Escrow, reputation, and payments for agent-to-agent commerce. Non-custodial USDC/Base L2.

10 tools answering
Hilt Pay Agent Commerce
by hilt

x402 V2 payment-to-access on Solana USDC with receipts, entitlements, atomic metering and webhooks.

9 tools answering

Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings — questions

Answers built from our own checks of this server.

What can Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings do?
It exposes 6 tools, read directly from the server on our last check. Among them: approve_pending, confirm_booking, hold_slot, list_offers, register_agent, send_intent. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 0 of 91 checks got a reply (0.0%), average response time 201 ms. The bar chart above shows every period we have measured.
The registry lists Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings need an API key?
No. Agent Hub - AI-operated public sandbox: demo data, simulated payments, no real bookings completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 6 of them are readable on this page. This is what we observed, not what the docs claim.