Schedule & Chill
Developer docs

REST API and MCP, in one reference.

Bearer token for your own code, OAuth for agents. Same capabilities either way.

MCP server

Connect your AI tool

Step-by-step MCP setup for Claude Code, Claude Desktop, Cursor, VS Code, Gemini CLI, Codex, Windsurf, Zed, Kimi CLI, OpenClaw, Hermes and any other MCP client.

Schedule & Chill is a remote MCP server. Point your AI tool at one URL and it can schedule posts, upload video from your machine, and read your queue.

Most people should use this. Paste this URL into your AI tool:

Code
https://schedulenchill.com/mcp-oauth

There is no key to create and nothing to paste into a config file. Your tool sends you to a Schedule & Chill consent screen that names the tool and lists what it is asking for. Approve it once and the tool holds its own token from then on.

It works anywhere there is an Add connector or Add MCP server button — Claude, ChatGPT, Cursor, VS Code, Zapier. Each tool is approved separately, revoking one leaves the others alone, and your password is never shared.

Or connect with an API key

Some clients want a static header instead, and scripts usually do. That endpoint is:

Code
https://schedulenchill.com/mcp
Code
Authorization: Bearer YOUR_API_KEY

Create a key under Settings → API Keys. Use a token with * abilities (the default) — a restricted token will 401 on media uploads.

Both endpoints expose exactly the same 22 tools, 4 resources and 2 prompts. Nothing is missing from either one; only the sign-in differs.

One click for Cursor and VS Code

Open Connect AI Tool in your account, create a key, and press Add to Cursor or Add to VS Code. Your editor opens a confirmation dialog with the server already filled in — nothing is written until you approve it.

Two connection patterns

Every MCP client falls into one of two camps. Find yours below, or match the pattern.

Pattern A — native remote HTTP. The client accepts a URL, and either runs the OAuth flow for you or lets you set custom headers. Nothing to install.

Pattern B — stdio bridge. The client only speaks stdio to a local process. Use mcp-remote, which bridges stdio to a remote HTTP MCP server. It handles OAuth on its own if you give it the connector URL:

Code
npx -y mcp-remote https://schedulenchill.com/mcp-oauth

or carries a static key if you prefer:

Code
npx -y mcp-remote https://schedulenchill.com/mcp --header "Authorization: Bearer YOUR_API_KEY"

Requires Node.js 18+. Nothing to install ahead of time — npx fetches it.


Claude Code

Pattern A. One command, no key:

Terminal
claude mcp add --transport http schedulenchill https://schedulenchill.com/mcp-oauth

Then run /mcp, pick schedulenchill, and approve it in the browser window that opens. claude mcp list shows Needs authentication until you do.

Prefer a key? Same command with the other endpoint and a header:

Terminal
claude mcp add --transport http schedulenchill https://schedulenchill.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Then in any session: "Schedule a LinkedIn post for Tuesday 9am about our launch."

Check it registered with claude mcp list. Add --scope project to commit the server to a repo's .mcp.json and share it with your team (put the key in an env var first — do not commit it).

Claude Desktop

Claude Desktop's remote connectors expect OAuth, and this server now speaks it. Add it under Settings → Connectors → Add custom connector and paste https://schedulenchill.com/mcp-oauth — no config file, no key.

The bridge below is still there if you would rather authenticate with an API key. Edit claude_desktop_config.json (Settings → Developer → Edit Config):

JSON
{
    "mcpServers": {
        "schedulenchill": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote",
                "https://schedulenchill.com/mcp",
                "--header",
                "Authorization: Bearer YOUR_API_KEY"
            ]
        }
    }
}

Restart Claude Desktop fully (quit, don't just close the window). The tools appear under the connectors icon.

Cursor

One click: press Add to Cursor on the Connect AI Tool page in your account.

Prefer to do it by hand? Create .cursor/mcp.json in your project, or ~/.cursor/mcp.json for every project:

JSON
{
    "mcpServers": {
        "schedulenchill": {
            "url": "https://schedulenchill.com/mcp",
            "headers": { "Authorization": "Bearer YOUR_API_KEY" }
        }
    }
}

Enable it under Settings → MCP.

VS Code (GitHub Copilot agent mode)

One click: press Add to VS Code on the Connect AI Tool page in your account.

By hand — create .mcp.json in your workspace:

JSON
{
    "servers": {
        "schedulenchill": {
            "type": "http",
            "url": "https://schedulenchill.com/mcp",
            "headers": { "Authorization": "Bearer YOUR_API_KEY" }
        }
    }
}

Open Chat, switch to Agent mode, and the tools appear in the tools picker.

Gemini CLI

Pattern A. Edit ~/.gemini/settings.json:

JSON
{
    "mcpServers": {
        "schedulenchill": {
            "httpUrl": "https://schedulenchill.com/mcp",
            "headers": { "Authorization": "Bearer YOUR_API_KEY" }
        }
    }
}

Verify with /mcp inside the CLI.

Codex CLI

Pattern B is the reliable route. Edit ~/.codex/config.toml:

TOML
[mcp_servers.schedulenchill]
command = "npx"
args = [
  "-y",
  "mcp-remote",
  "https://schedulenchill.com/mcp",
  "--header",
  "Authorization: Bearer YOUR_API_KEY",
]

Recent Codex builds can talk to streamable-HTTP servers directly, but that path has moved around between releases. The bridge works on every version.

Windsurf

Pattern A. Edit ~/.codeium/windsurf/mcp_config.json:

JSON
{
    "mcpServers": {
        "schedulenchill": {
            "serverUrl": "https://schedulenchill.com/mcp",
            "headers": { "Authorization": "Bearer YOUR_API_KEY" }
        }
    }
}

Zed

Pattern B, via Zed's context servers. In settings.json:

JSON
{
    "context_servers": {
        "schedulenchill": {
            "command": {
                "path": "npx",
                "args": [
                    "-y",
                    "mcp-remote",
                    "https://schedulenchill.com/mcp",
                    "--header",
                    "Authorization: Bearer YOUR_API_KEY"
                ]
            }
        }
    }
}

Kimi CLI

Pattern A. Edit ~/.kimi/mcp.json — the format is deliberately Claude-Desktop-compatible:

JSON
{
    "mcpServers": {
        "schedulenchill": {
            "url": "https://schedulenchill.com/mcp",
            "headers": { "Authorization": "Bearer YOUR_API_KEY" }
        }
    }
}

Manage servers with kimi mcp (add, list, remove), or point at a specific file with kimi --mcp-config-file /path/to/mcp.json.

OpenClaw

Pattern A. One command:

Terminal
openclaw mcp add schedulenchill \
  --url https://schedulenchill.com/mcp \
  --transport streamable-http \
  --header "Authorization: Bearer YOUR_API_KEY"

Or edit ~/.openclaw/openclaw.json directly — note servers live under mcp.servers, not a top-level mcpServers:

JSON
{
    "mcp": {
        "servers": {
            "schedulenchill": {
                "url": "https://schedulenchill.com/mcp",
                "transport": "streamable-http",
                "headers": { "Authorization": "Bearer YOUR_API_KEY" }
            }
        }
    }
}

Check it with openclaw mcp doctor schedulenchill --probe. OpenClaw expands ${ENV_VAR} in config, so put the key in an env var rather than committing it.

Hermes

Pattern A, YAML. Edit ~/.hermes/config.yaml and add a top-level mcp_servers key:

YAML
mcp_servers:
  schedulenchill:
    url: "https://schedulenchill.com/mcp"
    headers:
      Authorization: "Bearer ${SCHEDULENCHILL_KEY}"

Then hermes mcp test schedulenchill, pick tools with hermes mcp configure schedulenchill, and reload with /reload-mcp (or restart the gateway).

ChatGPT

Supported, over OAuth. Use the connector URL, not the API-key endpoint:

Code
https://schedulenchill.com/mcp-oauth

Settings → Connectors → Add, paste the URL, and approve the consent screen. There is no header or key field to fill in — ChatGPT registers itself and gets its own token.

Adding a custom connector needs a paid ChatGPT plan with developer mode enabled. If you do not have that, any ChatGPT surface that can call an HTTP API can use the REST API with a key instead.

Any other MCP client

This covers n8n, LangChain, CrewAI, LibreChat, custom agents, and anything else that speaks MCP.

Ask one question: can it take a remote MCP URL with custom headers?

  • Yes → Pattern A. URL https://schedulenchill.com/mcp, header Authorization: Bearer YOUR_API_KEY. The exact JSON key differs per client (url, httpUrl, serverUrl), so copy the shape its own docs use.
  • No, stdio only → Pattern B with the npx mcp-remote command above.

From your own code, use any MCP client library with the same URL and header. The server speaks standard streamable HTTP MCP — there is nothing bespoke to implement.

If your client isn't listed and you get it working, tell us and we'll add it.


Verify the connection

Ask your tool: "List my connected social accounts." It should call get_accounts and return your channels.

If nothing happens, work through these in order:

Symptom Cause Fix
Tools don't appear at all Client not restarted Fully quit and reopen — most clients read MCP config only at startup
401 Unauthorized Key wrong, expired, or revoked Generate a fresh key in Settings → API Keys
401 only on media upload Token lacks * abilities Create a new key with default (*) abilities
platform_unavailable Targeting a platform not open on your account Call get_accounts first — post only to what it returns
429 Too Many Requests Rate limit 60 requests/min on MCP. Back off and retry after Retry-After
Bridge errors mentioning npx Node.js missing or too old Install Node.js 18+

First things to try

Start with this one. It reads before it writes, so you can confirm the connection works without publishing anything:

Try this prompt

Using Schedule & Chill, list my connected social accounts. Then write a short LinkedIn post about what I shipped this week and schedule it for 5 minutes from now — show me the draft first so I can approve it.

Five minutes, not next week — the point of the first run is watching it actually publish.

Then, in plain language:

  • "List my connected social accounts."
  • "Draft a LinkedIn post about shipping our free tier and schedule it for 10 minutes from now."
  • "Upload ~/Videos/demo.mp4 and schedule it to LinkedIn tomorrow morning."
  • "What's in my posting queue this week?"
  • "Cancel the post scheduled for Friday."

Uploading a video from your own machine works even for large files — see Uploading video from your computer. Your AI tool streams it in chunks rather than posting one huge request, so there's no size cliff.

What your AI tool can do

Full parameters in Tools.

Tool What it does
get_accounts List connected channels. Always call this first.
get_groups List saved channel groups
schedule_post Schedule or publish immediately
update_post Edit a draft or scheduled post
get_post Read one post and its per-channel status
list_scheduled See the queue
cancel_post Remove a scheduled post
upload_media Upload from a URL, or stream a local file of any size
browse_media Search the media library
get_stats Posting stats
Not a developer question?Browse the help centre →

Still stuck? Ask a person.

One inbox, answered by the people who built it. Usually same day, and never a ticket number.