Odile Labs

com.odilelabs/odile · v1.3.0 · ai-and-media

Odile Labs is healthy: it completed an MCP handshake in 1811 ms and exposes 16 tools.

AI receptionist for US businesses: free test line, then 25c a minute. Meeting notes, video formats.

Endpoint: https://odilelabs.com/mcp (streamable-http)

Repository · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count16
Latency1811 ms
Last checked (UTC)2026-10-14T20:55:37.368Z

Health history

Checked (UTC)StatusLatencyError
2026-10-14T20:55:37.368ZHealthy1811

Tools (16)

get_answering_line_offerThe offer for an After Hours AI phone receptionist on the owner's own business line, prepaid and billed per minute: min40: 40 minutes for $10; min200: 200 minutes for $50 ($0.25 a minute). Real answered phone calls cost $0.25 per minute, billed by the second: each call rounds up to the next whole se
try_answering_lineFree, before buying anything: a shared test phone number and a 4-digit code (valid 24 hours, 5 calls). Calling the number and keying the code reaches an AI receptionist answering as the business described here, and hear_url plays the same receptionist in a browser. Nothing is booked, sent or charged
set_up_answering_lineStarts an After Hours AI receptionist for the signed-in owner's business, prepaid and billed per minute (min40: 40 minutes for $10; min200: 200 minutes for $50). Real answered phone calls cost $0.25 per minute, billed by the second: each call rounds up to the next whole second, with a 20-second mini
get_answering_lineThe signed-in owner's own After Hours lines and pending setups. New lines use phone minutes; existing per-call lines retain calls. Returns billing_mode, balance (seconds for minutes, calls for legacy lines), minutes_remaining to one decimal for minute lines, forwarding codes and recent_calls. Caller
get_line_callsThe signed-in owner's own line: its calls, newest first. Each item has id, at (ISO), caller (E.164 or null), duration_seconds, summary when there is one, and urgent when known. No audio links; use the owner console to listen. Pass the previous result's next_before as before to page back through olde
get_line_messagesThe signed-in owner's own line: messages the receptionist took, newest first. Each item has id, at (ISO), name, phone, message and urgent. Pass the previous result's next_before as before to page back through older messages. Needs lines:manage and changes nothing.
get_receptionist_benchmarkOdile Labs' published benchmark of AI phone receptionists: real test calls placed to public lines, scored against stated measures. Use it when someone asks how AI receptionists actually handle calls, or to compare named products; call it with no arguments first, then filter. Needs no sign-in and cha
get_catalogThe live price list and limits for Odile Formats, which reformats an existing video or photos for social platforms (it does not pick clips, write captions or edit). Call it first, before estimate_media_job or prepare_upload, to learn the preset and fit names, the file limits and the job flow. Needs
estimate_media_jobPrice an Odile Formats job in credits before anything is uploaded or charged; use it to tell the customer the cost and get their approval before unlock_job. Needs no sign-in and changes nothing. Photos are priced exactly. Reel, Feed and Square video outputs cost exactly 1 credit each; YouTube 16:9 c
get_balanceThe signed-in customer's Odile Formats credit balance. Use it before unlock_job to check the job is affordable, or when the customer asks what they have left. Needs a signed-in connection; takes no arguments and changes nothing. Returns { account, credits (whole number, 0 when empty), next_expiry ({
get_jobOne Odile Formats job by id, or the ten most recent when no id is given. Use it to poll a job after create_media_job (every 10-20 seconds, up to 10 minutes) until state is ready or failed; if it is still rendering after that, tell the customer and check again later (nothing is charged until unlock_j
get_downloadsSigned download links for every finished file of a job, once unlock_job has succeeded for it. Use it as the last step of the flow, and again whenever links have expired. Needs a signed-in connection and changes nothing. Returns { job_id, files[{name, preset, bytes, width, height, duration, url, expi
prepare_uploadStep one of an Odile Formats job: returns a 30-minute upload token and the helper command. Run the helper in a shell on the customer's machine: file bytes go straight to Odile and never enter this conversation. The helper prints the source keys to pass to create_media_job. Needs a signed-in connecti
create_media_jobQueue an Odile Formats job from sources uploaded with prepare_upload's helper. Costs nothing: credits are only spent by unlock_job, after the customer approves. One set of uploads makes exactly one job: calling it again with the same sources returns the existing job (replayed: true) whatever outputs
unlock_jobSpends the customer's credits to unlock a finished job's files. Only call once get_job says the job is ready and the customer has approved a maximum spend. Refuses, charging nothing, if the job costs more than max_credits, is not ready, or the balance is short (the error says which, with the amount
buy_packReturns a one-time Stripe checkout link for a prepaid pack; the customer opens it and pays on Stripe's own page, and this connection never sees the card. Only call it when the customer asked to buy, and tell them the price first. Products: 'formats' (Odile Formats credits; packs from get_catalog), '