Shager
Remote-MCP-Server für Social-Media-Teams. Ihr Agent entwirft, plant (auf Wunsch eine separate Zeit pro Netzwerk), beantwortet Kommentare und prüft die Zahlen – alles über eine einzige OAuth-Verbindung.
Gehosteter MCP-Server
npx add-mcp 'https://app.shager.ai/api/mcp'Installiert in Claude Code, Codex, Cursor und mehr
Dokumentation
Connect your AI to Shager. Then tell it what to post.
Talk to it in plain words. It posts, answers comments and tells you what worked. You decide whether it posts on its own or waits for your OK.
Free during the launch, up to 31 accounts. No card needed.
How to connect
Pick the AI you use. It takes about a minute, and you only do it once.
The address to paste: https://app.shager.ai/api/mcp
ChatGPT
- In ChatGPT, go to
Plugins→+→Add custom MCP server. - Name it Shager and paste this address in
Connection: - Choose
OAuthand clickCreate as a plugin. Then sign in to Shager and approve.
Works in ChatGPT on the web. Once it’s created, install it and you’re ready.
Claude
- In Claude, go to
Customize→Connectors→Add→Add custom connector. - Name it Shager, paste this address and click
Continue: - Click
Add, sign in to Shager and approve. No key to copy.
Works in Claude on the web and in the desktop app. On Team and Enterprise plans, an owner adds it first in the organization settings.
Any other AI (Gemini, Grok, OpenClaw, Claude Code, Codex, n8n and more)
- In your AI’s settings, find where you add tools, connectors or MCP servers, and paste this address:
- Your AI opens Shager. Sign in and approve. If it shows a short code instead, type it at
app.shager.ai/device. - Nowhere to paste an address? In Shager, open
Connect AI→For developers, clickCreate an API keyand give the key to your AI. That’s how n8n, Zapier and Make connect too.
What you can ask it
Write the way you’d write to a person. For example:
- Post this video tomorrow everywhere: Instagram at 8 a.m., LinkedIn at noon.
- Put the sign-up link in the first comment.
- When someone comments “details”, send them the link in a private message.
- Reply to the comments on yesterday’s post.
- What worked best last week?
- Move Tuesday’s post to Thursday evening.
One video. Seven accounts.
The agent uploads the video with upload_media_from_url and sends one post with a group of accounts. Shager returns a version per account, in a format its network supports: a Reel, a Short, a TikTok video, a LinkedIn video. Each network can have its own hour: here the TikTok version goes out four hours after the rest.
MCP: https://app.shager.ai/api/mcp
// 1 · upload the video once
{
"name": "upload_media_from_url",
"arguments": {
"workspace_id": "cm2studionoa",
"url": "https://studio-noa.com/media/workshop.mp4"
}
}
// → { "id": "cm2wheelvideo", "kind": "VIDEO", (measured by Shager)
// "width": 1080, "height": 1920, "duration_ms": 24000 }
// 2 · one post to every account in the group
{
"name": "create_post",
"arguments": {
"workspace_id": "cm2studionoa",
"group_ids": ["cm2allaccounts"],
"caption": "A new evening workshop: two hours on the wheel",
"media_ids": ["cm2wheelvideo"],
"cta_url": "https://studio-noa.com/workshop",
"youtube_made_for_kids": false,
"per_channel": [{
"channel_id": "cm2tiktok",
"tiktok_privacy": "SELF_ONLY",
"delay_minutes": 240
}],
"schedule_at": "2026-10-20T12:00:00+03:00",
"idempotency_key": "workshop-oct-20"
}
}
{
"status": "SCHEDULED",
"scheduled_at": "2026-10-20T09:00:00.000Z",
"stagger_seconds": { "min": 30, "max": 90 },
"issues": [],
"destinations": [
{ "network": "YOUTUBE", "format": "SHORT", "state": "PENDING" },
{ "network": "X", "format": "FEED", "state": "PENDING" },
{ "network": "LINKEDIN", "format": "VIDEO", "state": "PENDING" },
{ "network": "INSTAGRAM", "format": "REEL", "state": "PENDING" },
{ "network": "FACEBOOK", "format": "REEL", "state": "PENDING" },
{ "network": "FACEBOOK", "format": "REEL", "state": "PENDING" },
{ "network": "TIKTOK", "format": "VIDEO", "state": "PENDING" }
],
"calendar_notes": []
}
validate_postreturns every issue for every account at once, before anything is saved.calendar_notesflag holidays on the chosen day, so the agent can rethink the timing.idempotency_keymakes retries safe: the same request never creates a second post.
You decide what goes out
- It starts with drafts. Once connected, your AI can prepare posts but not publish them. Nothing goes live until you allow it.
- Approve every post, if you like. Turn on approval, and each post waits for a yes from you, or from your client, before it goes out.
- Big sends wait for you. Before sending to more than 10 accounts, or within 60 minutes, your AI first shows you what’s about to go out.
- Disconnect in one click. Everything it does is listed in Shager. You can change what it may do, or disconnect it, at any time.
Three ways to connect. Any agent.
1. Any MCP client that supports OAuth
Add the server address in the client (in Claude and ChatGPT, as a custom connector). It sends you to Shager: sign in, pick the organization and approve. No key to copy, and publishing stays off unless you tick it.
# MCP server URL (sign in with OAuth)
https://app.shager.ai/api/mcp
2. Bots without a browser: a device code
A bot or headless agent registers once, asks for a code and shows it to you. You approve on your phone at app.shager.ai/device, with the same screen and the same permissions.
# RFC 7591 · RFC 8628
curl -X POST https://app.shager.ai/api/oauth/device_authorization \
-d client_id=shgr_client_… \
-d resource=https://app.shager.ai/api/mcp
# → user_code "BCDF-GHJK", verification_uri
# https://app.shager.ai/device · then poll /api/oauth/token
3. Everything else: an API key
Create a key on the Agents page and send it as a Bearer header, over MCP or the REST API. Not signed up yet? The agent signs itself up into a sandbox and you claim it later (auth.md).
claude mcp add --transport http shager \
https://app.shager.ai/api/mcp \
--header "Authorization: Bearer shgr_live_…"
MCP config (Cursor and other clients):
{
"mcpServers": {
"shager": {
"url": "https://app.shager.ai/api/mcp",
"headers": { "Authorization": "Bearer shgr_live_…" }
}
}
}
Everything the agent can do.
whoami: Who am I: the organization, the key’s scopes, caps and sandbox stateget_structure: The whole organization at a glance: clients, their accounts and groupsget_claim_link: Organization claim linklist_workspaces: List businesses or clientscreate_workspace: Add a business or clientlist_channels: Connected accounts and each network’s rulescreate_connect_link: A link the client uses to connect their own accountslist_groups: Account groupslist_notifications: What happened lately: failed posts, accounts to reconnect, approvals and new team memberscreate_group: Create a group (branches, brands, campaign)list_members: The team, each person’s role, and invitations still waiting for an answerinvite_member: Email someone an invitation to join the team as an editor or a viewerupload_media_from_url: Upload an image or video from a URLvalidate_post: Check a post against each network’s rules before schedulingcreate_posts: Up to 25 posts in one call, like a week or a month of contentcreate_post: One post for many accounts, adapted per networkupdate_post: Edit a draftschedule_post: Schedule for a time you pick, or for each account’s best time, with staggered delivery across accountsrequest_approval: An approval link for the clientget_approval: A post’s approval statusget_post: Publishing status on every account, including errorslist_posts: The posts list, filtered by status, network, account, group, words and datescancel_post: Cancel a scheduled postdelete_post: Delete a draftlist_comments: Comments on a post published to YouTube or Instagramreply_to_comment: Reply to a comment as the accounthide_comment: Hide or show a commentdelete_comment: Delete a commentlist_auto_replies: Auto-reply rules, and what each account can answercreate_auto_reply: Auto-replies to comments and DMs, with a link in a private messageupdate_auto_reply: Change or pause an auto-reply ruledelete_auto_reply: Delete an auto-reply ruleset_x_budget: The monthly spending limit for replies and DMs on Xlist_auto_reply_activity: Comments and messages that reached auto-replies, and what was sent backget_best_times: The best hours to post on each account, from its own posts, its audience and the audience’s countryget_insights: What worked: what each account’s best posts had in common, and what to change in the next oneget_client_report: A monthly report for a client: a link that opens without an account, with your logo, the numbers and the best postsset_client_report: Who gets the monthly report by email, in which language, and a new link when neededset_audience: Which market each account or group speaks to: one country, several, or the whole worldget_analytics: Views, likes, comments, clicks and followerscreate_webhook: An address your system gets an event at when a post goes out, fails or is approvedlist_webhooks: Webhook addresses and the last delivery to eachdelete_webhook: Stop sending events to an addresssend_test_webhook: Send a test event nowget_holidays: Holidays and observances by tradition, to choose when to post
Machine-readable files
/llms.txt: A site map for agents: what Shager is and where each page lives./llms-full.txt: All public content in one Markdown file./md/…: A Markdown version of every page. Example: /md/en/pricinghttps://app.shager.ai/api/v1/openapi.json: The full OpenAPI spec of the REST API.https://app.shager.ai/cli.mjs: The command-line tool: every tool from the terminal. Run npx @shagerai/cli login, or download this file and run node shager.mjs login.https://app.shager.ai/.well-known/oauth-authorization-server: OAuth server metadata: dynamic client registration, PKCE, device code.
Questions
Do I need to know how to code?
No. In ChatGPT or Claude you paste one address and approve. It takes a minute.
Can my AI publish without me knowing?
No. At first it only prepares drafts. Letting it publish on its own is a separate switch when you connect, and it starts off. You can also ask for approval on every post.
Does it cost extra?
No. Connecting an AI is included in every plan, and a post your AI makes counts like any other post. Adding Shager to ChatGPT needs one of ChatGPT’s paid plans.
Does my AI see my passwords?
No. Your accounts connect through each network’s own sign-in screen, and your AI never sees a password. It also can’t change your plan, payment or team, or delete posts that are already published.
What if it gets something wrong?
A scheduled post can be canceled until it goes out. Everything your AI did is listed in Shager, and you can disconnect it in one click.
Tracked links show clicks by account and post. Lead and sales attribution requires your analytics or CRM.
Source: https://shager.ai/en/agents