MCP ServerMCP Server Setup

MCP Server Setup

Connect Claude and other AI assistants to your SocialRails workspace with the Model Context Protocol.

The Model Context Protocol (MCP) is an open standard that lets AI assistants call tools in other applications. The SocialRails MCP server exposes your workspace as a set of tools, so an assistant can draft a post, check which accounts are connected, schedule the post, and read back the analytics without you leaving the conversation.

It is a second transport over the same Public API you already have. Same API keys, same scopes, same rate limits, same plan requirements.

Requirements

  • A paid plan. API access is available on Creator, Business and Agency. Free and Trial plans cannot connect.
  • An API key with the scopes your assistant needs. See API Authentication.
  • An MCP client that supports Streamable HTTP with a custom header.

Endpoint

https://socialrails.com/api/v1/mcp

Authenticate exactly as you would with REST, using the Authorization header:

Authorization: Bearer sr_live_your_key_here

The server is stateless. There is no session to establish and no separate handshake beyond the standard MCP initialize call, which your client makes for you.

Connecting

Claude Code

claude mcp add --transport http socialrails \
  https://socialrails.com/api/v1/mcp \
  --header "Authorization: Bearer sr_live_your_key_here"

Then run /mcp inside Claude Code to confirm the server is connected and see the available tools.

Any MCP client that reads a JSON config

Most clients accept a server definition in this shape:

{
  "mcpServers": {
    "socialrails": {
      "type": "http",
      "url": "https://socialrails.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer sr_live_your_key_here"
      }
    }
  }
}

Check your client's documentation for where this file lives and whether it names the transport http or streamable-http.

Clients that require OAuth

The SocialRails MCP server authenticates with static API keys, not OAuth. A client that only supports OAuth-based remote servers cannot connect to it directly today. Use a client that supports custom headers, or run a local bridge.

Verifying the connection

You can talk to the endpoint with curl. This is the same initialize call your client makes on connect:

curl -X POST https://socialrails.com/api/v1/mcp \
  -H "Authorization: Bearer sr_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "curl", "version": "1.0" }
    }
  }'

A working connection returns the protocol version and server info:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2025-06-18",
    "capabilities": { "tools": { "listChanged": false } },
    "serverInfo": { "name": "socialrails", "title": "SocialRails", "version": "1.0.0" }
  }
}

To list the tools:

curl -X POST https://socialrails.com/api/v1/mcp \
  -H "Authorization: Bearer sr_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

What your assistant can do

Eleven tools are available, covering posts, accounts, media, analytics and AI generation. See the MCP Tools Reference for every tool, its arguments and its required scope.

A typical exchange looks like this:

You: Check which accounts I have connected, then schedule a post about our new pricing for Thursday at 9am on LinkedIn.

Assistant: calls list_accounts, sees LinkedIn is connected, then calls create_post with the content, platform: "linkedin" and a scheduled_for timestamp.

Scopes control what the assistant can do

The scopes on your key are enforced on every tool call, so the key is the boundary. A read-only key gives an assistant a genuinely read-only connection, and any attempt to create or delete a post comes back as a permission error rather than silently doing nothing.

ScopeTools it unlocks
readlist_posts, get_post, list_accounts, get_workspace, get_analytics
writecreate_post, create_post_batch, update_post, delete_post, upload_media_from_url
aigenerate_content

If you are connecting an assistant for the first time, a read only key is a sensible way to see what it does before you let it publish anything.

Rate limits

MCP tool calls count against the same hourly request limit as REST calls, and every key on your account shares one limit. See API Rate Limits for the per-plan figures and the response headers.

One thing to watch: an assistant working through a multi-step task can make many more calls than a person clicking through the dashboard would. If you hit 429s, the usual cause is a loop rather than genuine volume.

Troubleshooting

401 Unauthorized. The key is missing, malformed, revoked or expired. Keys start with sr_live_. Confirm the header reads Authorization: Bearer sr_live_... with the Bearer prefix.

"API access is not available on your plan". The workspace is on Free or Trial. API and MCP access begin at Creator.

The client connects but shows no tools. Your client is most likely not sending the Authorization header. Test the endpoint with the curl command above: if curl works and the client does not, the header is not reaching us.

A tool returns FORBIDDEN. The key does not carry the scope that tool needs. Create a new key with the right scopes, in Settings > API.

405 Method Not Allowed. Something sent a GET. The endpoint accepts POST only, because the server does not open a server-initiated event stream.