{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_2qbh6w9bkvgf","handle":"oriiion","url":"https://wellknown.network/agents/oriiion","links":{"self":"https://wellknown.network/agents/oriiion/record.json","html":"https://wellknown.network/agents/oriiion","markdown":"https://wellknown.network/agents/oriiion/record.md","api":"https://wellknown.network/api/v1/agents/oriiion","status":"https://wellknown.network/api/v1/agents/oriiion/status","claim":"https://wellknown.network/agents/oriiion/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/oriiion/claim.json","badge":"https://wellknown.network/agents/oriiion/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/oriiion/history","tools":"https://wellknown.network/api/v1/agents/oriiion/tools"},"ard":{"identifier":"urn:air:www.oriiion.ai:server:oriiion","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"oriiion","summary":"Your marketing, a message away","description":"Your marketing, a message away","publisher":{"name":"ai.oriiion","url":null},"homepage":"https://oriiion.ai","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://www.oriiion.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-21T11:52:08.145681Z","publishedAt":"2026-10-21T11:52:08.145681Z","registryName":"ai.oriiion/oriiion"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"content.social","name":"Social Media","confidence":1,"provenance":"derived"},{"slug":"content.marketing","name":"Marketing","confidence":1,"provenance":"derived"},{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":1,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":1,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"}],"categories":["commerce","content","dev","documents","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-25T11:30:35.755Z","lastProbedAt":"2026-10-25T11:30:35.755Z","statusComputedAt":"2026-10-25T11:31:54.197Z","reliability30d":{"probes":3,"successRate":1,"p50Ms":149,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":3,"ok":3,"authBoundaryOk":0,"serviceOk":3,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-25T11:30:35.755Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":135,"error":null,"detail":{"tools":[{"name":"get_chatgpt_ads","description":"Read the current user’s ChatGPT ad drafts, campaigns and results: status, budget, fees, spend, impressions, clicks, CTR, CPC and CPM. Includes account availabil"},{"name":"create_chatgpt_ad","description":"Save a ChatGPT ad DRAFT under the current user. Does not launch, reserve funds or spend money. Returns the creative and current quote for review in chat. Use st"},{"name":"edit_chatgpt_ad","description":"Edit selected fields of a ChatGPT ad draft; pass its latest revision from get_chatgpt_ads. For a launched ad, creative/targeting/bid/duration changes require re"},{"name":"start_chatgpt_ad","description":"SPENDS MONEY. Launch an approved draft using its exact approvalToken from create/edit/get_chatgpt_ads, or resume a paused campaign within its existing lifetime "},{"name":"pause_chatgpt_ad","description":"Pause delivery of the current user’s ChatGPT ad. It can be resumed with start_chatgpt_ad before its deadline and within the remaining budget."},{"name":"end_chatgpt_ad","description":"End a ChatGPT draft or archive a launched campaign permanently. It cannot be resumed. Unspent reservations settle after the final daily report and at least 48 h"},{"name":"update_chatgpt_ad_budget","description":"Change a launched ChatGPT ad’s lifetime budget. First read get_chatgpt_ads. State the new total and additional reservation/fee and obtain approval. Additional c"},{"name":"onboarding_v7","description":"Start or continue oriiion onboarding, without login. Ask exactly the returned question and show its choices; carry returned answers into the next call. Append t"},{"name":"get_content_skill","description":"oriiion's own method for social media content, as a skill to follow: 'content-strategy' (plan a month of posts like a strategy meeting), 'post-craft' (direct on"},{"name":"import_memories","description":"Store what another AI assistant (ChatGPT, Claude, Gemini) remembers about the user into oriiion, so oriiion's assistant knows them from the first message. You m"},{"name":"get_account_info","description":"Get the authenticated user's profile and business information."},{"name":"get_analytics_overview","description":"Headline social-media performance for the account over a period: total views, reach, engagements (likes/comments/shares/saves), posts and followers, each with c"},{"name":"get_platform_analytics","description":"Per-platform breakdown of performance (views, reach, engagements, followers, engagement rate) ranked so you can see which platform delivers the most value for t"},{"name":"get_top_posts","description":"The best-performing published posts by engagement, with their captions, platforms, media type and metrics. Study these to learn what content resonates and creat"},{"name":"get_top_performing_media","description":"Fetch the user's top-performing published post images and videos, ranked by engagement (likes, comments, views) or recency. Returns verified media URLs and perf"},{"name":"get_best_posting_times","description":"Engagement-weighted best times to post (day + hour, UTC) based on the account's own history, plus concrete upcoming datetimes to schedule at. Use before schedul"},{"name":"get_follower_stats","description":"Follower counts and growth per connected account over a period. Use alongside engagement to judge which platforms are worth investing in."},{"name":"get_content_insights","description":"A synthesized 'what's working' briefing combining the best platform, best posting times, top posts and the engagement mix into actionable guidance for creating "},{"name":"list_posts","description":"List the user's social media posts. Supports filtering by status and platform. Returns up to 50 posts at a time."},{"name":"get_post","description":"Get a single post by ID, including its carousel media items if any."},{"name":"show_product_picker","description":"Show products from the user’s connected Shopify store or website/feed as selectable cards with reference photos. Search for a product or supply 1-6 real IDs fro"},{"name":"create_photo_carousel","description":"Create ONE carousel post containing 2-10 separately generated photos, in the requested order. Use when the user asks for an image/product/photo carousel, not se"},{"name":"create_product_video","description":"Make a short vertical video (Reels/TikTok) out of one or more products from list_products — their photos, titles and descriptions. sound: music (music only), vo"},{"name":"create_photo_reel","description":"Assemble 2-12 uploaded photos into a video, each shown exactly once in supplied order. Enforces targetSeconds (5-60), music and text switches. Defaults to a sil"},{"name":"open_image_editor","description":"Open the existing Edit AI Image modal for an owned post or a specific carousel image. Prefill only the requested instruction. The user can mark an area, describ"},{"name":"generate_posts","description":"Generate new social media posts using AI with Agency Workforce v3. Named products in the description (e.g. iPhone 18, Volvo EX90) are detected automatically: ph"},{"name":"spar_ideas","description":"Run an interactive sparring turn with Oriiion's strategic Thought Partner. Brainstorms high-impact angles (contrarian, playbook, risk/opportunity, book analogie"},{"name":"get_idea_bank","description":"Retrieve the user's saved Idea Bank (backlog, used, or archived idea cards from sparring sessions)."},{"name":"save_to_idea_bank","description":"Save an angle card or brainstormed concept directly to the user's Idea Bank backlog for later use."},{"name":"convert_sparring_idea_to_post","description":"Instantly turn a saved Idea Bank item or Sparring Angle Card into a finished single post using Agency Workforce v3."},{"name":"retry_post_image","description":"Make the image again for a post that has its caption but never got a picture (get_generation_status reports image_failed, or a post's imageStatus is 'failed'). "},{"name":"get_generation_status","description":"Check the status of an async post generation batch. Returns 'generating', 'caption_ready', 'completed', 'failed', or 'partial'. 'caption_ready' means the captio"},{"name":"edit_caption","description":"Update the caption/text of an existing post. Without a platform, the main caption is updated everywhere. With a platform, only that platform's caption variant i"},{"name":"generate_platform_captions","description":"AI-generate platform-specific caption variants (Facebook, Instagram, LinkedIn, X, etc.) for one post, tailored to each connected platform's style and character "},{"name":"set_mentions","description":"Add mentions/tags to a post. Instagram: photo tags (usernames) and collaborators (max 3). LinkedIn: mentions as { name, url } pairs — the caption must contain '"},{"name":"set_first_comment","description":"Set an automatic first comment for a post (posted right after publishing — commonly used for hashtags or links). Supported on Facebook, Instagram and LinkedIn. "},{"name":"publish_post","description":"Publish a draft post now, to every network it is set to go to — any connected network: Facebook, Instagram, LinkedIn, X, TikTok, YouTube, Threads, Pinterest, Bl"},{"name":"schedule_post","description":"Schedule (or reschedule) a ready post for a date and time; it publishes itself then. Choose the networks with platforms — ['all'] for every connected network, o"},{"name":"delete_post","description":"Delete a post. Only draft and scheduled posts can be deleted. Published posts cannot be deleted."},{"name":"list_todo","description":"Everything waiting for the user's yes: a post idea from a spike, a connection to fix, and — as they ship — comments, messages and reviews to answer, each with a"},{"name":"act_on_todo","description":"Accept or dismiss one todo item by id (from list_todo). Accepting does what the card's button does: a post idea starts generating, a connection card returns the"},{"name":"get_connect_link","description":"One link that connects or reconnects a channel. Send it to the user: it works in any browser, asks them to sign in if needed, and finishes the connection by its"},{"name":"get_connection_health","description":"Whether each connected channel can still publish: ok, warning, or needs_reconnect (with the link to fix it). Check this when a post failed or the user asks why "},{"name":"search_trending_audio","description":"Trending or keyword-matched sounds from Instagram's audio catalog for a Reel — licensed music or original sounds. Returns audioIds to use with set_reel_audio."},{"name":"set_reel_audio","description":"Attach a sound from search_trending_audio to an unpublished video post. Applies when it publishes as an Instagram Reel."},{"name":"set_paid_partnership","description":"Mark an unpublished Instagram post as a paid partnership (required by law when a brand paid for it), tagging up to two sponsor usernames. Instagram shows the la"},{"name":"get_audience_insights","description":"Who follows and who engages: age, gender and city breakdowns, 30-day totals and the best posting slots for the user's Instagram (and Facebook page). Use it to a"},{"name":"list_conversations","description":"Direct-message conversations on the user's connected accounts (Instagram, Messenger, WhatsApp, Telegram, X…), newest first, with the last message and unread cou"},{"name":"get_conversation","description":"The messages in one conversation, oldest first. Use conversationId and accountId exactly as returned by list_conversations."},{"name":"send_message","description":"Send a direct message in an existing conversation on the user's behalf. ALWAYS show the user the exact text and get their approval before calling this — it goes"},{"name":"list_reviews","description":"Google Business (and Facebook) reviews on the user's connected accounts, newest first, with rating, text and whether they've been answered. Use reply_to_review "},{"name":"reply_to_review","description":"Post a public reply to a review. Use reviewId and accountId from list_reviews. ALWAYS show the user the reply text and get their approval first — it is public a"},{"name":"list_subreddits","description":"The subreddits the user's connected Reddit account can post to. Pass a subreddit name to get its rules and flairs — read them before drafting a Reddit post."},{"name":"publish_to_reddit","description":"Post to a subreddit on the user's behalf: a title written for that subreddit plus text, a link, or an existing post's caption and image. Reddit is never posted "},{"name":"get_customer_profile","description":"Read the authenticated customer profile folder: business soul, brand/design guidance and connected channels. Files regenerate from saved settings. Update busine"},{"name":"get_connected_platforms","description":"List all social media platforms the user has connected (Facebook, Instagram, LinkedIn, X). Shows page names and usernames."},{"name":"get_onboarding_status","description":"Check the user's onboarding progress. Returns which steps are completed, which are required, and whether onboarding is fully complete."},{"name":"get_onboarding_links","description":"Generate onboarding links for the user's remaining steps (payment, Instagram, Facebook, LinkedIn connections). Returns direct links the user can click to comple"},{"name":"update_business_info","description":"Update the user's business profile information. All fields are optional — only provided fields will be updated."},{"name":"set_account_type","description":"Set the user's account type. This affects which social platforms are required during onboarding."},{"name":"get_post_review_link","description":"Create two links to a visual page of the user's generated posts. ownerLink = full CONTROL: edit each platform's caption (by hand or by AI rewrite), AI-edit / re"},{"name":"complete_onboarding","description":"Mark the user's onboarding as complete. Only works once all required steps (payment + required social connection) are done — verify with get_onboarding_status f"},{"name":"find_social_profiles","description":"Find the user's social media profiles (Instagram, LinkedIn, Facebook, YouTube, TikTok, X) by harvesting links from their website and web-searching for official "},{"name":"set_social_profiles","description":"Save the user's confirmed social media profile URLs to their account."},{"name":"discover_brand_images","description":"Collect candidate brand images from the user's website, Instagram posts and earlier research (up to 24). Show them to the user to pick from, then save the selec"},{"name":"select_brand_images","description":"Save the user's chosen brand images as visual references for post generation."},{"name":"list_connected_sources","description":"List the user's connected photo libraries (Dropbox, OneDrive, Google Drive/Photos, etc.) and which approved folder/album each imports from."},{"name":"search_my_images","description":"Search the user's own photo library (imported + scraped, vision-tagged) by keyword — e.g. 'coffee', 'team', 'outdoor'. Returns real photo URLs to use with chang"},{"name":"recommend_images_for_post","description":"Given a post ID, return the best-matching real photos from the user's own library for that post's topic (ranked). Ideal for AI-OFF customers — pass a chosen URL"},{"name":"research_brand","description":"Analyze the user's website (screenshot + AI vision) to extract their brand identity: logo, brand colors and fonts. Takes ~20-30 seconds. Nothing is saved — show"},{"name":"get_brand_identity","description":"Get the user's saved brand identity: logo, colors, fonts, AI-image setting, and content style guide (include/exclude rules)."},{"name":"set_brand_identity","description":"Save the user's confirmed brand identity. Only provided fields are updated."},{"name":"generate_style_guide","description":"Generate a content style guide (tone of voice, dos, don'ts, emoji & hashtag policy) from the user's saved business profile. Nothing is saved — show it to the us"},{"name":"save_style_guide","description":"Persist the user's confirmed content style guide. It feeds directly into post generation (include/exclude rules)."},{"name":"update_content_rules","description":"Save a standing rule the user states about their posts or images, one rule at a time, without rewriting the rest of their style guide. 'always' rules feed what "},{"name":"set_image_style","description":"Choose whether the user's posts use AI-created images (true) or real photos — their brand images, products and stock (false)."},{"name":"get_pricing","description":"Get oriiion's subscription plans and prices. Works without authentication — useful before the user has an account. To subscribe, the user pays through their per"},{"name":"get_billing_status","description":"Get the authenticated user's own subscription/contract status: current plan, monthly amount, last and next payment, recent invoices, and Try & Buy trial state ("},{"name":"get_booking_payments","description":"Payments the user's customers made for bookings on the user's own website (Stripe via oriiion): totals, last 30 days, fees, the latest payments with receipt lin"},{"name":"get_meeting_availability","description":"Read the authenticated business’s bookable calendar services, resources and host timezone, or check available times on one local date. Omit date/service/resourc"},{"name":"prepare_meeting_link","description":"Prepare a guest room link for the user’s email draft. Recheck host calendar availability and atomically reserve the selected service time, then automatically cr"},{"name":"prepare_booking_link","description":"Prepare a public availability booking link for the user’s email draft, using an existing host calendar service and optional resource. The recipient opens it, se"},{"name":"create_meeting","description":"Create a branded oriiion video meeting in the authenticated user’s My business workspace. Requires Business Suite, a customer instance and the Meetings grant. A"},{"name":"list_meetings","description":"Check the authenticated business’s upcoming or past oriiion meetings and find exact room IDs. Default upcoming; use history for catch-up requests and all when s"},{"name":"link_meeting_customer","description":"Connect an existing owned meeting and its retained recordings to a CRM customer, including finished meetings. Use exactly one of roomId or latest:true, and exac"},{"name":"get_meeting","description":"Read one owned My business meeting: title, schedule, current status, settings and its guestUrl/hostJoinUrl. When asked for joining links, always include both, c"},{"name":"get_meeting_catchup","description":"Catch up on an owned meeting from its saved summary, speaker-labelled final transcript, chat, notes and follow-up drafts. Use list_meetings to select the correc"},{"name":"get_business_mail_recipients","description":"Choose usable email recipients from the authenticated business’s CURRENT CRM lead lists. Read only: does not add newsletter consent, modify contacts or send any"},{"name":"send_business_email","description":"Send the exact approved personal email from the authenticated business mailbox to 1–5 explicit recipients. This sends real email. First show the sender, recipie"},{"name":"list_business_emails","description":"List messages in the authenticated business’s own mailbox. Read only: never marks mail read, archives, drafts or sends anything. Views mirror the dashboard: inb"},{"name":"get_business_email","description":"Open one message from the authenticated business mailbox by the id list_business_emails returned. Read only: unlike opening it in the dashboard, this does NOT m"},{"name":"update_business_emails","description":"Mailbox housekeeping in the authenticated business mailbox, only when the user asks: mark messages read or unread, archive or unarchive. Sends nothing and delet"},{"name":"draft_business_email_reply","description":"Save a reply draft on one received message in the authenticated business mailbox, for the owner to review. This sends NOTHING and is not authorization to send. "},{"name":"list_github_repos","description":"List the GitHub repositories the user has switched on for oriiion (beta). Only these repos can be read. If none are switched on, tell the user to choose repos u"},{"name":"list_github_changes","description":"What recently shipped in the user's switched-on GitHub repos: merged pull requests and recent commits on the default branch, newest first. Use for 'what did we "},{"name":"get_github_change","description":"The full picture of one pull request: description, commits and the most telling parts of the diff. Use it to explain in plain language what changed for a user, "},{"name":"get_github_file","description":"Read one file from a switched-on repo's default branch — by default the README, which is the quickest way to learn what a product is. Given a directory path, li"},{"name":"research_website","description":"Scrape the user's website and auto-extract business name, category and description into their profile (only fills fields that are still empty). Use during onboa"},{"name":"list_products","description":"List the user's products (from their connected Shopify store and/or website product feed). Pass `search` to filter by title/description. Each item includes ALL "},{"name":"get_product","description":"Get full details for one product — complete title, full (untruncated) description and every product image URL. Use before generating so posts reflect the real p"}],"toolCount":180,"toolsHash":"11e5876f3eab625244d5bc2a9f18a518fdc108210cacb541b541678fc6487c99","serverName":"orion-ai","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T04:25:31.075Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":145,"error":null,"detail":{"tools":[{"name":"get_chatgpt_ads","description":"Read the current user’s ChatGPT ad drafts, campaigns and results: status, budget, fees, spend, impressions, clicks, CTR, CPC and CPM. Includes account availabil"},{"name":"create_chatgpt_ad","description":"Save a ChatGPT ad DRAFT under the current user. Does not launch, reserve funds or spend money. Returns the creative and current quote for review in chat. Use st"},{"name":"edit_chatgpt_ad","description":"Edit selected fields of a ChatGPT ad draft; pass its latest revision from get_chatgpt_ads. For a launched ad, creative/targeting/bid/duration changes require re"},{"name":"start_chatgpt_ad","description":"SPENDS MONEY. Launch an approved draft using its exact approvalToken from create/edit/get_chatgpt_ads, or resume a paused campaign within its existing lifetime "},{"name":"pause_chatgpt_ad","description":"Pause delivery of the current user’s ChatGPT ad. It can be resumed with start_chatgpt_ad before its deadline and within the remaining budget."},{"name":"end_chatgpt_ad","description":"End a ChatGPT draft or archive a launched campaign permanently. It cannot be resumed. Unspent reservations settle after the final daily report and at least 48 h"},{"name":"update_chatgpt_ad_budget","description":"Change a launched ChatGPT ad’s lifetime budget. First read get_chatgpt_ads. State the new total and additional reservation/fee and obtain approval. Additional c"},{"name":"onboarding_v7","description":"Start or continue oriiion onboarding, without login. Ask exactly the returned question and show its choices; carry returned answers into the next call. Append t"},{"name":"get_content_skill","description":"oriiion's own method for social media content, as a skill to follow: 'content-strategy' (plan a month of posts like a strategy meeting), 'post-craft' (direct on"},{"name":"import_memories","description":"Store what another AI assistant (ChatGPT, Claude, Gemini) remembers about the user into oriiion, so oriiion's assistant knows them from the first message. You m"},{"name":"get_account_info","description":"Get the authenticated user's profile and business information."},{"name":"get_analytics_overview","description":"Headline social-media performance for the account over a period: total views, reach, engagements (likes/comments/shares/saves), posts and followers, each with c"},{"name":"get_platform_analytics","description":"Per-platform breakdown of performance (views, reach, engagements, followers, engagement rate) ranked so you can see which platform delivers the most value for t"},{"name":"get_top_posts","description":"The best-performing published posts by engagement, with their captions, platforms, media type and metrics. Study these to learn what content resonates and creat"},{"name":"get_top_performing_media","description":"Fetch the user's top-performing published post images and videos, ranked by engagement (likes, comments, views) or recency. Returns verified media URLs and perf"},{"name":"get_best_posting_times","description":"Engagement-weighted best times to post (day + hour, UTC) based on the account's own history, plus concrete upcoming datetimes to schedule at. Use before schedul"},{"name":"get_follower_stats","description":"Follower counts and growth per connected account over a period. Use alongside engagement to judge which platforms are worth investing in."},{"name":"get_content_insights","description":"A synthesized 'what's working' briefing combining the best platform, best posting times, top posts and the engagement mix into actionable guidance for creating "},{"name":"list_posts","description":"List the user's social media posts. Supports filtering by status and platform. Returns up to 50 posts at a time."},{"name":"get_post","description":"Get a single post by ID, including its carousel media items if any."},{"name":"show_product_picker","description":"Show products from the user’s connected Shopify store or website/feed as selectable cards with reference photos. Search for a product or supply 1-6 real IDs fro"},{"name":"create_photo_carousel","description":"Create ONE carousel post containing 2-10 separately generated photos, in the requested order. Use when the user asks for an image/product/photo carousel, not se"},{"name":"create_product_video","description":"Make a short vertical video (Reels/TikTok) out of one or more products from list_products — their photos, titles and descriptions. sound: music (music only), vo"},{"name":"create_photo_reel","description":"Assemble 2-12 uploaded photos into a video, each shown exactly once in supplied order. Enforces targetSeconds (5-60), music and text switches. Defaults to a sil"},{"name":"open_image_editor","description":"Open the existing Edit AI Image modal for an owned post or a specific carousel image. Prefill only the requested instruction. The user can mark an area, describ"},{"name":"generate_posts","description":"Generate new social media posts using AI with Agency Workforce v3. Named products in the description (e.g. iPhone 18, Volvo EX90) are detected automatically: ph"},{"name":"spar_ideas","description":"Run an interactive sparring turn with Oriiion's strategic Thought Partner. Brainstorms high-impact angles (contrarian, playbook, risk/opportunity, book analogie"},{"name":"get_idea_bank","description":"Retrieve the user's saved Idea Bank (backlog, used, or archived idea cards from sparring sessions)."},{"name":"save_to_idea_bank","description":"Save an angle card or brainstormed concept directly to the user's Idea Bank backlog for later use."},{"name":"convert_sparring_idea_to_post","description":"Instantly turn a saved Idea Bank item or Sparring Angle Card into a finished single post using Agency Workforce v3."},{"name":"retry_post_image","description":"Make the image again for a post that has its caption but never got a picture (get_generation_status reports image_failed, or a post's imageStatus is 'failed'). "},{"name":"get_generation_status","description":"Check the status of an async post generation batch. Returns 'generating', 'caption_ready', 'completed', 'failed', or 'partial'. 'caption_ready' means the captio"},{"name":"edit_caption","description":"Update the caption/text of an existing post. Without a platform, the main caption is updated everywhere. With a platform, only that platform's caption variant i"},{"name":"generate_platform_captions","description":"AI-generate platform-specific caption variants (Facebook, Instagram, LinkedIn, X, etc.) for one post, tailored to each connected platform's style and character "},{"name":"set_mentions","description":"Add mentions/tags to a post. Instagram: photo tags (usernames) and collaborators (max 3). LinkedIn: mentions as { name, url } pairs — the caption must contain '"},{"name":"set_first_comment","description":"Set an automatic first comment for a post (posted right after publishing — commonly used for hashtags or links). Supported on Facebook, Instagram and LinkedIn. "},{"name":"publish_post","description":"Publish a draft post now, to every network it is set to go to — any connected network: Facebook, Instagram, LinkedIn, X, TikTok, YouTube, Threads, Pinterest, Bl"},{"name":"schedule_post","description":"Schedule (or reschedule) a ready post for a date and time; it publishes itself then. Choose the networks with platforms — ['all'] for every connected network, o"},{"name":"delete_post","description":"Delete a post. Only draft and scheduled posts can be deleted. Published posts cannot be deleted."},{"name":"list_todo","description":"Everything waiting for the user's yes: a post idea from a spike, a connection to fix, and — as they ship — comments, messages and reviews to answer, each with a"},{"name":"act_on_todo","description":"Accept or dismiss one todo item by id (from list_todo). Accepting does what the card's button does: a post idea starts generating, a connection card returns the"},{"name":"get_connect_link","description":"One link that connects or reconnects a channel. Send it to the user: it works in any browser, asks them to sign in if needed, and finishes the connection by its"},{"name":"get_connection_health","description":"Whether each connected channel can still publish: ok, warning, or needs_reconnect (with the link to fix it). Check this when a post failed or the user asks why "},{"name":"search_trending_audio","description":"Trending or keyword-matched sounds from Instagram's audio catalog for a Reel — licensed music or original sounds. Returns audioIds to use with set_reel_audio."},{"name":"set_reel_audio","description":"Attach a sound from search_trending_audio to an unpublished video post. Applies when it publishes as an Instagram Reel."},{"name":"set_paid_partnership","description":"Mark an unpublished Instagram post as a paid partnership (required by law when a brand paid for it), tagging up to two sponsor usernames. Instagram shows the la"},{"name":"get_audience_insights","description":"Who follows and who engages: age, gender and city breakdowns, 30-day totals and the best posting slots for the user's Instagram (and Facebook page). Use it to a"},{"name":"list_conversations","description":"Direct-message conversations on the user's connected accounts (Instagram, Messenger, WhatsApp, Telegram, X…), newest first, with the last message and unread cou"},{"name":"get_conversation","description":"The messages in one conversation, oldest first. Use conversationId and accountId exactly as returned by list_conversations."},{"name":"send_message","description":"Send a direct message in an existing conversation on the user's behalf. ALWAYS show the user the exact text and get their approval before calling this — it goes"},{"name":"list_reviews","description":"Google Business (and Facebook) reviews on the user's connected accounts, newest first, with rating, text and whether they've been answered. Use reply_to_review "},{"name":"reply_to_review","description":"Post a public reply to a review. Use reviewId and accountId from list_reviews. ALWAYS show the user the reply text and get their approval first — it is public a"},{"name":"list_subreddits","description":"The subreddits the user's connected Reddit account can post to. Pass a subreddit name to get its rules and flairs — read them before drafting a Reddit post."},{"name":"publish_to_reddit","description":"Post to a subreddit on the user's behalf: a title written for that subreddit plus text, a link, or an existing post's caption and image. Reddit is never posted "},{"name":"get_customer_profile","description":"Read the authenticated customer profile folder: business soul, brand/design guidance and connected channels. Files regenerate from saved settings. Update busine"},{"name":"get_connected_platforms","description":"List all social media platforms the user has connected (Facebook, Instagram, LinkedIn, X). Shows page names and usernames."},{"name":"get_onboarding_status","description":"Check the user's onboarding progress. Returns which steps are completed, which are required, and whether onboarding is fully complete."},{"name":"get_onboarding_links","description":"Generate onboarding links for the user's remaining steps (payment, Instagram, Facebook, LinkedIn connections). Returns direct links the user can click to comple"},{"name":"update_business_info","description":"Update the user's business profile information. All fields are optional — only provided fields will be updated."},{"name":"set_account_type","description":"Set the user's account type. This affects which social platforms are required during onboarding."},{"name":"get_post_review_link","description":"Create two links to a visual page of the user's generated posts. ownerLink = full CONTROL: edit each platform's caption (by hand or by AI rewrite), AI-edit / re"},{"name":"complete_onboarding","description":"Mark the user's onboarding as complete. Only works once all required steps (payment + required social connection) are done — verify with get_onboarding_status f"},{"name":"find_social_profiles","description":"Find the user's social media profiles (Instagram, LinkedIn, Facebook, YouTube, TikTok, X) by harvesting links from their website and web-searching for official "},{"name":"set_social_profiles","description":"Save the user's confirmed social media profile URLs to their account."},{"name":"discover_brand_images","description":"Collect candidate brand images from the user's website, Instagram posts and earlier research (up to 24). Show them to the user to pick from, then save the selec"},{"name":"select_brand_images","description":"Save the user's chosen brand images as visual references for post generation."},{"name":"list_connected_sources","description":"List the user's connected photo libraries (Dropbox, OneDrive, Google Drive/Photos, etc.) and which approved folder/album each imports from."},{"name":"search_my_images","description":"Search the user's own photo library (imported + scraped, vision-tagged) by keyword — e.g. 'coffee', 'team', 'outdoor'. Returns real photo URLs to use with chang"},{"name":"recommend_images_for_post","description":"Given a post ID, return the best-matching real photos from the user's own library for that post's topic (ranked). Ideal for AI-OFF customers — pass a chosen URL"},{"name":"research_brand","description":"Analyze the user's website (screenshot + AI vision) to extract their brand identity: logo, brand colors and fonts. Takes ~20-30 seconds. Nothing is saved — show"},{"name":"get_brand_identity","description":"Get the user's saved brand identity: logo, colors, fonts, AI-image setting, and content style guide (include/exclude rules)."},{"name":"set_brand_identity","description":"Save the user's confirmed brand identity. Only provided fields are updated."},{"name":"generate_style_guide","description":"Generate a content style guide (tone of voice, dos, don'ts, emoji & hashtag policy) from the user's saved business profile. Nothing is saved — show it to the us"},{"name":"save_style_guide","description":"Persist the user's confirmed content style guide. It feeds directly into post generation (include/exclude rules)."},{"name":"update_content_rules","description":"Save a standing rule the user states about their posts or images, one rule at a time, without rewriting the rest of their style guide. 'always' rules feed what "},{"name":"set_image_style","description":"Choose whether the user's posts use AI-created images (true) or real photos — their brand images, products and stock (false)."},{"name":"get_pricing","description":"Get oriiion's subscription plans and prices. Works without authentication — useful before the user has an account. To subscribe, the user pays through their per"},{"name":"get_billing_status","description":"Get the authenticated user's own subscription/contract status: current plan, monthly amount, last and next payment, recent invoices, and Try & Buy trial state ("},{"name":"get_booking_payments","description":"Payments the user's customers made for bookings on the user's own website (Stripe via oriiion): totals, last 30 days, fees, the latest payments with receipt lin"},{"name":"get_meeting_availability","description":"Read the authenticated business’s bookable calendar services, resources and host timezone, or check available times on one local date. Omit date/service/resourc"},{"name":"prepare_meeting_link","description":"Prepare a guest room link for the user’s email draft. Recheck host calendar availability and atomically reserve the selected service time, then automatically cr"},{"name":"prepare_booking_link","description":"Prepare a public availability booking link for the user’s email draft, using an existing host calendar service and optional resource. The recipient opens it, se"},{"name":"create_meeting","description":"Create a branded oriiion video meeting in the authenticated user’s My business workspace. Requires Business Suite, a customer instance and the Meetings grant. A"},{"name":"list_meetings","description":"Check the authenticated business’s upcoming or past oriiion meetings and find exact room IDs. Default upcoming; use history for catch-up requests and all when s"},{"name":"link_meeting_customer","description":"Connect an existing owned meeting and its retained recordings to a CRM customer, including finished meetings. Use exactly one of roomId or latest:true, and exac"},{"name":"get_meeting","description":"Read one owned My business meeting: title, schedule, current status, settings and its guestUrl/hostJoinUrl. When asked for joining links, always include both, c"},{"name":"get_meeting_catchup","description":"Catch up on an owned meeting from its saved summary, speaker-labelled final transcript, chat, notes and follow-up drafts. Use list_meetings to select the correc"},{"name":"get_business_mail_recipients","description":"Choose usable email recipients from the authenticated business’s CURRENT CRM lead lists. Read only: does not add newsletter consent, modify contacts or send any"},{"name":"send_business_email","description":"Send the exact approved personal email from the authenticated business mailbox to 1–5 explicit recipients. This sends real email. First show the sender, recipie"},{"name":"list_business_emails","description":"List messages in the authenticated business’s own mailbox. Read only: never marks mail read, archives, drafts or sends anything. Views mirror the dashboard: inb"},{"name":"get_business_email","description":"Open one message from the authenticated business mailbox by the id list_business_emails returned. Read only: unlike opening it in the dashboard, this does NOT m"},{"name":"update_business_emails","description":"Mailbox housekeeping in the authenticated business mailbox, only when the user asks: mark messages read or unread, archive or unarchive. Sends nothing and delet"},{"name":"draft_business_email_reply","description":"Save a reply draft on one received message in the authenticated business mailbox, for the owner to review. This sends NOTHING and is not authorization to send. "},{"name":"list_github_repos","description":"List the GitHub repositories the user has switched on for oriiion (beta). Only these repos can be read. If none are switched on, tell the user to choose repos u"},{"name":"list_github_changes","description":"What recently shipped in the user's switched-on GitHub repos: merged pull requests and recent commits on the default branch, newest first. Use for 'what did we "},{"name":"get_github_change","description":"The full picture of one pull request: description, commits and the most telling parts of the diff. Use it to explain in plain language what changed for a user, "},{"name":"get_github_file","description":"Read one file from a switched-on repo's default branch — by default the README, which is the quickest way to learn what a product is. Given a directory path, li"},{"name":"research_website","description":"Scrape the user's website and auto-extract business name, category and description into their profile (only fills fields that are still empty). Use during onboa"},{"name":"list_products","description":"List the user's products (from their connected Shopify store and/or website product feed). Pass `search` to filter by title/description. Each item includes ALL "},{"name":"get_product","description":"Get full details for one product — complete title, full (untruncated) description and every product image URL. Use before generating so posts reflect the real p"}],"toolCount":177,"toolsHash":"e32b69ddbc522bc01c8adbe0a3b64e66c9a2ebb728b580400e1dbef39e082513","serverName":"orion-ai","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T20:25:24.515Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":157,"error":null,"detail":{"tools":[{"name":"get_chatgpt_ads","description":"Read the current user’s ChatGPT ad drafts, campaigns and results: status, budget, fees, spend, impressions, clicks, CTR, CPC and CPM. Includes account availabil"},{"name":"create_chatgpt_ad","description":"Save a ChatGPT ad DRAFT under the current user. Does not launch, reserve funds or spend money. Returns the creative and current quote for review in chat. Use st"},{"name":"edit_chatgpt_ad","description":"Edit selected fields of a ChatGPT ad draft; pass its latest revision from get_chatgpt_ads. For a launched ad, creative/targeting/bid/duration changes require re"},{"name":"start_chatgpt_ad","description":"SPENDS MONEY. Launch an approved draft using its exact approvalToken from create/edit/get_chatgpt_ads, or resume a paused campaign within its existing lifetime "},{"name":"pause_chatgpt_ad","description":"Pause delivery of the current user’s ChatGPT ad. It can be resumed with start_chatgpt_ad before its deadline and within the remaining budget."},{"name":"end_chatgpt_ad","description":"End a ChatGPT draft or archive a launched campaign permanently. It cannot be resumed. Unspent reservations settle after the final daily report and at least 48 h"},{"name":"update_chatgpt_ad_budget","description":"Change a launched ChatGPT ad’s lifetime budget. First read get_chatgpt_ads. State the new total and additional reservation/fee and obtain approval. Additional c"},{"name":"onboarding_v7","description":"Start or continue oriiion onboarding, without login. Ask exactly the returned question and show its choices; carry returned answers into the next call. Append t"},{"name":"get_content_skill","description":"oriiion's own method for social media content, as a skill to follow: 'content-strategy' (plan a month of posts like a strategy meeting), 'post-craft' (direct on"},{"name":"import_memories","description":"Store what another AI assistant (ChatGPT, Claude, Gemini) remembers about the user into oriiion, so oriiion's assistant knows them from the first message. You m"},{"name":"get_account_info","description":"Get the authenticated user's profile and business information."},{"name":"get_analytics_overview","description":"Headline social-media performance for the account over a period: total views, reach, engagements (likes/comments/shares/saves), posts and followers, each with c"},{"name":"get_platform_analytics","description":"Per-platform breakdown of performance (views, reach, engagements, followers, engagement rate) ranked so you can see which platform delivers the most value for t"},{"name":"get_top_posts","description":"The best-performing published posts by engagement, with their captions, platforms, media type and metrics. Study these to learn what content resonates and creat"},{"name":"get_top_performing_media","description":"Fetch the user's top-performing published post images and videos, ranked by engagement (likes, comments, views) or recency. Returns verified media URLs and perf"},{"name":"get_best_posting_times","description":"Engagement-weighted best times to post (day + hour, UTC) based on the account's own history, plus concrete upcoming datetimes to schedule at. Use before schedul"},{"name":"get_follower_stats","description":"Follower counts and growth per connected account over a period. Use alongside engagement to judge which platforms are worth investing in."},{"name":"get_content_insights","description":"A synthesized 'what's working' briefing combining the best platform, best posting times, top posts and the engagement mix into actionable guidance for creating "},{"name":"list_posts","description":"List the user's social media posts. Supports filtering by status and platform. Returns up to 50 posts at a time."},{"name":"get_post","description":"Get a single post by ID, including its carousel media items if any."},{"name":"show_product_picker","description":"Show products from the user’s connected Shopify store or website/feed as selectable cards with reference photos. Search for a product or supply 1-6 real IDs fro"},{"name":"create_photo_carousel","description":"Create ONE carousel post containing 2-10 separately generated photos, in the requested order. Use when the user asks for an image/product/photo carousel, not se"},{"name":"create_product_video","description":"Make a short vertical video (Reels/TikTok) out of one or more products from list_products — their photos, titles and descriptions. sound: music (music only), vo"},{"name":"create_photo_reel","description":"Assemble 2-12 uploaded photos into a video, each shown exactly once in supplied order. Enforces targetSeconds (5-60), music and text switches. Defaults to a sil"},{"name":"open_image_editor","description":"Open the existing Edit AI Image modal for an owned post or a specific carousel image. Prefill only the requested instruction. The user can mark an area, describ"},{"name":"generate_posts","description":"Generate new social media posts using AI with Agency Workforce v3. Named products in the description (e.g. iPhone 18, Volvo EX90) are detected automatically: ph"},{"name":"spar_ideas","description":"Run an interactive sparring turn with Oriiion's strategic Thought Partner. Brainstorms high-impact angles (contrarian, playbook, risk/opportunity, book analogie"},{"name":"get_idea_bank","description":"Retrieve the user's saved Idea Bank (backlog, used, or archived idea cards from sparring sessions)."},{"name":"save_to_idea_bank","description":"Save an angle card or brainstormed concept directly to the user's Idea Bank backlog for later use."},{"name":"convert_sparring_idea_to_post","description":"Instantly turn a saved Idea Bank item or Sparring Angle Card into a finished single post using Agency Workforce v3."},{"name":"retry_post_image","description":"Make the image again for a post that has its caption but never got a picture (get_generation_status reports image_failed, or a post's imageStatus is 'failed'). "},{"name":"get_generation_status","description":"Check the status of an async post generation batch. Returns 'generating', 'caption_ready', 'completed', 'failed', or 'partial'. 'caption_ready' means the captio"},{"name":"edit_caption","description":"Update the caption/text of an existing post. Without a platform, the main caption is updated everywhere. With a platform, only that platform's caption variant i"},{"name":"generate_platform_captions","description":"AI-generate platform-specific caption variants (Facebook, Instagram, LinkedIn, X, etc.) for one post, tailored to each connected platform's style and character "},{"name":"set_mentions","description":"Add mentions/tags to a post. Instagram: photo tags (usernames) and collaborators (max 3). LinkedIn: mentions as { name, url } pairs — the caption must contain '"},{"name":"set_first_comment","description":"Set an automatic first comment for a post (posted right after publishing — commonly used for hashtags or links). Supported on Facebook, Instagram and LinkedIn. "},{"name":"publish_post","description":"Publish a draft post now, to every network it is set to go to — any connected network: Facebook, Instagram, LinkedIn, X, TikTok, YouTube, Threads, Pinterest, Bl"},{"name":"schedule_post","description":"Schedule (or reschedule) a ready post for a date and time; it publishes itself then. Choose the networks with platforms — ['all'] for every connected network, o"},{"name":"delete_post","description":"Delete a post. Only draft and scheduled posts can be deleted. Published posts cannot be deleted."},{"name":"list_todo","description":"Everything waiting for the user's yes: a post idea from a spike, a connection to fix, and — as they ship — comments, messages and reviews to answer, each with a"},{"name":"act_on_todo","description":"Accept or dismiss one todo item by id (from list_todo). Accepting does what the card's button does: a post idea starts generating, a connection card returns the"},{"name":"get_connect_link","description":"One link that connects or reconnects a channel. Send it to the user: it works in any browser, asks them to sign in if needed, and finishes the connection by its"},{"name":"get_connection_health","description":"Whether each connected channel can still publish: ok, warning, or needs_reconnect (with the link to fix it). Check this when a post failed or the user asks why "},{"name":"search_trending_audio","description":"Trending or keyword-matched sounds from Instagram's audio catalog for a Reel — licensed music or original sounds. Returns audioIds to use with set_reel_audio."},{"name":"set_reel_audio","description":"Attach a sound from search_trending_audio to an unpublished video post. Applies when it publishes as an Instagram Reel."},{"name":"set_paid_partnership","description":"Mark an unpublished Instagram post as a paid partnership (required by law when a brand paid for it), tagging up to two sponsor usernames. Instagram shows the la"},{"name":"get_audience_insights","description":"Who follows and who engages: age, gender and city breakdowns, 30-day totals and the best posting slots for the user's Instagram (and Facebook page). Use it to a"},{"name":"list_conversations","description":"Direct-message conversations on the user's connected accounts (Instagram, Messenger, WhatsApp, Telegram, X…), newest first, with the last message and unread cou"},{"name":"get_conversation","description":"The messages in one conversation, oldest first. Use conversationId and accountId exactly as returned by list_conversations."},{"name":"send_message","description":"Send a direct message in an existing conversation on the user's behalf. ALWAYS show the user the exact text and get their approval before calling this — it goes"},{"name":"list_reviews","description":"Google Business (and Facebook) reviews on the user's connected accounts, newest first, with rating, text and whether they've been answered. Use reply_to_review "},{"name":"reply_to_review","description":"Post a public reply to a review. Use reviewId and accountId from list_reviews. ALWAYS show the user the reply text and get their approval first — it is public a"},{"name":"list_subreddits","description":"The subreddits the user's connected Reddit account can post to. Pass a subreddit name to get its rules and flairs — read them before drafting a Reddit post."},{"name":"publish_to_reddit","description":"Post to a subreddit on the user's behalf: a title written for that subreddit plus text, a link, or an existing post's caption and image. Reddit is never posted "},{"name":"get_customer_profile","description":"Read the authenticated customer profile folder: business soul, brand/design guidance and connected channels. Files regenerate from saved settings. Update busine"},{"name":"get_connected_platforms","description":"List all social media platforms the user has connected (Facebook, Instagram, LinkedIn, X). Shows page names and usernames."},{"name":"get_onboarding_status","description":"Check the user's onboarding progress. Returns which steps are completed, which are required, and whether onboarding is fully complete."},{"name":"get_onboarding_links","description":"Generate onboarding links for the user's remaining steps (payment, Instagram, Facebook, LinkedIn connections). Returns direct links the user can click to comple"},{"name":"update_business_info","description":"Update the user's business profile information. All fields are optional — only provided fields will be updated."},{"name":"set_account_type","description":"Set the user's account type. This affects which social platforms are required during onboarding."},{"name":"get_post_review_link","description":"Create two links to a visual page of the user's generated posts. ownerLink = full CONTROL: edit each platform's caption (by hand or by AI rewrite), AI-edit / re"},{"name":"complete_onboarding","description":"Mark the user's onboarding as complete. Only works once all required steps (payment + required social connection) are done — verify with get_onboarding_status f"},{"name":"find_social_profiles","description":"Find the user's social media profiles (Instagram, LinkedIn, Facebook, YouTube, TikTok, X) by harvesting links from their website and web-searching for official "},{"name":"set_social_profiles","description":"Save the user's confirmed social media profile URLs to their account."},{"name":"discover_brand_images","description":"Collect candidate brand images from the user's website, Instagram posts and earlier research (up to 24). Show them to the user to pick from, then save the selec"},{"name":"select_brand_images","description":"Save the user's chosen brand images as visual references for post generation."},{"name":"list_connected_sources","description":"List the user's connected photo libraries (Dropbox, OneDrive, Google Drive/Photos, etc.) and which approved folder/album each imports from."},{"name":"search_my_images","description":"Search the user's own photo library (imported + scraped, vision-tagged) by keyword — e.g. 'coffee', 'team', 'outdoor'. Returns real photo URLs to use with chang"},{"name":"recommend_images_for_post","description":"Given a post ID, return the best-matching real photos from the user's own library for that post's topic (ranked). Ideal for AI-OFF customers — pass a chosen URL"},{"name":"research_brand","description":"Analyze the user's website (screenshot + AI vision) to extract their brand identity: logo, brand colors and fonts. Takes ~20-30 seconds. Nothing is saved — show"},{"name":"get_brand_identity","description":"Get the user's saved brand identity: logo, colors, fonts, AI-image setting, and content style guide (include/exclude rules)."},{"name":"set_brand_identity","description":"Save the user's confirmed brand identity. Only provided fields are updated."},{"name":"generate_style_guide","description":"Generate a content style guide (tone of voice, dos, don'ts, emoji & hashtag policy) from the user's saved business profile. Nothing is saved — show it to the us"},{"name":"save_style_guide","description":"Persist the user's confirmed content style guide. It feeds directly into post generation (include/exclude rules)."},{"name":"update_content_rules","description":"Save a standing rule the user states about their posts or images, one rule at a time, without rewriting the rest of their style guide. 'always' rules feed what "},{"name":"set_image_style","description":"Choose whether the user's posts use AI-created images (true) or real photos — their brand images, products and stock (false)."},{"name":"get_pricing","description":"Get oriiion's subscription plans and prices. Works without authentication — useful before the user has an account. To subscribe, the user pays through their per"},{"name":"get_billing_status","description":"Get the authenticated user's own subscription/contract status: current plan, monthly amount, last and next payment, recent invoices, and Try & Buy trial state ("},{"name":"get_booking_payments","description":"Payments the user's customers made for bookings on the user's own website (Stripe via oriiion): totals, last 30 days, fees, the latest payments with receipt lin"},{"name":"get_meeting_availability","description":"Read the authenticated business’s bookable calendar services, resources and host timezone, or check available times on one local date. Omit date/service/resourc"},{"name":"prepare_meeting_link","description":"Prepare a guest room link for the user’s email draft. Recheck host calendar availability and atomically reserve the selected service time, then automatically cr"},{"name":"prepare_booking_link","description":"Prepare a public availability booking link for the user’s email draft, using an existing host calendar service and optional resource. The recipient opens it, se"},{"name":"create_meeting","description":"Create a branded oriiion video meeting in the authenticated user’s My business workspace. Requires Business Suite, a customer instance and the Meetings grant. A"},{"name":"list_meetings","description":"Check the authenticated business’s upcoming or past oriiion meetings and find exact room IDs. Default upcoming; use history for catch-up requests and all when s"},{"name":"link_meeting_customer","description":"Connect an existing owned meeting and its retained recordings to a CRM customer, including finished meetings. Use exactly one of roomId or latest:true, and exac"},{"name":"get_meeting","description":"Read one owned My business meeting: title, schedule, current status, settings and its guestUrl/hostJoinUrl. When asked for joining links, always include both, c"},{"name":"get_meeting_catchup","description":"Catch up on an owned meeting from its saved summary, speaker-labelled final transcript, chat, notes and follow-up drafts. Use list_meetings to select the correc"},{"name":"get_business_mail_recipients","description":"Choose usable email recipients from the authenticated business’s CURRENT CRM lead lists. Read only: does not add newsletter consent, modify contacts or send any"},{"name":"send_business_email","description":"Send the exact approved personal email from the authenticated business mailbox to 1–5 explicit recipients. This sends real email. First show the sender, recipie"},{"name":"list_business_emails","description":"List messages in the authenticated business’s own mailbox. Read only: never marks mail read, archives, drafts or sends anything. Views mirror the dashboard: inb"},{"name":"get_business_email","description":"Open one message from the authenticated business mailbox by the id list_business_emails returned. Read only: unlike opening it in the dashboard, this does NOT m"},{"name":"update_business_emails","description":"Mailbox housekeeping in the authenticated business mailbox, only when the user asks: mark messages read or unread, archive or unarchive. Sends nothing and delet"},{"name":"draft_business_email_reply","description":"Save a reply draft on one received message in the authenticated business mailbox, for the owner to review. This sends NOTHING and is not authorization to send. "},{"name":"list_github_repos","description":"List the GitHub repositories the user has switched on for oriiion (beta). Only these repos can be read. If none are switched on, tell the user to choose repos u"},{"name":"list_github_changes","description":"What recently shipped in the user's switched-on GitHub repos: merged pull requests and recent commits on the default branch, newest first. Use for 'what did we "},{"name":"get_github_change","description":"The full picture of one pull request: description, commits and the most telling parts of the diff. Use it to explain in plain language what changed for a user, "},{"name":"get_github_file","description":"Read one file from a switched-on repo's default branch — by default the README, which is the quickest way to learn what a product is. Given a directory path, li"},{"name":"research_website","description":"Scrape the user's website and auto-extract business name, category and description into their profile (only fills fields that are still empty). Use during onboa"},{"name":"list_products","description":"List the user's products (from their connected Shopify store and/or website product feed). Pass `search` to filter by title/description. Each item includes ALL "},{"name":"get_product","description":"Get full details for one product — complete title, full (untruncated) description and every product image URL. Use before generating so posts reflect the real p"}],"toolCount":177,"toolsHash":"e32b69ddbc522bc01c8adbe0a3b64e66c9a2ebb728b580400e1dbef39e082513","serverName":"orion-ai","capabilities":["tools","prompts"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_chatgpt_ads","description":"Read the current user’s ChatGPT ad drafts, campaigns and results: status, budget, fees, spend, impressions, clicks, CTR, CPC and CPM. Includes account availabil"},{"name":"create_chatgpt_ad","description":"Save a ChatGPT ad DRAFT under the current user. Does not launch, reserve funds or spend money. Returns the creative and current quote for review in chat. Use st"},{"name":"edit_chatgpt_ad","description":"Edit selected fields of a ChatGPT ad draft; pass its latest revision from get_chatgpt_ads. For a launched ad, creative/targeting/bid/duration changes require re"},{"name":"start_chatgpt_ad","description":"SPENDS MONEY. Launch an approved draft using its exact approvalToken from create/edit/get_chatgpt_ads, or resume a paused campaign within its existing lifetime "},{"name":"pause_chatgpt_ad","description":"Pause delivery of the current user’s ChatGPT ad. It can be resumed with start_chatgpt_ad before its deadline and within the remaining budget."},{"name":"end_chatgpt_ad","description":"End a ChatGPT draft or archive a launched campaign permanently. It cannot be resumed. Unspent reservations settle after the final daily report and at least 48 h"},{"name":"update_chatgpt_ad_budget","description":"Change a launched ChatGPT ad’s lifetime budget. First read get_chatgpt_ads. State the new total and additional reservation/fee and obtain approval. Additional c"},{"name":"onboarding_v7","description":"Start or continue oriiion onboarding, without login. Ask exactly the returned question and show its choices; carry returned answers into the next call. Append t"},{"name":"get_content_skill","description":"oriiion's own method for social media content, as a skill to follow: 'content-strategy' (plan a month of posts like a strategy meeting), 'post-craft' (direct on"},{"name":"import_memories","description":"Store what another AI assistant (ChatGPT, Claude, Gemini) remembers about the user into oriiion, so oriiion's assistant knows them from the first message. You m"},{"name":"get_account_info","description":"Get the authenticated user's profile and business information."},{"name":"get_analytics_overview","description":"Headline social-media performance for the account over a period: total views, reach, engagements (likes/comments/shares/saves), posts and followers, each with c"},{"name":"get_platform_analytics","description":"Per-platform breakdown of performance (views, reach, engagements, followers, engagement rate) ranked so you can see which platform delivers the most value for t"},{"name":"get_top_posts","description":"The best-performing published posts by engagement, with their captions, platforms, media type and metrics. Study these to learn what content resonates and creat"},{"name":"get_top_performing_media","description":"Fetch the user's top-performing published post images and videos, ranked by engagement (likes, comments, views) or recency. Returns verified media URLs and perf"},{"name":"get_best_posting_times","description":"Engagement-weighted best times to post (day + hour, UTC) based on the account's own history, plus concrete upcoming datetimes to schedule at. Use before schedul"},{"name":"get_follower_stats","description":"Follower counts and growth per connected account over a period. Use alongside engagement to judge which platforms are worth investing in."},{"name":"get_content_insights","description":"A synthesized 'what's working' briefing combining the best platform, best posting times, top posts and the engagement mix into actionable guidance for creating "},{"name":"list_posts","description":"List the user's social media posts. Supports filtering by status and platform. Returns up to 50 posts at a time."},{"name":"get_post","description":"Get a single post by ID, including its carousel media items if any."},{"name":"show_product_picker","description":"Show products from the user’s connected Shopify store or website/feed as selectable cards with reference photos. Search for a product or supply 1-6 real IDs fro"},{"name":"create_photo_carousel","description":"Create ONE carousel post containing 2-10 separately generated photos, in the requested order. Use when the user asks for an image/product/photo carousel, not se"},{"name":"create_product_video","description":"Make a short vertical video (Reels/TikTok) out of one or more products from list_products — their photos, titles and descriptions. sound: music (music only), vo"},{"name":"create_photo_reel","description":"Assemble 2-12 uploaded photos into a video, each shown exactly once in supplied order. Enforces targetSeconds (5-60), music and text switches. Defaults to a sil"},{"name":"open_image_editor","description":"Open the existing Edit AI Image modal for an owned post or a specific carousel image. Prefill only the requested instruction. The user can mark an area, describ"},{"name":"generate_posts","description":"Generate new social media posts using AI with Agency Workforce v3. Named products in the description (e.g. iPhone 18, Volvo EX90) are detected automatically: ph"},{"name":"spar_ideas","description":"Run an interactive sparring turn with Oriiion's strategic Thought Partner. Brainstorms high-impact angles (contrarian, playbook, risk/opportunity, book analogie"},{"name":"get_idea_bank","description":"Retrieve the user's saved Idea Bank (backlog, used, or archived idea cards from sparring sessions)."},{"name":"save_to_idea_bank","description":"Save an angle card or brainstormed concept directly to the user's Idea Bank backlog for later use."},{"name":"convert_sparring_idea_to_post","description":"Instantly turn a saved Idea Bank item or Sparring Angle Card into a finished single post using Agency Workforce v3."},{"name":"retry_post_image","description":"Make the image again for a post that has its caption but never got a picture (get_generation_status reports image_failed, or a post's imageStatus is 'failed'). "},{"name":"get_generation_status","description":"Check the status of an async post generation batch. Returns 'generating', 'caption_ready', 'completed', 'failed', or 'partial'. 'caption_ready' means the captio"},{"name":"edit_caption","description":"Update the caption/text of an existing post. Without a platform, the main caption is updated everywhere. With a platform, only that platform's caption variant i"},{"name":"generate_platform_captions","description":"AI-generate platform-specific caption variants (Facebook, Instagram, LinkedIn, X, etc.) for one post, tailored to each connected platform's style and character "},{"name":"set_mentions","description":"Add mentions/tags to a post. Instagram: photo tags (usernames) and collaborators (max 3). LinkedIn: mentions as { name, url } pairs — the caption must contain '"},{"name":"set_first_comment","description":"Set an automatic first comment for a post (posted right after publishing — commonly used for hashtags or links). Supported on Facebook, Instagram and LinkedIn. "},{"name":"publish_post","description":"Publish a draft post now, to every network it is set to go to — any connected network: Facebook, Instagram, LinkedIn, X, TikTok, YouTube, Threads, Pinterest, Bl"},{"name":"schedule_post","description":"Schedule (or reschedule) a ready post for a date and time; it publishes itself then. Choose the networks with platforms — ['all'] for every connected network, o"},{"name":"delete_post","description":"Delete a post. Only draft and scheduled posts can be deleted. Published posts cannot be deleted."},{"name":"list_todo","description":"Everything waiting for the user's yes: a post idea from a spike, a connection to fix, and — as they ship — comments, messages and reviews to answer, each with a"},{"name":"act_on_todo","description":"Accept or dismiss one todo item by id (from list_todo). Accepting does what the card's button does: a post idea starts generating, a connection card returns the"},{"name":"get_connect_link","description":"One link that connects or reconnects a channel. Send it to the user: it works in any browser, asks them to sign in if needed, and finishes the connection by its"},{"name":"get_connection_health","description":"Whether each connected channel can still publish: ok, warning, or needs_reconnect (with the link to fix it). Check this when a post failed or the user asks why "},{"name":"search_trending_audio","description":"Trending or keyword-matched sounds from Instagram's audio catalog for a Reel — licensed music or original sounds. Returns audioIds to use with set_reel_audio."},{"name":"set_reel_audio","description":"Attach a sound from search_trending_audio to an unpublished video post. Applies when it publishes as an Instagram Reel."},{"name":"set_paid_partnership","description":"Mark an unpublished Instagram post as a paid partnership (required by law when a brand paid for it), tagging up to two sponsor usernames. Instagram shows the la"},{"name":"get_audience_insights","description":"Who follows and who engages: age, gender and city breakdowns, 30-day totals and the best posting slots for the user's Instagram (and Facebook page). Use it to a"},{"name":"list_conversations","description":"Direct-message conversations on the user's connected accounts (Instagram, Messenger, WhatsApp, Telegram, X…), newest first, with the last message and unread cou"},{"name":"get_conversation","description":"The messages in one conversation, oldest first. Use conversationId and accountId exactly as returned by list_conversations."},{"name":"send_message","description":"Send a direct message in an existing conversation on the user's behalf. ALWAYS show the user the exact text and get their approval before calling this — it goes"},{"name":"list_reviews","description":"Google Business (and Facebook) reviews on the user's connected accounts, newest first, with rating, text and whether they've been answered. Use reply_to_review "},{"name":"reply_to_review","description":"Post a public reply to a review. Use reviewId and accountId from list_reviews. ALWAYS show the user the reply text and get their approval first — it is public a"},{"name":"list_subreddits","description":"The subreddits the user's connected Reddit account can post to. Pass a subreddit name to get its rules and flairs — read them before drafting a Reddit post."},{"name":"publish_to_reddit","description":"Post to a subreddit on the user's behalf: a title written for that subreddit plus text, a link, or an existing post's caption and image. Reddit is never posted "},{"name":"get_customer_profile","description":"Read the authenticated customer profile folder: business soul, brand/design guidance and connected channels. Files regenerate from saved settings. Update busine"},{"name":"get_connected_platforms","description":"List all social media platforms the user has connected (Facebook, Instagram, LinkedIn, X). Shows page names and usernames."},{"name":"get_onboarding_status","description":"Check the user's onboarding progress. Returns which steps are completed, which are required, and whether onboarding is fully complete."},{"name":"get_onboarding_links","description":"Generate onboarding links for the user's remaining steps (payment, Instagram, Facebook, LinkedIn connections). Returns direct links the user can click to comple"},{"name":"update_business_info","description":"Update the user's business profile information. All fields are optional — only provided fields will be updated."},{"name":"set_account_type","description":"Set the user's account type. This affects which social platforms are required during onboarding."},{"name":"get_post_review_link","description":"Create two links to a visual page of the user's generated posts. ownerLink = full CONTROL: edit each platform's caption (by hand or by AI rewrite), AI-edit / re"},{"name":"complete_onboarding","description":"Mark the user's onboarding as complete. Only works once all required steps (payment + required social connection) are done — verify with get_onboarding_status f"},{"name":"find_social_profiles","description":"Find the user's social media profiles (Instagram, LinkedIn, Facebook, YouTube, TikTok, X) by harvesting links from their website and web-searching for official "},{"name":"set_social_profiles","description":"Save the user's confirmed social media profile URLs to their account."},{"name":"discover_brand_images","description":"Collect candidate brand images from the user's website, Instagram posts and earlier research (up to 24). Show them to the user to pick from, then save the selec"},{"name":"select_brand_images","description":"Save the user's chosen brand images as visual references for post generation."},{"name":"list_connected_sources","description":"List the user's connected photo libraries (Dropbox, OneDrive, Google Drive/Photos, etc.) and which approved folder/album each imports from."},{"name":"search_my_images","description":"Search the user's own photo library (imported + scraped, vision-tagged) by keyword — e.g. 'coffee', 'team', 'outdoor'. Returns real photo URLs to use with chang"},{"name":"recommend_images_for_post","description":"Given a post ID, return the best-matching real photos from the user's own library for that post's topic (ranked). Ideal for AI-OFF customers — pass a chosen URL"},{"name":"research_brand","description":"Analyze the user's website (screenshot + AI vision) to extract their brand identity: logo, brand colors and fonts. Takes ~20-30 seconds. Nothing is saved — show"},{"name":"get_brand_identity","description":"Get the user's saved brand identity: logo, colors, fonts, AI-image setting, and content style guide (include/exclude rules)."},{"name":"set_brand_identity","description":"Save the user's confirmed brand identity. Only provided fields are updated."},{"name":"generate_style_guide","description":"Generate a content style guide (tone of voice, dos, don'ts, emoji & hashtag policy) from the user's saved business profile. Nothing is saved — show it to the us"},{"name":"save_style_guide","description":"Persist the user's confirmed content style guide. It feeds directly into post generation (include/exclude rules)."},{"name":"update_content_rules","description":"Save a standing rule the user states about their posts or images, one rule at a time, without rewriting the rest of their style guide. 'always' rules feed what "},{"name":"set_image_style","description":"Choose whether the user's posts use AI-created images (true) or real photos — their brand images, products and stock (false)."},{"name":"get_pricing","description":"Get oriiion's subscription plans and prices. Works without authentication — useful before the user has an account. To subscribe, the user pays through their per"},{"name":"get_billing_status","description":"Get the authenticated user's own subscription/contract status: current plan, monthly amount, last and next payment, recent invoices, and Try & Buy trial state ("},{"name":"get_booking_payments","description":"Payments the user's customers made for bookings on the user's own website (Stripe via oriiion): totals, last 30 days, fees, the latest payments with receipt lin"},{"name":"get_meeting_availability","description":"Read the authenticated business’s bookable calendar services, resources and host timezone, or check available times on one local date. Omit date/service/resourc"},{"name":"prepare_meeting_link","description":"Prepare a guest room link for the user’s email draft. Recheck host calendar availability and atomically reserve the selected service time, then automatically cr"},{"name":"prepare_booking_link","description":"Prepare a public availability booking link for the user’s email draft, using an existing host calendar service and optional resource. The recipient opens it, se"},{"name":"create_meeting","description":"Create a branded oriiion video meeting in the authenticated user’s My business workspace. Requires Business Suite, a customer instance and the Meetings grant. A"},{"name":"list_meetings","description":"Check the authenticated business’s upcoming or past oriiion meetings and find exact room IDs. Default upcoming; use history for catch-up requests and all when s"},{"name":"link_meeting_customer","description":"Connect an existing owned meeting and its retained recordings to a CRM customer, including finished meetings. Use exactly one of roomId or latest:true, and exac"},{"name":"get_meeting","description":"Read one owned My business meeting: title, schedule, current status, settings and its guestUrl/hostJoinUrl. When asked for joining links, always include both, c"},{"name":"get_meeting_catchup","description":"Catch up on an owned meeting from its saved summary, speaker-labelled final transcript, chat, notes and follow-up drafts. Use list_meetings to select the correc"},{"name":"get_business_mail_recipients","description":"Choose usable email recipients from the authenticated business’s CURRENT CRM lead lists. Read only: does not add newsletter consent, modify contacts or send any"},{"name":"send_business_email","description":"Send the exact approved personal email from the authenticated business mailbox to 1–5 explicit recipients. This sends real email. First show the sender, recipie"},{"name":"list_business_emails","description":"List messages in the authenticated business’s own mailbox. Read only: never marks mail read, archives, drafts or sends anything. Views mirror the dashboard: inb"},{"name":"get_business_email","description":"Open one message from the authenticated business mailbox by the id list_business_emails returned. Read only: unlike opening it in the dashboard, this does NOT m"},{"name":"update_business_emails","description":"Mailbox housekeeping in the authenticated business mailbox, only when the user asks: mark messages read or unread, archive or unarchive. Sends nothing and delet"},{"name":"draft_business_email_reply","description":"Save a reply draft on one received message in the authenticated business mailbox, for the owner to review. This sends NOTHING and is not authorization to send. "},{"name":"list_github_repos","description":"List the GitHub repositories the user has switched on for oriiion (beta). Only these repos can be read. If none are switched on, tell the user to choose repos u"},{"name":"list_github_changes","description":"What recently shipped in the user's switched-on GitHub repos: merged pull requests and recent commits on the default branch, newest first. Use for 'what did we "},{"name":"get_github_change","description":"The full picture of one pull request: description, commits and the most telling parts of the diff. Use it to explain in plain language what changed for a user, "},{"name":"get_github_file","description":"Read one file from a switched-on repo's default branch — by default the README, which is the quickest way to learn what a product is. Given a directory path, li"},{"name":"research_website","description":"Scrape the user's website and auto-extract business name, category and description into their profile (only fills fields that are still empty). Use during onboa"},{"name":"list_products","description":"List the user's products (from their connected Shopify store and/or website product feed). Pass `search` to filter by title/description. Each item includes ALL "},{"name":"get_product","description":"Get full details for one product — complete title, full (untruncated) description and every product image URL. Use before generating so posts reflect the real p"}],"package":null,"toolSurface":{"id":"ts_mnz2bku97uax","endpointId":"ep_9544z2je3q2d","hash":"11e5876f3eab625244d5bc2a9f18a518fdc108210cacb541b541678fc6487c99","toolCount":180,"serverName":"orion-ai","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-25T11:30:35.768Z","lastSeenAt":"2026-10-25T11:30:35.768Z","observations":1,"toolNames":["get_chatgpt_ads","create_chatgpt_ad","edit_chatgpt_ad","start_chatgpt_ad","pause_chatgpt_ad","end_chatgpt_ad","update_chatgpt_ad_budget","onboarding_v7","get_content_skill","import_memories","get_account_info","get_analytics_overview","get_platform_analytics","get_top_posts","get_top_performing_media","get_best_posting_times","get_follower_stats","get_content_insights","list_posts","get_post","show_product_picker","create_photo_carousel","create_product_video","create_photo_reel","open_image_editor","generate_posts","spar_ideas","get_idea_bank","save_to_idea_bank","convert_sparring_idea_to_post","retry_post_image","get_generation_status","edit_caption","generate_platform_captions","set_mentions","set_first_comment","publish_post","schedule_post","delete_post","list_todo","act_on_todo","get_connect_link","get_connection_health","search_trending_audio","set_reel_audio","set_paid_partnership","get_audience_insights","list_conversations","get_conversation","send_message","list_reviews","reply_to_review","list_subreddits","publish_to_reddit","get_customer_profile","get_connected_platforms","get_onboarding_status","get_onboarding_links","update_business_info","set_account_type","get_post_review_link","complete_onboarding","find_social_profiles","set_social_profiles","discover_brand_images","select_brand_images","list_connected_sources","search_my_images","recommend_images_for_post","research_brand","get_brand_identity","set_brand_identity","generate_style_guide","save_style_guide","update_content_rules","set_image_style","get_pricing","get_billing_status","get_booking_payments","get_meeting_availability","prepare_meeting_link","prepare_booking_link","create_meeting","list_meetings","link_meeting_customer","get_meeting","get_meeting_catchup","get_business_mail_recipients","send_business_email","list_business_emails","get_business_email","update_business_emails","draft_business_email_reply","list_github_repos","list_github_changes","get_github_change","get_github_file","research_website","list_products","get_product","create_product","generate_from_product","list_news","generate_from_news","render_video_shoot","create_video_shoot","create_shoot_project","list_shoot_folders","get_video_shoot_status","create_upload_link","list_uploaded_files","upload_file","create_media_upload_url","finalize_media_upload","import_media_from_url","create_post_from_image","create_carousel_from_images","create_document_post","create_carousel","redesign_document","add_image_to_post","edit_image","use_character_reference","create_image","get_image_status","change_image","get_task_status","create_post_from_video","process_video","list_comments","reply_to_comment","list_comment_automations","create_facebook_product_carousel","set_facebook_carousel","create_comment_automation","update_comment_automation","delete_comment_automation","list_broadcasts","create_broadcast","list_broadcast_contacts","add_broadcast_recipients","send_broadcast","delete_broadcast","get_ad_wallet","list_ad_campaigns","get_boost_recommendations","boost_post","google_ads_get_traffic_pages","google_ads_get_keyword_research","google_ads_get_social_keywords","google_ads_discover_trending_keywords","google_ads_get_campaign_insights","google_ads_create_search_campaign","google_ads_manage_campaign","find_trends_for_business","get_trend_details","create_from_trend","create_from_link","google_analytics_get_overview","google_analytics_get_traffic_sources","google_analytics_get_top_pages","google_analytics_get_realtime","google_search_console_get_performance","google_search_console_get_top_queries","google_search_console_get_top_pages","google_search_console_inspect_url","google_search_console_get_social_post_rankings","google_search_console_get_unified_brand_search","google_search_console_discover_social_seo_opportunities","create_customer_account","get_customer_onboarding","send_customer_welcome","send_password_reset","get_agent_onboarding","send_agent_onboarding_card","start_agent_onboarding_build","set_agent_onboarding_brand","set_agent_onboarding_images","finish_agent_onboarding","log_agent_onboarding"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_9544z2je3q2d","url":"https://www.oriiion.ai/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-25T04:25:31.097Z","auth":{"observedAt":"2026-10-25T04:25:31.439Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://www.oriiion.ai/.well-known/oauth-protected-resource/mcp","resource":"https://www.oriiion.ai/mcp","authorizationServers":["https://www.oriiion.ai"],"scopesSupported":["mcp"]},"authorizationServer":{"url":"https://www.oriiion.ai/.well-known/oauth-authorization-server","issuer":"https://www.oriiion.ai","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-25T04:25:31.469Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.oriiion.ai","issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validFrom":"2026-09-20T18:40:29.000Z","validTo":"2026-12-19T18:40:28.000Z","daysToExpiry":55,"sanCount":2,"fingerprint256":"F4:70:FB:00:84:21:59:16:DD:81:24:79:E0:AF:F6:A8:E1:41:0C:0E:DE:58:1D:68:C3:EB:80:DE:15:4C:06:FD"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.oriiion/oriiion","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.oriiion%2Foriiion","firstSeenAt":"2026-10-24T19:18:30.087Z","fetchedAt":"2026-10-24T19:18:30.087Z","normalizedAt":"2026-10-24T19:18:30.087Z"}]},"firstSeenAt":"2026-10-24T19:18:30.087Z","updatedAt":"2026-10-25T11:32:39.635Z"}