Schedule and publish social posts to 7 networks from AI agents. Postlia API key (Pro) required.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <your Postlia API key, starts with plk_>
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a scheduled post by id.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Cancel a scheduled post by id.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Save a draft for later without spending posting quota.
| Argument | Type | Description |
|---|---|---|
| content* | string | |
| platforms* | array | e.g. linkedin, bluesky |
{
"type": "object",
"required": [
"content",
"platforms"
],
"properties": {
"content": {
"type": "string"
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. linkedin, bluesky"
}
}
}Create a post. Provide scheduledAt (ISO datetime) to schedule, queue=true for the next open queue slot, or neither to post within ~5 minutes. Media platforms (instagram, tiktok, pinterest, youtube) need mediaUrl/mediaUrls from upload_media; tiktok/pinterest/youtube also need their options object.
| Argument | Type | Description |
|---|---|---|
| queue | boolean | |
| content* | string | |
| mediaUrl | string | Postlia storage URL from upload_media |
| mediaAlts | array | Alt text per carousel image |
| mediaType | string | Required with mediaUrl |
| mediaUrls | array | Carousel images (1-4), Postlia storage URLs |
| platforms* | array | e.g. linkedin, bluesky, instagram |
| scheduledAt | string | |
| tiktokOptions | object | Required for tiktok: privacy/interaction settings |
| youtubeOptions |
Delete a draft by id.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Post-outcome summary over the last N days: totals, published/partial/failed counts, per-platform volume, and recent platform errors.
| Argument | Type | Description |
|---|---|---|
| days | number | Window in days (1-90, default 30) |
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Window in days (1-90, default 30)"
}
}
}Delivery receipt for a post: per-platform outcome (published/failed/retrying/pending), platform post ids, and the platform's real error text. Use this to VERIFY a post actually went live instead of assuming. Accepts the id from create_post or from list_published_posts.
| Argument | Type | Description |
|---|---|---|
| id* | string | Post id (scheduled or published) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Post id (scheduled or published)"
}
}
}The posting quota that will actually be enforced: tier, posts used, limit and remaining. Check this before composing a batch instead of discovering the limit via errors.
No arguments.
{
"type": "object",
"properties": {}
}The posting schedule (timezone + weekly slots) and the next open queue slots, i.e. when a create_post with queue=true would actually publish.
No arguments.
{
"type": "object",
"properties": {}
}List the connected social accounts on this Postlia workspace.
No arguments.
{
"type": "object",
"properties": {}
}List saved drafts (not scheduled, cost no quota).
No arguments.
{
"type": "object",
"properties": {}
}Recent post history with per-post outcome status and any platform errors.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max posts to return (1-50, default 20) |
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max posts to return (1-50, default 20)"
}
}
}List upcoming scheduled posts.
No arguments.
{
"type": "object",
"properties": {}
}Move a pending scheduled post to a new future time (ISO datetime).
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| scheduledAt* | string |
{
"type": "object",
"required": [
"id",
"scheduledAt"
],
"properties": {
"id": {
"type": "string"
},
"scheduledAt": {
"type": "string"
}
}
}Rewrite a pending scheduled post's text. Platform character limits are enforced.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| content* | string |
{
"type": "object",
"required": [
"id",
"content"
],
"properties": {
"id": {
"type": "string"
},
"content": {
"type": "string"
}
}
}Pull an image or video from a public https URL into Postlia storage. Returns the storage URL and media type, ready for create_post. PNG, JPEG, WebP, GIF, MP4, WebM, MOV, max 25 MB.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public https URL of the file |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public https URL of the file"
}
}
}| object |
| Required for youtube: title etc. |
| platformContent | object | Optional per-platform caption overrides, e.g. {"linkedin": "longer text"} |
| pinterestOptions | object | Required for pinterest: board id etc. |
{
"type": "object",
"required": [
"content",
"platforms"
],
"properties": {
"queue": {
"type": "boolean"
},
"content": {
"type": "string"
},
"mediaUrl": {
"type": "string",
"description": "Postlia storage URL from upload_media"
},
"mediaAlts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Alt text per carousel image"
},
"mediaType": {
"enum": [
"image",
"video"
],
"type": "string",
"description": "Required with mediaUrl"
},
"mediaUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Carousel images (1-4), Postlia storage URLs"
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"description": "e.g. linkedin, bluesky, instagram"
},
"scheduledAt": {
"type": "string"
},
"tiktokOptions": {
"type": "object",
"description": "Required for tiktok: privacy/interaction settings"
},
"youtubeOptions": {
"type": "object",
"description": "Required for youtube: title etc."
},
"platformContent": {
"type": "object",
"description": "Optional per-platform caption overrides, e.g. {\"linkedin\": \"longer text\"}"
},
"pinterestOptions": {
"type": "object",
"description": "Required for pinterest: board id etc."
}
}
}