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

# MCP Tool Catalog

> All 13 tools on the Postsiva Unified MCP server, grouped by domain.

The Unified MCP exposes **13 tools**. Each maps to the same backend as REST/GPT Actions (except `web_search_duckduckgo`, MCP-only).

## Accounts

| Tool                         | Purpose                                                                             |
| ---------------------------- | ----------------------------------------------------------------------------------- |
| `get_accounts`               | List connected platforms, or profile for one platform (`platform`, `force_refresh`) |
| `manage_platform_connection` | `connect` → OAuth URL; `disconnect` → unlink platform                               |

**Platforms for connect:** linkedin, instagram, facebook, tiktok, youtube, pinterest, threads, bluesky, snapchat

## Posts

| Tool               | Purpose                                                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| `publish`          | Publish, draft, or schedule text/image/video (`post_type`, `platforms`, `draft`, `scheduled_time`, `platform_overrides_json`) |
| `get_user_posts`   | Recent posts per platform (`limit`, `refresh_posts`, `refresh_stats`, `platforms`, page/org ids)                              |
| `get_queued_posts` | Scheduled posts and/or drafts (`type`: scheduled \| draft \| all)                                                             |

### `publish` highlights

* `scope`: `feed` (personal) or `pages` (Facebook Pages / LinkedIn orgs)
* Media: `default_image_id`, `default_image_url`, `video_id`, `video_url`
* Text limits enforced per platform (LinkedIn 3000, Bluesky 300, etc.)

### LinkedIn personal refresh

When `platforms=["linkedin"]` with no org ids, `refresh_posts=true` is expensive (Apify) and **limit caps at 2**. Use cached posts unless the user explicitly asks to sync live.

## Inbox

| Tool               | Purpose                                                                   |
| ------------------ | ------------------------------------------------------------------------- |
| `get_comments`     | Comments across recent posts or one post (`post_id` + `platform`)         |
| `reply_to_comment` | Reply on linkedin, facebook, instagram, youtube, threads, bluesky, tiktok |

## Analytics

| Tool                    | Purpose                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------- |
| `get_unified_analytics` | Workspace totals + per-platform likes, comments, reach, engagement (stored data, no live API fan-out) |

## AI content

| Tool               | Purpose                                                            |
| ------------------ | ------------------------------------------------------------------ |
| `idea_to_content`  | Topic → per-platform post copy                                     |
| `media_to_content` | Image/video URL → caption                                          |
| `analyze_media`    | Describe/analyze image or video URL                                |
| `content_to_image` | Post text → generated images (`image_url`, `media_id` in response) |

None of the AI tools publish automatically — chain with `publish` if needed.

## Utility

| Tool                    | Purpose                                        |
| ----------------------- | ---------------------------------------------- |
| `web_search_duckduckgo` | Live web search (MCP only; not in GPT Actions) |

## REST equivalents

| MCP tool                     | REST                                                      |
| ---------------------------- | --------------------------------------------------------- |
| `publish`                    | `POST /unified/post/text` \| `image` \| `video`           |
| `get_user_posts`             | `GET /unified/posts`                                      |
| `get_queued_posts`           | `GET /unified/scheduled-posts` + drafts                   |
| `get_unified_analytics`      | `GET /unified/analytics`                                  |
| `get_comments`               | `GET /unified/comments`                                   |
| `reply_to_comment`           | `POST /unified/comments/reply`                            |
| `idea_to_content`            | `POST /unified/content/generate`                          |
| `content_to_image`           | `POST /unified/image/generate`                            |
| `get_accounts`               | `GET /unified/user-profiles/`, `GET /unified/oauth/token` |
| `manage_platform_connection` | `POST /unified/oauth/url`, `DELETE /unified/oauth/token`  |

## GPT Actions

ChatGPT Custom GPT uses `POST /unified/gpt-actions/{tool_name}` with the same JSON bodies. Excludes `web_search_duckduckgo`.

OpenAPI: `GET https://backend.postsiva.com/openapi/chatgpt-actions.json`

## Not exposed on MCP

* `clear_workspace_chat_history` — WhatsApp/website only
* Billing, workspace admin, team invites — JWT routes only

## Authoritative list

Query `tools/list` on your MCP connection after auth for the live set.
