# Admiry connector — for assistants Admiry is an AI marketing agent for local and service businesses. MCP: https://agent.admiry.ai/mcp (Model Context Protocol, streamable HTTP, stateless, JSON responses) Auth: Authorization: Bearer ak_... (or X-API-Key: ak_...). Keys are issued on https://agent.admiry.ai/connect. `start` needs no key. Rate limits: 60 calls/minute and 2,000/day per key; errors carry retry_after=. Read https://agent.admiry.ai/connect/docs first. Tool schemas: https://agent.admiry.ai/connect/tools.json Paste into Meta Muse: Build a custom integration to Admiry. MCP server https://agent.admiry.ai/mcp (streamable HTTP). Auth header `Authorization: Bearer` — I'll give the key in the secure prompt. Read https://agent.admiry.ai/connect/docs first. Test each tool and save it as a skill. Tools (A = no key, RO = read, W = write without spend or public effect, P = proposal the owner confirms; W/P take idempotency_key): - approve_plan [P · manage] — Ask to launch this plan: publish its pages, connect tracking and start the channels within the monthly limit. (returns a proposal; the owner confirms with the approval code from their plan page (spend)) - confirm_proposal [W · manage] — Carry out a proposal after the owner agreed. (runs as soon as it is called) - create_plan [W · manage] — Write the marketing plan for this business from its Business Knowledge and goal: the pages to create, local SEO/GEO fixes, which channels to run with how many dollars a month (never above the monthly limit), ad text for the owner to review, tracking to connect, and the estimated monthly leads with its basis. (runs as soon as it is called) - decline_proposal [W · manage] — Close a proposal the owner does not want, with their reason in a few words. (runs as soon as it is called) - describe_business [W · manage] — Tell Admiry what the business does: one or two sentences in the owner's words (what, where, any budget or goal), plus the website if there is one. (runs as soon as it is called) - get_audit_log [RO · read] — What happened on this business, newest first, as plain sentences ("Muse created plan v2", "The owner confirmed proposal …"). (runs as soon as it is called) - get_business [RO · read] — What Admiry knows about this business: the latest Business Knowledge (name, services, area, hours, phone, prices, what makes it different), its claim state and the current goal. (runs as soon as it is called) - get_plan [RO · read] — The current plan (or one by id): the owner-facing lines in order, the estimate with its basis, the channel budgets, the status (draft / approved / superseded) and plan_url where the owner reviews and approves it. (runs as soon as it is called) - get_proposal [RO · read] — One proposal: summary, what changes, approval_url and status. (runs as soon as it is called) - list_keys [RO · account] — List the keys issued for this business — ids, labels (muse / claude / chatgpt / web / draft), scopes, expiry, last use — never the keys themselves. (runs as soon as it is called) - list_proposals [RO · read] — Open proposals for this business: what each would change, whether it needs the owner's approval code, and when it expires. (runs as soon as it is called) - revise_plan [W · manage] — Change the plan the way the owner asked, in their words: "no Meta", "focus on water heaters", "half the budget". (runs as soon as it is called) - revoke_key [W · account] — Revoke one of this business's keys immediately (for example a lost draft key or a connector the owner no longer uses). (ask the owner first, then call (no spend)) - set_goal [W · manage] — Record what the owner wants: new customers per month (target) and/or the monthly advertising budget in USD (monthly_budget_usd) — a budget alone is a valid goal — plus services to focus on. (runs as soon as it is called) - start [A · none] — Begin for a business that has no key yet: one or two sentences on what it does, where, and what the owner wants (customers per month, monthly budget), plus the website if there is one. (runs as soon as it is called) - update_business [W · manage] — Correct or add facts the owner tells you (a new service, new hours, a phone number, an area, prices) as a patch of Business Knowledge fields: name, category_detail, service_area, services, hours, phone, website, pricing_hints, usp, reviews_summary, compliance_flags, locale; `ai_crawlers: false` turns AI crawlers off for the storefront. (runs as soon as it is called) - whoami [RO · read] — Who is calling: the business this key belongs to (id, claim state draft / claimed / verified, status, locale) and the key's class, scopes, label and expiry. (runs as soon as it is called) Errors and statuses: - missing key: no Authorization header; owners get a key on /connect — `start` needs none - this key lacks the 'X' scope: the key was issued without that scope; re-issue it on /connect - rate limit: … retry_after=N: wait N seconds (60 calls per minute and 2,000 per day per key; 30 changes per hour per business; `start` 3 per hour per address) - another request from this address is in progress / Admiry's free setup is busy today: `start` runs one call per address at a time and has a daily ceiling: retry in a moment, or tomorrow - today's limit of N drafts for this business is reached: describe_business, create_plan and revise_plan are capped per business per day (lower on the 24-hour setup key): try tomorrow - a setup key cannot approve or confirm spending: the 24-hour key from `start` reads and drafts only; the owner finishes setup on /connect for a lasting key - unknown key / this key was revoked / this key expired: the key is wrong, revoked or past its 24-hour draft life; the owner issues a new one on /connect - this business has expired; run `start` to begin again: the draft or unverified claim lapsed; start over - idempotency_key already used for a different request; use a new key: each distinct W/P request needs its own key — only an exact repeat replays the earlier result; an empty key is rejected - {status: 'proposed', proposal_id, approval_url}: a P tool returned a proposal; call confirm_proposal after the owner agrees — spend-class proposals also need the approval code - {status: 'needs_verification', verify_url}: the business is not verified yet; send the owner to verify_url - this change spends money: it needs the approval code from the owner's plan page: a spend-class proposal; the owner reads the code from approval_url (their plan page) and you pass it to confirm_proposal exactly as said