Connect AI Assistants (MCP)
What You’ll Accomplish
Section titled “What You’ll Accomplish”You’ll connect an AI assistant like Claude or Cursor to your IDEQO account. After that, you can manage your social content by chatting. For example:
“Create a post about our summer sale, write a shorter version for X and a longer one for LinkedIn, upload the product photo, and schedule it to Instagram and LinkedIn for Friday at 2pm.”
Your assistant handles all of that inside IDEQO. Drafts, media, overrides, and schedules appear in your dashboard as if you created them yourself.
What Is MCP?
Section titled “What Is MCP?”MCP (Model Context Protocol) is an open standard that lets AI assistants use external tools. IDEQO runs an MCP server at:
https://mcp.ideqo.comAny MCP-compatible client can connect to it. That includes Claude Desktop, Claude Code, Cursor, and many others.
Before You Start
Section titled “Before You Start”You’ll need:
- An IDEQO account on a paid plan (MCP is not available on the free plan)
- At least one connected platform to schedule posts to
- An MCP-compatible AI client installed (Claude Desktop, Claude Code, or Cursor)
Step 1: Create an API Key
Section titled “Step 1: Create an API Key”Your AI assistant signs in with an API key instead of your password. Each key has its own permissions and can be revoked at any time.
- 1 Open your profile
In IDEQO, click your avatar and go to Profile > Security.
- 2 Find MCP API Keys
Scroll to the MCP API Keys card.
- 3 Click Create API Key
Give the key a name you'll recognize later, like Claude Desktop.
- 4 Choose permissions
Leave all permissions checked for the full experience. You can limit a key to read-only if you prefer.
- 5 Copy your key
The key starts with
iqo_live_. Copy it right away and store it somewhere safe.
Step 2: Connect Your AI Client
Section titled “Step 2: Connect Your AI Client”Use the configuration for your client below. Replace YOUR_API_KEY with the key you copied.
Claude Desktop
Section titled “Claude Desktop”Add this to your claude_desktop_config.json file, then restart Claude Desktop:
{ "mcpServers": { "ideqo": { "type": "http", "url": "https://mcp.ideqo.com", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } }}Where to find the file: In Claude Desktop, go to Settings > Developer > Edit Config.
Claude Code
Section titled “Claude Code”Run this command in your terminal:
claude mcp add --transport http ideqo https://mcp.ideqo.com \ --header "Authorization: Bearer YOUR_API_KEY"Cursor
Section titled “Cursor”Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):
{ "mcpServers": { "ideqo": { "url": "https://mcp.ideqo.com", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } }}Step 3: Try It
Section titled “Step 3: Try It”Ask your assistant something simple first:
“List my connected IDEQO channels.”
You should see your connected platforms with their names. Then try the full flow:
“Create an IDEQO draft that says ‘Big things coming this week 👀 #staytuned’ and schedule it to Instagram for tomorrow at 10am.”
Verify It Worked
Section titled “Verify It Worked”Open your IDEQO Dashboard and check the Scheduling page. The post your assistant created appears there with its scheduled time. You can edit or cancel it from the app like any other post.
What Your Assistant Can Do
Section titled “What Your Assistant Can Do”| Ask for | What happens |
|---|---|
| List channels | Shows your connected platforms and their status |
| List or read posts | Browses your drafts, scheduled, and published posts |
| Create a post | Creates a new draft with your caption and hashtags |
| Edit a post | Updates the caption of a draft or scheduled post |
| Per-platform captions | Writes a different caption for each platform on the same post |
| Add an image from a URL | Downloads an image from a public URL and attaches it to the post |
| Upload a local image or video | Uploads a file from your machine and attaches it to the post |
| Schedule a post | Queues the post to one or more channels at a specific time |
| Reschedule | Schedules the same post and channel again with a new time |
| Cancel a schedule | Cancels pending publishing. The post goes back to draft |
A few platform rules your assistant will enforce:
- Instagram, Pinterest, and TikTok need at least one image attached before scheduling.
- YouTube needs a video. Your assistant can upload one from your machine.
- Images can be JPEG, PNG, WebP, or GIF up to 15 MB, from a public HTTPS URL or uploaded locally.
- Videos can be MP4, MOV, or WebM up to 100 MB, uploaded locally.
- Shopify is not available as a publishing channel through MCP. It only supports blog publishing, not social posts.
- Published posts can’t be edited or deleted through MCP.
Per-Platform Captions
Section titled “Per-Platform Captions”You can give each platform its own caption on the same post. Your default caption covers any platform you don’t specify.
Ask your assistant:
“Create an IDEQO post. Instagram caption: ‘Every review is a post you haven’t written yet. 🔥 #shopify’. LinkedIn caption: ‘Most store owners treat reviews as a credibility section. Here’s why they’re actually your best content brief.’”
The assistant sends this to IDEQO as:
{ "content": "Every review is a post you haven't written yet. 🔥 #shopify", "platform_overrides": { "instagram": { "content": "Every review is a post you haven't written yet. 🔥 #shopify" }, "linkedin": { "content": "Most store owners treat reviews as a credibility section. Here's why they're actually your best content brief." } }}Supported platforms for overrides: instagram, facebook, linkedin, x (or twitter), tiktok, pinterest, youtube. Any platform not listed in overrides uses the default caption.
Uploading a Local File
Section titled “Uploading a Local File”When you ask your assistant to attach a file from your computer, it follows a three-step process:
- 1 Request an upload slot
Your assistant calls
request_upload_urland receives a one-time upload URL and a token. The slot expires in 30 minutes. - 2 Send the file
Your assistant sends the raw file bytes directly to the upload URL. This transfer goes straight to IDEQO's storage and does not pass through the AI model's context window, so large files upload quickly.
- 3 Confirm the upload
Your assistant calls
confirm_media_uploadwith the token to validate the file and attach it to your post.
If an upload fails partway through (network error, token expired), your assistant can simply start again from step 1 and gets a fresh upload slot automatically.
Supported formats:
- Images: JPEG, PNG, WebP, GIF, up to 15 MB each
- Videos: MP4, MOV, WebM, up to 100 MB each
Carousel posts: for a multi-image post, your assistant uploads each image in order. The display order in IDEQO matches the upload order.
Scheduling to Multiple Channels
Section titled “Scheduling to Multiple Channels”You can schedule the same post to all your channels in a single instruction:
“Schedule this post to all my connected channels for next Friday at 2pm.”
Your assistant calls schedule_post once with all channel IDs in the same request, so you don’t pay for separate scheduling calls per platform. Scheduling the same post to a channel it’s already scheduled to simply reschedules it to the new time.
Permissions
Section titled “Permissions”Each key only does what you allow. Pick permissions when you create the key:
Read channels: See connected platforms.
Read posts: Browse posts and drafts.
Create and edit posts: Make new drafts and change captions.
Schedule: Queue and cancel publishing.
Media: Attach images from URLs and upload local images and videos.
If a key is missing a permission, the assistant gets a clear error telling it which one is needed.
Usage Limits
Section titled “Usage Limits”Limits apply per key, per hour:
| Action | Limit |
|---|---|
| Reads (list, get) | 120 per hour |
| Create and edit posts | 30 per hour |
| Schedule and cancel | 20 per hour |
| Add media (confirmed uploads) | 60 per hour |
The media limit counts confirmed uploads and URL adds. Requesting an upload slot has its own separate cap of 60 per hour, so an abandoned upload never uses one of your media slots. A carousel of 10 images uses 10 of the 60 slots.
These limits are generous for personal and agency use. If your assistant hits a limit, it will tell you exactly how long to wait before retrying.
Security
Section titled “Security”- Keys are stored hashed. IDEQO can never show you a key again after creation.
- Revoke any key instantly from Profile > Security > MCP API Keys. Revoking takes effect on the next request.
- Every action is recorded in an audit log with the tool used, the time, and the result.
- Keys belong to your team. They stop working if you leave the team.
If It Fails
Section titled “If It Fails”| Error | What it means | Fix |
|---|---|---|
| ”Missing bearer token” or “Invalid token” | The key is wrong, revoked, or expired | Check the key in your client config. Create a new one if needed |
| ”MCP requires a paid plan” | Your team is on the free plan | Upgrade your plan |
| ”This token is missing required scope” | The key doesn’t have that permission | Create a new key with the permission checked |
| ”These channels require at least one image” | Image-first platform with no media | Ask your assistant to add an image first |
| ”YouTube requires a video” | The post has no video attached | Ask your assistant to upload one from your machine |
| ”Shopify supports blog publishing only” | Shopify can’t receive social posts | Schedule to your social channels instead |
| ”This upload_token has expired” | The 30-minute upload window closed | Ask your assistant to restart the upload. It gets a fresh slot automatically |
| ”This upload_token was already used” | The same token was confirmed twice | Ask your assistant to restart the upload |
| ”Rate limit exceeded” | Too many requests this hour | Wait and retry. The error says exactly how long |
| ”Post not found” | Wrong post ID, or the post belongs to another team | Ask your assistant to list posts and pick again |
| ”This post has been published” | Published posts are read-only | Edits and new media are not allowed after publishing |
Still stuck? See Publishing Errors or contact support from the in-app help widget.