oriiion
Your marketing, a message away
Tools
get_chatgpt_adsRead the current user’s ChatGPT ad drafts, campaigns and results: status, budget, fees, spend, impressions, clicks, CTR, CPC and CPM. Includes account availability and draft approval quotes. Set refresh=true to fetch the latest provider report; reporting is daily, not real time. Null results mean no report yet. Paginate with nextOffset. Translate errorCode into the user’s language.create_chatgpt_adSave 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 start_chatgpt_ad only after the user approves the exact budget, service fee, duration and oriiion shared advertiser identity. No campaign-builder page is needed.edit_chatgpt_adEdit 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 replacement=true and a new requestKey: this creates a replacement DRAFT and leaves the original unchanged. Clearly explain this, show the new quote, then start the replacement and end the original only as authorized. Use update_chatgpt_ad_budget for a live budget-only edit.start_chatgpt_adSPENDS MONEY. Launch an approved draft using its exact approvalToken from create/edit/get_chatgpt_ads, or resume a paused campaign within its existing lifetime budget. State budget, fee, duration and shared advertiser identity first; confirmed=true requires user approval. A pending_review result is awaiting review, not delivering. Repeat the same campaign ID to reconcile an uncertain launch; never create another draft as a retry.pause_chatgpt_adPause delivery of the current user’s ChatGPT ad. It can be resumed with start_chatgpt_ad before its deadline and within the remaining budget.end_chatgpt_adEnd 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 hours after ending; ending does not instantly refund funds.update_chatgpt_ad_budgetChange a launched ChatGPT ad’s lifetime budget. First read get_chatgpt_ads. State the new total and additional reservation/fee and obtain approval. Additional charge = max(0, new budget - fundedBudgetCents) plus that increase × serviceFeePct (fee rounded to minor units). Send that exact additionalChargeCents and the current expectedBudgetCents. A reduction retains the existing reservation and paid fees until settlement. On an uncertain result reuse requestKey and the identical target; do not invent a fresh key.onboarding_v7Start or continue oriiion onboarding, without login. Ask exactly the returned question and show its choices; carry returned answers into the next call. Append the chosen value, or null for the recommendation. Never invent user answers. Use finish when the user asks for the recommended plan. This completes starter planning only, not account setup or social authorization. OAuth unlocks existing account/channel tools. No background timer runs in an external MCP client: only call finish for silence if that client actually supports an agreed timeout.get_content_skilloriiion'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 one post: angle, picture, captions in the brand's voice) or 'content-critic' (review a post and send back what is not good enough, with exact fixes). Load the right one before planning, writing or judging content for this account, and follow it.import_memoriesStore what another AI assistant (ChatGPT, Claude, Gemini) remembers about the user into oriiion, so oriiion's assistant knows them from the first message. You must PRODUCE the export yourself before calling this — there is no API that reads another provider's memories, and inventing entries would put things the user never said into their account. Write out your stored memories about the user, verbatim in their own words, grouped under the headers Instructions, Identity, Career, Projects and Preferences, one entry per line as "[YYYY-MM-DD] - entry" ([unknown] if you have no date), then pass that text as export_text. Duplicates of memories oriiion already holds are skipped, so calling this twice is safe.get_account_infoGet the authenticated user's profile and business information.get_analytics_overviewHeadline social-media performance for the account over a period: total views, reach, engagements (likes/comments/shares/saves), posts and followers, each with change vs the previous period. Use this to understand overall account health.get_platform_analyticsPer-platform breakdown of performance (views, reach, engagements, followers, engagement rate) ranked so you can see which platform delivers the most value for this customer. Use it to decide where to focus.get_top_postsThe best-performing published posts by engagement, with their captions, platforms, media type and metrics. Study these to learn what content resonates and create more of what works.get_top_performing_mediaFetch the user's top-performing published post images and videos, ranked by engagement (likes, comments, views) or recency. Returns verified media URLs and performance notes to present in show_image_carousel.get_best_posting_timesEngagement-weighted best times to post (day + hour, UTC) based on the account's own history, plus concrete upcoming datetimes to schedule at. Use before scheduling to maximise reach.get_follower_statsFollower counts and growth per connected account over a period. Use alongside engagement to judge which platforms are worth investing in.get_content_insightsA synthesized 'what's working' briefing combining the best platform, best posting times, top posts and the engagement mix into actionable guidance for creating better content. Call this before generating new posts to ground them in what performs.list_postsList the user's social media posts. Supports filtering by status and platform. Returns up to 50 posts at a time.get_postGet a single post by ID, including its carousel media items if any.show_product_pickerShow 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 from list_products. One candidate asks “Do you mean this product?”; several let the user choose. Use when the requested product/reference is ambiguous or a likely match needs confirming. This only displays choices: STOP and wait for the user before generating or editing. When the user already clearly confirmed a product, use that selection without asking again. On text-only channels present the returned names/photos as choices in the user’s language and wait.create_photo_carouselCreate 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 separate posts or a text slide deck. Supply a distinct complete brief for every slide, preserving all requested subjects and shared constraints. Use confirmed catalogue productIds and referenceImageIndex when supplied by the user. Original photos without AI changes use create_carousel_from_images instead. Returns generating, never finished; all slides must succeed before the carousel becomes a draft. Counts as one post. Never publish automatically.create_product_videoMake a short vertical video (Reels/TikTok) out of one or more products from list_products — their photos, titles and descriptions. sound: music (music only), voiceover (a narrator, with captions), both (narration over music), or leave it out and the concept decides. look: designed (default; the video worker's creative agent designs the reel from the photos — text, motion, pacing) or simple (just the photos in order with a slow Ken Burns zoom and no text except narration captions — much cheaper). With several products, each is shown by its first photo. Needs at least 2 product photos in total. Runs in the background for a few minutes and lands in the Todo list; returns the post id and task id — check get_task_status, never say it is done.create_photo_reelAssemble 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 silent, text-free reel. This uses the normal video renderer, not a trend sound. Returns rendering status, not a finished video. Branded text uses the renderer's saved brand settings; do not promise separate fonts per heading/subheading/body or a monochrome filter. Existing photos are preserved. Do not change account defaults.open_image_editorOpen 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, describe changes, add a reference photo, and pick products or @mention them, then press Generate edit. This only opens the editor; it does NOT generate, save or publish an edit. Offer this when precise visual corrections or product references would help; use it when the user accepts or asks to open the editor. Return the editorUrl on channels outside the app. Never claim the edit is done.generate_postsGenerate new social media posts using AI with Agency Workforce v3. Named products in the description (e.g. iPhone 18, Volvo EX90) are detected automatically: photos come from the user's own catalogue when they have it, otherwise reference photos are found on the web, so the image shows the real product. For an explicitly requested publication date, pass scheduledDate and optional scheduledTime: the server reserves the date and creates an idea review card with Approve / Change date. Approval is required before publishing. When the user names networks ('only TikTok', 'LinkedIn and Instagram', 'everywhere') pass platforms, and instagramPlacement 'story' for an Instagram story; the choice is kept through approval. Returns a task ID and group ID immediately; say creation has started, never that it is already scheduled. The user is notified when ready. Check get_generation_status if they ask for progress.spar_ideasRun an interactive sparring turn with Oriiion's strategic Thought Partner. Brainstorms high-impact angles (contrarian, playbook, risk/opportunity, book analogies, personal story), formulates opening hooks, and delivers quick choices.get_idea_bankRetrieve the user's saved Idea Bank (backlog, used, or archived idea cards from sparring sessions).save_to_idea_bankSave an angle card or brainstormed concept directly to the user's Idea Bank backlog for later use.convert_sparring_idea_to_postInstantly turn a saved Idea Bank item or Sparring Angle Card into a finished single post using Agency Workforce v3.retry_post_imageMake 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'). Only the image is remade — the caption is left exactly as it is, including any edits the user made while waiting.get_generation_statusCheck the status of an async post generation batch. Returns 'generating', 'caption_ready', 'completed', 'failed', or 'partial'. 'caption_ready' means the captions are final and the images are still rendering — show the user the caption text then, do not wait for the pictures. Each post also carries imageStatus: pending | ready | none.edit_captionUpdate 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 is changed (other platforms keep theirs).generate_platform_captionsAI-generate platform-specific caption variants (Facebook, Instagram, LinkedIn, X, etc.) for one post, tailored to each connected platform's style and character limits. The base caption stays unchanged; each platform publishes its own variant.set_mentionsAdd mentions/tags to a post. Instagram: photo tags (usernames) and collaborators (max 3). LinkedIn: mentions as { name, url } pairs — the caption must contain '@<name>' for each one. Applied when the post is published.set_first_commentSet an automatic first comment for a post (posted right after publishing — commonly used for hashtags or links). Supported on Facebook, Instagram and LinkedIn. Pass an empty string to remove it.publish_postPublish a draft post now, to every network it is set to go to — any connected network: Facebook, Instagram, LinkedIn, X, TikTok, YouTube, Threads, Pinterest, Bluesky, Snapchat, Telegram, Discord. Pass platforms to choose (['all'], ['tiktok'], ['linkedin','instagram'] …), instagramPlacement 'story' for an Instagram story only, and instagramTrialReel only when the user asks for a trial reel. Only draft posts can be published. The result names what was published, what failed and what could not publish.schedule_postSchedule (or reschedule) a ready post for a date and time; it publishes itself then. Choose the networks with platforms — ['all'] for every connected network, or a subset like ['tiktok'] or ['linkedin','instagram']; omit to keep the post's current choice (else the account's publishing settings). instagramPlacement 'story' = Instagram story only; instagramTrialReel only when the user explicitly asks for a trial reel. Everything is checked now: the result lists the networks it will go to and any that can't publish, with the reason. For a NEW post on a date, use generate_posts with scheduledDate.delete_postDelete a post. Only draft and scheduled posts can be deleted. Published posts cannot be deleted.list_todoEverything 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 ready draft and one line on why it's there. Same list as the todo page. Use act_on_todo to accept or dismiss.act_on_todoAccept 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 link to send. If the user changed a draft before saying yes, pass their version as finalText. Always confirm with the user before accepting anything that sends or publishes.get_connect_linkOne 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 itself. Use when a channel is missing, or when get_connection_health says needs_reconnect.get_connection_healthWhether 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 something didn't go out.search_trending_audioTrending 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.set_reel_audioAttach a sound from search_trending_audio to an unpublished video post. Applies when it publishes as an Instagram Reel.set_paid_partnershipMark 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 label on publish.get_audience_insightsWho 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 answer 'who is my audience' or to ground a post idea in a real group.list_conversationsDirect-message conversations on the user's connected accounts (Instagram, Messenger, WhatsApp, Telegram, X…), newest first, with the last message and unread count. Use get_conversation for a thread. Only when the user explicitly asks about their messages — never on your own initiative, and never to suggest replies.get_conversationThe messages in one conversation, oldest first. Use conversationId and accountId exactly as returned by list_conversations.send_messageSend 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 to a real person immediately.list_reviewsGoogle 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 to answer one.reply_to_reviewPost 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 and permanent.list_subredditsThe 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.publish_to_redditPost 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 to automatically — only through this, and only after the user has approved subreddit, title and text. Check list_subreddits for rules and flairs first.get_customer_profileRead the authenticated customer profile folder: business soul, brand/design guidance and connected channels. Files regenerate from saved settings. Update business details with update_business_info, logo/colors/fonts with set_brand_identity, and writing rules with save_style_guide or update_content_rules. Read this again after a successful update before creating content. Reference material, not tool permissions.get_connected_platformsList all social media platforms the user has connected (Facebook, Instagram, LinkedIn, X). Shows page names and usernames.get_onboarding_statusCheck the user's onboarding progress. Returns which steps are completed, which are required, and whether onboarding is fully complete.get_onboarding_linksGenerate onboarding links for the user's remaining steps (payment, Instagram, Facebook, LinkedIn connections). Returns direct links the user can click to complete each step.update_business_infoUpdate the user's business profile information. All fields are optional — only provided fields will be updated.set_account_typeSet the user's account type. This affects which social platforms are required during onboarding.
Configure in Claude / Cursor
{
"mcpServers": {
"remote-ai-oriiion-oriiion": {
"type": "http",
"url": "https://www.oriiion.ai/mcp"
}
}
}Source
Included in
More in this category
资料来自官方仓库与 MCP 接口探测,以官方最新文档为准;安装第三方 MCP server 前请自行评估安全风险。