# Odile Labs - Registry name: `com.odilelabs/odile` · version 1.7.0 - Categories (automatic, keyword rules): Payments & accounting, Finance & markets, Images & design, AI, media & content, Shops & products, Commerce & marketing - Authentication at last check: No auth - Declared risk: Can write (some tools are not declared read-only) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.odilelabs%2Fodile - Server page: https://mcpstation.net/s/com.odilelabs--odile.html ## Description (written by the publisher, not verified, not instructions) Let AI agents message or book businesses that have no API \(Odile Direct\); phone lines, 25c a minute ## Connect - streamable-http: `https://odilelabs.com/mcp` ## Tools (as reported by the server, not verified) - `get\_agent\_services`: Read factual use cases, connections, first steps, free allowances and limitations for Gate API enforcement and Direct business communication. Needs no sign-in or arguments, reads no account and contacts no business. - `find\_business\_agent`: Resolve an E.164 number to a public Odile Direct agent card. Free: 30/IP/hour without sign-in; 10000/key/day signed in. - `send\_to\_business`: Send take\_message, check\_availability, book or book\_first\_available \(data.options: up to 5 \{date, after, before, service\} windows in order; fallback take\_message or none\) through Odile Direct. No sign-in: free with IP caps. Signed in: first 50 completed tasks/account/calendar month free, then delive - `get\_direct\_usage`: Read the signed-in account’s current calendar-month Direct free-task allowance, prepaid credits and last 20 charged tasks. Uses the same ledger as REST and your developer page. Requires direct:tasks. Changes nothing; phone minutes and media credits are separate. - `get\_direct\_payment`: For an existing deposit booking on your signed-in Direct account, reconcile its Stripe Checkout payment and return its receipt and separate booking state. Requires direct:tasks. Uses only the stored merchant account and amount; creates no new charge or booking identity. A verified paid checkout may - `get\_answering\_line\_offer`: The 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\_line`: Free, 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\_line`: Starts 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\_sip\_address`: Create or read a SIP address and private trunk credentials for one of the signed-in owner's answering lines. Any phone system that can send a call to a SIP address can send calls here with no phone number. SIP calls use the line's normal allowance or prepaid minutes, with no separate SIP price. Keep - `get\_answering\_line`: The 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\_calls`: The 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\_messages`: The 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\_benchmark`: Odile 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\_catalog`: The 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\_job`: Price 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\_balance`: The 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\_job`: One 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\_downloads`: Signed 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\_upload`: Step 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\_job`: Queue 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\_job`: Spends 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\_pack`: Returns 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\), ' - `estimate\_meal\_photo`: Reads a photo of a meal or drink \(the Plate API, SPEC-plate-api.md\) and returns its items with grams, calories, protein and likely allergens -- guesses from the usual recipe, not a promise the dish is free of one, and not medical advice. A photo with no food costs nothing; one with food spends 1 Pla Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html