Head terms

Connecting Claude to PostGate's MCP server for social media

How to reach PostGate from Claude Desktop, claude.ai custom connectors, and the Claude API MCP connector — and why draft-first create_post plus tool-approval prompts add up to two independent safety checkpoints.

Quick answer

Claude connects to PostGate's hosted MCP server (https://postgate.studio/mcp) with just a URL and a bearer API key — via a JSON config entry in Claude Desktop and Claude Code, a custom connector on claude.ai, or the Messages API's beta MCP connector. On every surface, create_post creates a draft by default and publishes only when the call includes confirm: true.

Claude is an MCP-native client on every surface that matters — the desktop app, the web product at claude.ai, and the API itself. That means connecting it to PostGate's hosted MCP server doesn't require an intermediate translation layer, a hand-written OpenAPI schema, or a bespoke plugin format. It requires a URL and a bearer key. What makes that worth doing carefully, rather than just doing it, is what happens the first time Claude decides a post is ready to go out.

PostGate handles OAuth, publishing and delivery evidence for every network through one API. Start free or read the docs.

01

What are the three ways to connect Claude to PostGate?

Claude Desktop and Claude Code read the same kind of MCP server configuration — a JSON entry naming the server, its transport, and its headers. Claude.ai (and Claude in Cowork) offers custom connectors through Customize → Connectors → Add custom connector, available on every plan from Free through Enterprise, where you paste the server URL and, optionally, OAuth credentials in Advanced settings. And the Claude API has its own MCP connector — currently in beta — that lets the Messages API call a remote MCP server's tools directly, without your code running an MCP client at all.

All three reach the same server: https://postgate.studio/mcp, authenticated with a PostGate API key. The difference is just where the connection lives and who's driving it — a person in a chat window, or your own backend calling the Messages API.

02

How do you configure Claude Desktop for PostGate?

Claude Desktop reads MCP servers from a configuration file, the same shape PostGate documents for any HTTP-transport MCP client. Point it at the hosted server with a bearer key in the headers, and Claude Desktop treats PostGate's tools exactly like any other connected server — listed under Developer settings, with connection status and logs you can inspect if something's wrong.

MCP client configurationPostGate API
{
  "mcpServers": {
    "postgate": {
      "type": "http",
      "url": "https://postgate.studio/mcp",
      "headers": {
        "Authorization": "Bearer $POSTGATE_API_KEY"
      }
    }
  }
}
03

How do you connect claude.ai to PostGate?

On claude.ai, adding PostGate is a settings action, not a config file edit: Customize → Connectors → Add custom connector, then the server URL. Team and Enterprise workspaces add it once at the organization level under Organization settings → Connectors, and members connect individually from their own account after that.

Once it's connected, Claude asks for your approval the first time it wants to call a tool from that server in a conversation — and Anthropic's own guidance is blunt about that prompt: review it carefully, and only choose "Allow always" for a server and tool you trust to run unsupervised. That's a second, independent checkpoint sitting in front of PostGate's own tool contract — not a replacement for it.

04

Can the Messages API call MCP tools directly?

If you're building your own product on Claude rather than using claude.ai, the MCP connector (beta header mcp-client-2025-11-20) lets a single Messages API call reach PostGate's tools without your backend running an MCP client. Declare the server in mcp_servers, pass the PostGate key as its authorization_token, and enable the tools you want through a matching mcp_toolset entry in tools.

Messages API with the MCP connectorPostGate API
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-11-20" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 1000,
    "messages": [{ "role": "user", "content": "Draft an Instagram post about our launch." }],
    "mcp_servers": [{
      "type": "url",
      "url": "https://postgate.studio/mcp",
      "name": "postgate",
      "authorization_token": "$POSTGATE_API_KEY"
    }],
    "tools": [{ "type": "mcp_toolset", "mcp_server_name": "postgate" }]
  }'
05

Why is draft-first the actual reason to connect this way?

Whichever surface Claude reaches PostGate from, the tool it's calling behaves the same way: create_post creates a draft by default. It publishes, schedules, or queues content only when the call explicitly includes confirm: true — a requirement enforced in the tool contract at the API boundary, not left to whatever a system prompt happens to say that session. That's a materially safer default than a raw API call, where the absence of a field can mean immediate delivery rather than a saved draft.

Stack that against claude.ai's own tool-approval prompt and you get two independent checkpoints instead of one: a human has to approve Claude calling the tool at all, and then the call itself can't reach a live account without confirm: true. Either one alone stops most mistakes. Together, they mean a hallucinated caption or a misread instruction has to clear two separate gates before anything actually goes out.

06

How should you scope the key Claude uses?

PostGate keys carry read, publish, or full scope, and can be bound permanently to one profile group. Give Claude the narrowest scope its job needs — read for an agent that only reports on performance, publish for one that drafts and, eventually with approval, ships content — and bind the key to the one group it's meant to touch. A group-bound key can't read or mutate another customer's data no matter what surface is holding it or what it's been asked to do.

Frequently asked questions

How do I add PostGate as a custom connector on claude.ai?

Go to Customize → Connectors → Add custom connector and paste the server URL — available on every plan from Free through Enterprise. Team and Enterprise workspaces add it once at the organization level under Organization settings → Connectors, and members connect individually after that. The first time Claude wants to call a tool from the server, it asks for your approval; only choose "Allow always" for a server and tool you trust to run unsupervised.

Can the Claude API call MCP tools without my backend running an MCP client?

Yes. The Messages API's MCP connector — currently in beta, enabled with the header mcp-client-2025-11-20 — lets a single API call reach a remote MCP server's tools directly. Declare the server in mcp_servers, pass the PostGate key as its authorization_token, and enable the tools you want through a matching mcp_toolset entry in tools.

Can Claude accidentally publish a post to a real account?

Two independent checkpoints stand in the way. On claude.ai, a human has to approve Claude calling the tool at all. And PostGate's create_post tool creates a draft by default — it publishes, schedules, or queues content only when the call explicitly includes confirm: true, a requirement enforced in the tool contract at the API boundary, not left to a system prompt. A hallucinated caption has to clear both gates before anything goes out.

What scope should the API key I give Claude have?

The narrowest its job needs. PostGate keys carry read, publish, or full scope — read for an agent that only reports on performance, publish for one that drafts and, with approval, ships content. Bind the key to the one profile group it is meant to touch: a group-bound key cannot read or mutate another customer's data no matter what surface holds it or what it is asked to do.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs