# Your agent already writes. Now it ships.

Shager is distribution infrastructure that agents work with directly: an MCP server, a documented API, and a sign-up an agent can do on its own. The agent creates, schedules and measures, and a person approves before anything goes live.

## Three steps, no SDK.

### 1. The agent opens a sandbox

One call returns an API key and a claim link. In the sandbox the agent can create clients, upload media, build drafts and previews, but not publish.

```
curl -X POST https://app.shager.ai/api/v1/agent/signup \
  -H 'content-type: application/json' \
  -d '{"agent_name":"Acme marketing agent",
       "contact_email":"owner@acme.com",
       "purpose":"Distribute weekly videos to 40 branch pages"}'
```

```json
{ "data": {
  "api_key": "shgr_live_…",
  "claim_url": "https://app.shager.ai/claim/…",
  "sandbox": true,
  "mcp_url": "https://app.shager.ai/api/mcp",
  "expires_at": "…"
} }
```

### 2. Connect the MCP server

Paste the config into Claude Desktop, Claude Code, Cursor or any MCP client. Or work directly against the REST API.

```
{
  "mcpServers": {
    "shager": {
      "url": "https://app.shager.ai/api/mcp",
      "headers": { "Authorization": "Bearer shgr_live_…" }
    }
  }
}
```

### 3. A person claims it, the agent ships

The owner opens the claim link, signs in and connects the accounts (or sends the client a connect link). From then on, the agent schedules and publishes for real.

## What the agent can do

- `whoami`: undefined
- `list_workspaces`: List clients (workspaces)
- `create_workspace`: Open a new client
- `list_channels`: Connected accounts, by client or group
- `create_connect_link`: A link the client uses to connect their own accounts
- `list_groups`: Account groups
- `create_group`: Create a group (branches, brands, campaign)
- `upload_media_from_url`: Upload an image or video from a URL
- `create_post`: One post for tens or hundreds of accounts, adapted per network
- `schedule_post`: Schedule with staggered delivery across accounts
- `request_approval`: An approval link for the client
- `get_post`: Publishing status on every account, including errors
- `list_posts`: The content calendar
- `get_analytics`: Clicks and leads per account and per post
- `cancel_post`: Cancel a schedule
- `get_holidays`: undefined

## The agent executes. A person decides.

- **Nothing goes live without a person:** A sandbox an agent opened stays in draft until a person claims it with the link.
- **Scoped keys:** Every key belongs to one organization and can be revoked at any time.
- **Rate and volume limits:** Per-account and daily publishing caps, and staggered delivery that respects network limits.
- **Audit log:** Every agent action is recorded: who, what, when and with which key.

- Live networks: Facebook (Pages), Instagram (professional accounts), YouTube. TikTok and LinkedIn are in development.
- Publishing only through official APIs, and only to accounts the user manages and is authorized to post to.
- Numbers on this site are illustrations unless stated otherwise.

## Machine-readable end to end

- `/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.
- `/sitemap.xml`: Every page in both languages, with hreflang links.

## What we're building next

- **OAuth sign-in for MCP:** Sign in with your Shager account straight from the MCP client, with no key to copy.
- **CLI:** A command line with device login, for scripts and CI pipelines.
- **A billing link for your human:** The agent sends a person a checkout link, then works within a budget the person sets.

---
Source: https://shager.ai/en/agents
