> ## Documentation Index
> Fetch the complete documentation index at: https://api.onlysocial.io/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server

> Let Claude, ChatGPT, Cursor and other AI assistants work in your OnlySocial workspace.

OnlySocial has a built-in **MCP (Model Context Protocol) server**. Connect an AI assistant to it and ask, in plain language, for the work you would otherwise do in the dashboard:

* "What's scheduled for next week?"
* "Draft a LinkedIn and X post announcing our webinar and schedule it for Tuesday at 10am."
* "Upload this image from a URL and add it to the queue for Instagram."
* "Find my failed posts and tell me what went wrong."
* "Which conversations in the inbox are still unread?"
* "Tag everyone who asked about pricing this week as `pricing-lead`."
* "Book Sam in for a demo on Thursday afternoon."

MCP is an open standard that Claude, ChatGPT, Cursor, VS Code, Claude Code and many other apps support. There is no integration code to write.

## The server URL

```
https://app.onlysocial.io/mcp
```

It uses streamable HTTP. [Connect your app](https://api.onlysocial.io/mcp/connect.md) by signing in with your OnlySocial login (OAuth), or by sending a personal access token.

> [!NOTE]
>
> The older address `https://app.onlysocial.io/os/mcp` still works with a personal access token. Use `/mcp` for anything new: it is the only address that supports signing in.

## What it can do

The assistant gets two sets of tools. See the [tools reference](https://api.onlysocial.io/mcp/tools.md) for the full list.

> [card] Publishing
>
> Workspaces, connected social accounts, posts, scheduling and the queue, tags and the media library.

> [card] Sales inbox
>
> Contacts, conversations, messages, automations, appointments and broadcasts, where your plan includes the sales inbox.

## Sign-in or token

| | Sign in (OAuth) | Personal access token |
| - | - | - |
| Set up | Paste the server URL, sign in, pick a workspace | Create a token, paste it into your app's config |
| Workspaces | The **one** workspace you pick when you connect | Every workspace you belong to |
| Best for | Claude, ChatGPT and other apps with connector screens | Claude Code, scripts, apps without OAuth |
| Lasts | Refreshes itself. Unused for 90 days, sign in again | Until you revoke it |

Either way, the assistant acts **as you**: it can never do more than your own role allows in that workspace.

## How it works

Almost every tool works on one workspace. The assistant is told this when it connects, so you can just ask; behind the scenes it:

1. calls `list-workspaces` to get the workspace `uuid` (with a sign-in connection, that is the one workspace you picked),
2. passes that `uuid` as `workspace` to every other tool,
3. for posting, calls `list-accounts` for the account IDs, then `create-post`.

## Roles and permissions

What the assistant may do follows your role in the workspace:

| Your role | Read | Create, edit, schedule, delete |
| - | :-: | :-: |
| Viewer | ✅ | ❌ |
| Member | ✅ | ✅ |
| Admin | ✅ | ✅ |

Sales inbox tools also follow your team role: a tool for an area you cannot open in the dashboard is not offered at all. If a workspace requires post approval, posts the assistant schedules or queues wait for approval like anyone else's.

A workspace you cannot access is reported as "not found", the same as one that does not exist.

## Safety rails

* **Messages to customers need a yes.** Tools that reach real people, such as `send-message`, `send-template-message` and `submit-broadcast`, refuse to run until the assistant passes `confirm: true`, which it should only do after checking with you.
* **Broadcasts are never sent by the assistant.** `submit-broadcast` creates the broadcast awaiting approval; a person approves it in the dashboard.
* **Automations are saved as drafts.** Nothing an assistant builds answers customers until someone presses Publish in the app.
* **A sending cap.** An assistant can send at most 60 messages an hour and reach 200 people a day per workspace. A send past the cap is refused with the reason.
* **Customer text is data.** Messages and notes written by your customers reach the assistant wrapped in `<untrusted_customer_content>` tags, with the instruction never to follow them.

## Timezones

Dates are stored in UTC. Most publishing tools take an optional `timezone` (an IANA name such as `Europe/London`) for reading your input and formatting the answer. Without one they use your account's timezone, then UTC, and every answer says which timezone it used.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.