Shager

소셜 미디어 팀을 위한 원격 MCP 서버입니다. 에이전트가 하나의 OAuth 연결을 통해 초안 작성, 예약(원하는 경우 네트워크별로 별도 시간 설정), 댓글 응답, 수치 확인을 모두 수행합니다.

호스팅형 MCP 서버

npx add-mcp 'https://app.shager.ai/api/mcp'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

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

  1. In ChatGPT, go to Plugins → + → Add custom MCP server.
  2. Name it Shager and paste this address in Connection:
  3. Choose OAuth and click Create 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

  1. In Claude, go to Customize → Connectors → Add → Add custom connector.
  2. Name it Shager, paste this address and click Continue:
  3. 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)

  1. In your AI’s settings, find where you add tools, connectors or MCP servers, and paste this address:
  2. Your AI opens Shager. Sign in and approve. If it shows a short code instead, type it at app.shager.ai/device.
  3. Nowhere to paste an address? In Shager, open Connect AI → For developers, click Create an API key and 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_post returns every issue for every account at once, before anything is saved.
  • calendar_notes flag holidays on the chosen day, so the agent can rethink the timing.
  • idempotency_key makes 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 state
  • get_structure: The whole organization at a glance: clients, their accounts and groups
  • get_claim_link: Organization claim link
  • list_workspaces: List businesses or clients
  • create_workspace: Add a business or client
  • list_channels: Connected accounts and each network’s rules
  • create_connect_link: A link the client uses to connect their own accounts
  • list_groups: Account groups
  • list_notifications: What happened lately: failed posts, accounts to reconnect, approvals and new team members
  • create_group: Create a group (branches, brands, campaign)
  • list_members: The team, each person’s role, and invitations still waiting for an answer
  • invite_member: Email someone an invitation to join the team as an editor or a viewer
  • upload_media_from_url: Upload an image or video from a URL
  • validate_post: Check a post against each network’s rules before scheduling
  • create_post: One post for many accounts, adapted per network
  • update_post: Edit a draft
  • schedule_post: Schedule, with a different time per network if you like, and staggered delivery across accounts
  • request_approval: An approval link for the client
  • get_approval: A post’s approval status
  • get_post: Publishing status on every account, including errors
  • list_posts: The posts list, filtered by status, network, account, group, words and dates
  • cancel_post: Cancel a scheduled post
  • delete_post: Delete a draft
  • list_comments: Comments on a post published to YouTube or Instagram
  • reply_to_comment: Reply to a comment as the account
  • hide_comment: Hide or show a comment
  • delete_comment: Delete a comment
  • list_auto_replies: Auto-reply rules, and what each account can answer
  • create_auto_reply: Auto-replies to comments and DMs, with a link in a private message
  • update_auto_reply: Change or pause an auto-reply rule
  • delete_auto_reply: Delete an auto-reply rule
  • set_x_budget: The monthly spending limit for replies and DMs on X
  • list_auto_reply_activity: Comments and messages that reached auto-replies, and what was sent back
  • get_analytics: Views, likes, comments, clicks and followers
  • create_webhook: An address your system gets an event at when a post goes out, fails or is approved
  • list_webhooks: Webhook addresses and the last delivery to each
  • delete_webhook: Stop sending events to an address
  • send_test_webhook: Send a test event now
  • get_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/pricing
  • https://app.shager.ai/api/v1/openapi.json: The full OpenAPI spec of the REST API.
  • 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