io.github.41fred/ibo
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Commission cinematic AI campaign films from IBO Studio, with custom scoping when needed.
| Author | io.github.41fred |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 2524 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"ibo": {
"url": "https://ibouniverse.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
list_offersread-onlyIBO's production packages: stable ids, prices, 50% deposits, deliverables, review rounds, and the scope/refund policy. Call this first.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
create_checkoutCreate a Stripe Checkout for a package's 50% deposit. Returns checkout_url, stripe_session_id, and amount_due. Show the amount to your user and open checkout_url for THEM to approve and pay; agents never complete payment themselves. Prices are fixed server-side. Pass a stable client_request_id so retries do not create duplicate checkouts.
Parameters:
package(required) — string — Offer id from list_offersclient_request_id(required) — string — Stable id you generate; makes creation idempotent on retry
Hints: read-only no · destructive no · idempotent yes · open-world yes
get_orderread-onlyVerify payment after checkout and receive an order-scoped access token. Returns paid, package, deposit, and order_token: use order_token for create_upload_url and submit_brief. Payment status can only be established here, never assumed.
Parameters:
session_id(required) — string — Stripe checkout session id (cs_...)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
submit_briefSubmit the creative brief for a PAID order: pass order_token (from get_order; session ids are not accepted here) plus project fields (product, goal, audience, channels, resolution, launch, links, constraints) and files[] from create_upload_url. Delivery resolution must be selected before creative kickoff. Customer identity comes from the verified payment. NOTE: unpaid/anonymous submissions are rejected here; for Custom Production inquiries without payment use the submit_custom_inquiry tool instead.
Parameters:
goal— stringname— stringemail— stringfiles— arraylinks— stringlaunch— stringcompany— stringpackage— stringproduct— stringaudience— stringchannels— stringresolution— string — Final master resolution selected before creative kickoffconstraints— stringorder_token— string — From get_order
Hints: read-only no · destructive no · idempotent no · open-world yes
create_upload_urlGet a short-lived presigned URL to upload one brand-asset file to IBO's private storage. Requires order_token from get_order; the storage location is bound to the order server-side. PUT the raw file bytes to url, then reference key in submit_brief files[]. Allowed: jpg png webp pdf svg mp4 mov zip ai psd; 250MB/file, 1GB per order.
Parameters:
filename(required) — stringsize(required) — number — File size in bytesorder_token(required) — string — From get_order
Hints: read-only no · destructive no · idempotent no · open-world yes
submit_custom_inquiryStart a Custom Production conversation without payment. IMPORTANT: interview your user for the real project details FIRST (what they are promoting, audience, formats, delivery resolution, timing); placeholder inquiries are rejected. A 4K Campaign Series must use this route before checkout. Submits a scope inquiry; IBO then emails the customer a one-click confirmation link (double opt-in), and only a confirmed inquiry reaches the studio. Tell your user to check their inbox and click confirm. IBO replies with scope and proposal within one business day of confirmation.
Parameters:
name(required) — stringemail(required) — string — Customer's real email; the confirmation link goes heregoal(required) — string — What they want to make and why, in real detail (30+ chars; placeholders rejected)links— stringnotes— stringlaunch— stringcompany— stringproduct— stringaudience— stringchannels— stringresolution— string — Required production target: 1080p, 4K mastered, or not applicable for still imagesconstraints— string
Hints: read-only no · destructive no · idempotent no · open-world yes
get_project_statusread-onlyWhere a paid order is in production. Returns the studio stage (new, brief_received, in_production, review, delivered) plus paid/package/deposit. PII-free; pass the stripe_session_id from create_checkout/get_order.
Parameters:
session_id(required) — string — Stripe checkout session id (cs_...)
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
get_inquiry_statusread-onlyWhere a custom inquiry stands: awaiting_confirmation (customer hasn't clicked the emailed link yet) or confirmed with the studio stage (new, replied, proposal_sent, won, closed). PII-free; pass the inquiry_id returned by submit_custom_inquiry.
Parameters:
inquiry_id(required) — string — From submit_custom_inquiry
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.