Mellow Hub
Post and schedule to Instagram, TikTok, YouTube, LinkedIn, X, Threads, Bluesky, Pinterest and Facebook from Claude, ChatGPT or Cursor.
What it can do
- Studio List: Read saved carousels, video covers, generation progress and the shared AI credit balance. Results belong only to this credential's profile.
- Studio Quote: Get the exact credit charge before generating. No credits are spent. AI-designed carousel: 2 + 10 per slide, requires count. Text/own-photo carousel outline: 2; cover/illustration: 10. M
- Studio Generate: Starts durable AI generation. Requires ai:generate AND posts:write. Quote first; pass maxCredits and a stable idempotencyKey. Ask before spending unless already delegated. kind=carous
What data it sees
Do you need an account
No: the server works without sign-in
Post and schedule to Instagram, TikTok, YouTube, LinkedIn, X, Threads, Bluesky, Pinterest and Facebook from Claude, ChatGPT or Cursor. OAuth 2.1: the consent screen limits the channels, the mode (review or autopilot), a daily ceiling and an expiry. Each network's rules are checked before sending; every action is journaled.
How to connect
How to connect Mellow Hub to Claude
The server address to paste into Claude settings:
https://mellow-hub--melodywco.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Mellow Hub to ChatGPT
The server address to paste into ChatGPT settings:
https://mellow-hub--melodywco.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Mellow Hub to Cursor
The server address to paste into Cursor settings:
https://mellow-hub--melodywco.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (21)
Raw names from tools/list. Only developers need these.
| studio_list | Read saved carousels, video covers, generation progress and the shared AI credit balance. Results belong only to this credential's profile. |
| studio_quote | Get the exact credit charge before generating. No credits are spent. AI-designed carousel: 2 + 10 per slide, requires count. Text/own-photo carousel outline: 2; cover/illustration: 10. Manual edits and export are free. |
| studio_generate | Starts durable AI generation. Requires ai:generate AND posts:write. Quote first; pass maxCredits and a stable idempotencyKey. Ask before spending unless already delegated. kind=carousel creates 2–10 AI-designed slides, words set in one design system (optional design: a style id, or auto; a style reference image is followed), for 2+10*count credits. kind=outline uses text and optional own photos for 2 credits. cover/illustration creates one image for 10; illustration on a designed carousel redesigns that slide in its saved style. References must belong to this profile. For illustration supply projectId and slideId. Failures refund once and retain completed material; the same key never charges twice. Poll studio_job. A ready result with applied=false is saved separately because newer user edits were retained. Export and publishing are separate actions. |
| studio_job | Read a saved generation. queued/planning/generating/saving are in progress; ready returns the saved result, failed means credits were returned. This does not start another generation. |
| studio_project | Read a carousel or cover's document and revision. Text, slide order, style, format and this profile's image references are editable with studio_save. |
| studio_save | Save an edited Studio document at its current revision. Refuses stale revisions and image IDs belonging to another profile. Manual editing is free. No publishing or AI generation occurs. |
| studio_export | Render the saved revision to ordered JPEG slides (free). Returns stable image URLs, caption and a thumbnailUrl for covers. Use carousel media in validate_post/create_post; attach a cover as thumbnailUrl on the VIDEO media item, not as a replacement for the video. Does not publish. Unsupported channel thumbnail formats are still governed by list_platforms. |
| whoami | The current profile's ID and name, and what this credential is allowed to do: its mode (autopilot publishes; review only prepares), its scopes, the channels it can reach, how many posts it has left today, and whether the account's subscription allows publishing at all. Call this before anything else — it answers the questions you would otherwise discover by being refused. |
| list_platforms | Every network Mellow publishes to and the rules it enforces: caption limits, media counts and kinds, required fields, available placements. Read this instead of guessing a limit. |
| list_channels | The owner's connected accounts, with the channel IDs you name in a post. Pass refresh: true after a person has just connected something, to re-read from the provider rather than the local copy. |
| connect_channel | Returns a link a PERSON must open to connect a network. You cannot complete this yourself: every network asks a human to sign in, and Bluesky asks for a handle and an app password. Give the link and the instruction to the person, then call list_channels with refresh once they say they are done. Each profile supports one Instagram. For another Instagram, the owner must create a new profile in Hub and authorize a separate credential there. |
| register_media | Checks that a public https URL can be fetched and reports what it is. Nothing is copied — the network fetches the URL when it publishes. If you hold bytes rather than a URL, call request_upload_url instead. |
| request_upload_url | A signed URL to PUT file bytes to, plus the media URL to use in a post afterwards. Use this for anything you hold as bytes, and for any video: the file goes straight to storage and never through Mellow. |
| validate_post | Checks a post against every channel it names and publishes NOTHING. Returns every problem at once, each naming the channel and the field. Call this before create_post every time — it costs nothing and it is the difference between fixing a post once and learning the rules by publishing badly. |
| preview_post | Renders what the post will look like on each network, without publishing. Use it when the question is how something will read rather than whether it is allowed; validate_post answers the second. |
| create_post | Publishes to every named channel, or schedules it with scheduledAt. THIS IS PUBLIC AND CANNOT BE UNDONE once a network has published. idempotencyKey is required: derive it from the content or the task, not at random, so a timeout you retry returns the original post instead of publishing a second one. Under a review-mode credential this prepares the post and stops for a person to approve. |
| get_post | The post and its per-channel outcome, with the public link where a network published. Read targets, not just status: partial means some channels succeeded and republishing everything would duplicate them. |
| list_posts | Recent posts, newest first, optionally filtered by status. Use it to find a post after a timeout. |
| reschedule_post | Moves an existing scheduled post to a future ISO 8601 time. Keeps its caption, media and destinations. Drafts and published posts cannot be rescheduled. Requires access to every destination and the owner's subscription allowance. |
| get_metrics | Reads recent published posts and network-reported metrics for the channels this credential can reach. Optional channelId narrows the result. Missing readings remain missing; reporting distinguishes ok, empty, unsupported and failed. Requires metrics:read. |
| cancel_post | Withdraws a post that has not gone out yet. A post a network has already published cannot be cancelled through any API — that has to be done in the network itself, by a person. |