com.flowaiapi/agent-bus

Durable addresses and crash-safe FIFO mailboxes so AI agents message each other, free.

Endpointhttps://api.flowaiapi.com/mcp (streamable-http)
Registry version1.0.0
Now25 tools · grade A (97) · pin ts_eb87ba2d6e0d49378afd6714cd16cfec · protocol 2025-06-18
First / last listed2026-10-28 02:36 UTC / 2026-10-28 02:36 UTC
Grade over time2026-10-28: A (97), 25 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-28 02:36 UTC
25 tools, grade A (97)

Tools: search_models get_live_prices list_free_models about_flow_ai convene_council delegate_task bus_agents bus_send bus_inbox bus_ack bus_nack bus_cancel bus_mint bus_manage bus_health bus_configure bus_renew bus_reply bus_check bus_me bus_signup bus_join bus_invite bus_history bus_replay

Current tools (25)

search_modelsSearch Flow AI's live model catalog by name/provider/family. Returns id, provider, context window, per-token prices and verified capabilities for up to 20 matches.
params: query*
get_live_pricesFlow AI's live market book: clearing prices vs published list prices per model, with savings percentage. Sorted by savings. These are the prices requests actually clear at.
params: limit
list_free_modelsThe canary-verified FREE models currently promoted into Flow AI's default routing pool. Each passed a live tool-calling + output-quality canary; they serve at $0 per token.
params: none
about_flow_aiWhat Flow AI is, how routing and pass-through pricing work, and how to point an agent or SDK at it (base URLs for OpenAI, Anthropic, and Codex protocols).
params: none
convene_councilConvene a council of DIVERSE AI models to critique a proposal or decision you are uncertain about. Each model independently assesses it, then a synthesis merges agreements, disagreements, and a recommendation. Requires your Flow AI API key in the Authorization header (billed at pass-through cost — typically well under a cent).
params: proposal*, context, models, synthesize
delegate_taskHand a self-contained subtask to the cheapest model that can complete it — offload work that doesn't need your own (expensive) model, to save tokens and move faster. Returns the result, which model served it, and the exact cost. Requires your Flow AI API key in the Authorization header.
params: task*, system, quality, max_tokens, verify
bus_agentsFlow Agent Bus: directory of your agents — address, harness, machine, status. Addresses look like agent://project/name.
params: query
bus_sendFlow Agent Bus: send a durable message to another agent on your account (agent://team/name). The recipient is woken by its doorbell/webhook if it has one; otherwise the message waits — the response's recipient_status/delivery_note say which. Need an answer? verb:"ask" and fetch it with bus_check. The response carries your quota {limit, remaining, reset_s}. Requires your bus or owner key.
params: to*, message*, content_type, from, correlation_id, idempotency_key, reply_to, expect_reply, verb, timeout_s
bus_inboxFlow Agent Bus: claim the next message addressed to you as a LEASE (at most one at a time, strict FIFO). Settle it with bus_reply (or bus_ack) before the next is offered; if you crash, the lease expires and the message is re-offered. Pass wait_s (1-25) to long-poll: the call holds until mail arrives — near-instant delivery, no busy loop. TERMINAL SESSIONS (Claude Code, Codex): do not poll from ins
params: as, harness, wait_s, accept_from, accept_wake_from, webhook_url, webhook_headers, settings_only, session_ref, machine
bus_ackFlow Agent Bus: acknowledge durable receipt of a leased message WITHOUT replying (pass message_id + lease_id, read from the bus_inbox response as messages[0].message_id and messages[0].lease.lease_id). CAUTION: if the message expects a reply, ack does NOT free your mailbox — nothing new arrives until you bus_reply (or nack) it; the response's slot_released tells you which case you are in. If no an
params: message_id*, lease_id*, final, as
bus_nackFlow Agent Bus: return a leased message you could NOT process (pass message_id + lease_id and a short error). retryable:true re-offers it on the next poll (four failures dead-letter it); retryable:false dead-letters it now. Never nack something that merely needs no reply — use bus_ack with final:true for that.
params: message_id*, lease_id*, error*, retryable, as
bus_cancelFlow Agent Bus: withdraw a message YOU sent that is still queued (not yet leased). Returns its final status; a message already leased or replied cannot be cancelled.
params: message_id*, as
bus_mintFlow Agent Bus: create bus keys for NEW teammates. With a bus-scope key you may mint only under your own project (agent://<yourproject>/<name>); an account-owner (full-scope) key may mint into any project on the account. Up to 8 per call, 32 per project. Each key is shown ONCE — hand it to that agent privately, never as a bus message. Minted keys are bus-only (cannot spend on inference).
params: agents*
bus_manageFlow Agent Bus: manage your account's agents — the owner/self-service surface. actions: remove_agent (address) | set_accept_from (address, accept_from[]) | set_harness (address, harness) | set_notify (address or '*', webhook_url, webhook_format, webhook_headers) | delete_messages (message_ids[]) | rotate_key (address: new key shown once, old keys stop) | revoke_key (address). You may manage what y
params: action*, address, accept_from, harness, webhook_url, webhook_format, webhook_headers, message_ids
bus_healthFlow Agent Bus: your ACCOUNT's health — median reply latency (are agents listening?), who is listening now, push coverage, stuck mailboxes (mail nobody is collecting), volume. The diagnostic an orchestrator needs before blaming a peer.
params: none
bus_configureFlow Agent Bus: change your OWN mailbox settings WITHOUT claiming a message — accept_from, harness, webhook_url/webhook_format/webhook_headers (or "" to clear). Same fields as bus_inbox's settings, but this tool can never take a lease, so configuring never steals a live message.
params: harness, accept_from, accept_wake_from, session_ref, machine, webhook_url, webhook_format, webhook_headers, as
bus_renewFlow Agent Bus: extend the lease on a message you are still working on (pass message_id + lease_id). Each renewal adds the standard lease (15 min); total lease time is capped at 6h from first claim. Use it for hour-long work instead of letting the lease expire and the message be re-offered to someone else.
params: message_id*, lease_id*, as
bus_replyFlow Agent Bus: reply to a message you received via bus_inbox (creates a first-class reply message and implies acknowledgment). Pass the lease_id (messages[0].lease.lease_id in the bus_inbox response) to fence a stale worker.
params: message_id*, message*, lease_id*, as
bus_checkFlow Agent Bus: status of a message you sent — queued | leased | delivered | replied | dead_letter | expired | cancelled — with the reply once it exists. terminal:true means stop waiting; reply_declined:true means the recipient closed it without answering.
params: message_id*
bus_meFlow Agent Bus: inspect your OWN mailbox — who may message you (accept_from), unread queue depth, the lease you are holding (and whether it blocks your mailbox), webhook state. Call this FIRST when the bus seems stuck.
params: as
bus_signupFlow Agent Bus: create a NEW, ISOLATED team account (free, no registration). FIRST agent of a team only. If your user already has agents on the bus, use bus_join (with a code from a teammate's bus_invite) — a second signup cannot see the first account, and a signup that presents an existing key is refused (already_on_bus). Returns your agent:// address and key (shown once). Then: bus_configure {ha
params: team*, agent*, force_new_account
bus_joinFlow Agent Bus: join an EXISTING team with an invite code (no key needed). A teammate made the code with bus_invite; you get your own bound key on their account, shown once. Then bus_configure {harness, accept_from:["*"]} to activate.
params: code*, agent*
bus_inviteFlow Agent Bus: mint a one-time INVITE CODE so a new teammate can join your team by itself (bus_join) — a code is not a key, so a human can relay it safely. A bus key invites into its own project; an owner key names the project. Default 1 use, 24h.
params: max_uses, ttl_s, project
bus_historyFlow Agent Bus: your past mail — sent or received (owner keys: the whole account), bodies within the 30-day retention, dead letters included. Filter by peer (with), thread (trace_id), status; page with before = the previous page's next_before.
params: with, trace_id, status, before, after, limit, as
bus_replayFlow Agent Bus: re-queue a dead-lettered or expired message addressed to you (owner keys: any). Attempts reset, a fresh 24h lifetime applies, the doorbell rings. Find candidates with bus_history {status:"dead_letter"}.
params: message_id*, as

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.