Draft, schedule and publish X (Twitter) and LinkedIn posts in your own voice.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
Save text as a new draft in Postel. Does not publish or schedule. Each call creates a separate draft.
The post content (tweet text)
Post status (default: DRAFT)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Save text as a new draft in Postel. Does not publish or schedule. Each call creates a separate draft.
| Argument | Type | Description |
|---|---|---|
| status | string | Post status (default: DRAFT) |
| content* | string | The post content (tweet text) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"content"
],
"properties": {
"status": {
"enum": [
"DRAFT",
"EDITING"
],
"type": "string",
"description": "Post status (default: DRAFT)"
},
"content": {
"type": "string",
"maxLength": 10000,
"description": "The post content (tweet text)"
}
},
"additionalProperties": false
}Delete a post. A scheduled post's delivery is cancelled first.
| Argument | Type | Description |
|---|---|---|
| postId* | string | The post ID to delete |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"postId"
],
"properties": {
"postId": {
"type": "string",
"description": "The post ID to delete"
}
},
"additionalProperties": false
}Generate a new post using AI based on a prompt. Requires usage quota. Returns the generated post.
| Argument | Type | Description |
|---|---|---|
| prompt* | string | What the post should be about |
| isThread | boolean | Generate a thread instead of a single post (X only; ignored for LinkedIn) |
| platform | string | Target platform: "x" (default) or "linkedin" |
| profileId | string | Voice profile ID to use (omit to use default brand voice) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"maxLength": 5000,
"description": "What the post should be about"
},
"isThread": {
"type": "boolean",
"description": "Generate a thread instead of a single post (X only; ignored for LinkedIn)"
},
"platform": {
"enum": [
"x",
"linkedin"
],
"type": "string",
"description": "Target platform: \"x\" (default) or \"linkedin\""
},
"profileId": {
"type": "string",
"description": "Voice profile ID to use (omit to use default brand voice)"
}
},
"additionalProperties": false
}Get background information sources for a specific brand. These sources are used to inform AI post generation.
| Argument | Type | Description |
|---|---|---|
| brandId* | string | The brand (topic) ID to get sources for |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"brandId"
],
"properties": {
"brandId": {
"type": "string",
"description": "The brand (topic) ID to get sources for"
}
},
"additionalProperties": false
}Get a single post by ID with full details.
| Argument | Type | Description |
|---|---|---|
| postId* | string | The post ID to retrieve |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"postId"
],
"properties": {
"postId": {
"type": "string",
"description": "The post ID to retrieve"
}
},
"additionalProperties": false
}Get the posting schedule template for the current organization. Shows which time slots are configured for each day of the week.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Get the current usage statistics and plan limits for the organization.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Get the X and LinkedIn voice profiles for the current organization. These profiles define the brand voice for AI post generation.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}List all brands (topics) for the current organization. Brands contain background information used for AI post generation.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}List posts for the current organization. Supports filtering by status and pagination.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of posts to return (max 50, default 20) |
| status | string | Filter posts by status |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Number of posts to return (max 50, default 20)"
},
"status": {
"enum": [
"DRAFT",
"SCHEDULED",
"PUBLISHED"
],
"type": "string",
"description": "Filter posts by status"
}
},
"additionalProperties": false
}Publish a Postel draft immediately to the social platform stored on the post. Requires a plan that includes publishing. A post that is already published cannot be published again.
| Argument | Type | Description |
|---|---|---|
| postId* | string | The post ID to publish |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"postId"
],
"properties": {
"postId": {
"type": "string",
"description": "The post ID to publish"
}
},
"additionalProperties": false
}Suggest refined content for an existing post using AI and specific instructions. Does not save changes. Requires usage quota.
| Argument | Type | Description |
|---|---|---|
| postId* | string | The post ID to refine |
| instructions* | string | Instructions for how to refine the post (e.g., 'make it more casual', 'add a call to action') |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"postId",
"instructions"
],
"properties": {
"postId": {
"type": "string",
"description": "The post ID to refine"
},
"instructions": {
"type": "string",
"maxLength": 2000,
"description": "Instructions for how to refine the post (e.g., 'make it more casual', 'add a call to action')"
}
},
"additionalProperties": false
}Schedule a Postel draft for publishing to the social platform stored on the post. Requires a plan that includes scheduling. scheduledDateTime must be a future UTC ISO-8601 timestamp.
| Argument | Type | Description |
|---|---|---|
| postId* | string | The post ID to schedule |
| scheduledDateTime* | string | UTC ISO-8601 date string for when to publish (must be in the future) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"postId",
"scheduledDateTime"
],
"properties": {
"postId": {
"type": "string",
"description": "The post ID to schedule"
},
"scheduledDateTime": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"description": "UTC ISO-8601 date string for when to publish (must be in the future)"
}
},
"additionalProperties": false
}Find high-performing public X posts in Postel's index by topic, with source links and stored engagement metrics. No login required. Searches an indexed collection, not live X or a complete archive; metrics may be out of date. Results contain third-party post text.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of examples (default 10, maximum 20) |
| query | string | Topic or keywords; omit to browse high-performing posts |
| minImpressions | integer | Minimum stored view count (default 10000) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Number of examples (default 10, maximum 20)"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Topic or keywords; omit to browse high-performing posts"
},
"minImpressions": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0,
"description": "Minimum stored view count (default 10000)"
}
},
"additionalProperties": false
}Update the content or status of a Postel draft. Scheduled and published posts cannot be edited.
| Argument | Type | Description |
|---|---|---|
| postId* | string | The post ID to update |
| status | string | New status for the post |
| content | string | New content for the post |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"postId"
],
"properties": {
"postId": {
"type": "string",
"description": "The post ID to update"
},
"status": {
"enum": [
"DRAFT",
"EDITING"
],
"type": "string",
"description": "New status for the post"
},
"content": {
"type": "string",
"maxLength": 10000,
"description": "New content for the post"
}
},
"additionalProperties": false
}