Postel
Draft, schedule and publish X (Twitter) and LinkedIn posts in your own voice.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (15)
- LOWen search-viral-tweets
- LOWen list-posts
- LOWen get-post
- LOWen create-post
- LOWen update-post
- LOWen delete-post
- LOWen schedule-post
- LOWen publish-post
- LOWen generate-post
- LOWen refine-post
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"postel": {
"url": "https://www.postel.app/api/mcp"
}
}
}Puntos de conexión remotos
https://www.postel.app/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (15)
🟢search-viral-tweets(query, minImpressions, limit)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Topic or keywords; omit to browse high-performing posts",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"minImpressions": {
"description": "Minimum stored view count (default 10000)",
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"limit": {
"description": "Number of examples (default 10, maximum 20)",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list-posts(status, limit)
List posts for the current organization. Supports filtering by status and pagination.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"description": "Filter posts by status",
"type": "string",
"enum": [
"DRAFT",
"SCHEDULED",
"PUBLISHED"
]
},
"limit": {
"description": "Number of posts to return (max 50, default 20)",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get-post(postId)
Get a single post by ID with full details.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to retrieve"
}
},
"required": [
"postId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡create-post(content, status)
Save text as a new draft in Postel. Does not publish or schedule. Each call creates a separate draft.
Esquema de entrada
{
"type": "object",
"properties": {
"content": {
"type": "string",
"maxLength": 10000,
"description": "The post content (tweet text)"
},
"status": {
"description": "Post status (default: DRAFT)",
"type": "string",
"enum": [
"DRAFT",
"EDITING"
]
}
},
"required": [
"content"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴update-post(postId, content, status)
Update the content or status of a Postel draft. Scheduled and published posts cannot be edited.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to update"
},
"content": {
"description": "New content for the post",
"type": "string",
"maxLength": 10000
},
"status": {
"description": "New status for the post",
"type": "string",
"enum": [
"DRAFT",
"EDITING"
]
}
},
"required": [
"postId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴delete-post(postId)
Delete a post. A scheduled post's delivery is cancelled first.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to delete"
}
},
"required": [
"postId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴schedule-post(postId, scheduledDateTime)
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.
Esquema de entrada
{
"type": "object",
"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)"
}
},
"required": [
"postId",
"scheduledDateTime"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴publish-post(postId)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"postId": {
"type": "string",
"description": "The post ID to publish"
}
},
"required": [
"postId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡generate-post(prompt, isThread, platform, profileId)
Generate a new post using AI based on a prompt. Requires usage quota. Returns the generated post.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"maxLength": 5000,
"description": "What the post should be about"
},
"isThread": {
"description": "Generate a thread instead of a single post (X only; ignored for LinkedIn)",
"type": "boolean"
},
"platform": {
"description": "Target platform: \"x\" (default) or \"linkedin\"",
"type": "string",
"enum": [
"x",
"linkedin"
]
},
"profileId": {
"description": "Voice profile ID to use (omit to use default brand voice)",
"type": "string"
}
},
"required": [
"prompt"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡refine-post(postId, instructions)
Suggest refined content for an existing post using AI and specific instructions. Does not save changes. Requires usage quota.
Esquema de entrada
{
"type": "object",
"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')"
}
},
"required": [
"postId",
"instructions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list-brands
List all brands (topics) for the current organization. Brands contain background information used for AI post generation.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get-brand-sources(brandId)
Get background information sources for a specific brand. These sources are used to inform AI post generation.
Esquema de entrada
{
"type": "object",
"properties": {
"brandId": {
"type": "string",
"description": "The brand (topic) ID to get sources for"
}
},
"required": [
"brandId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get-x-profiles
Get the X and LinkedIn voice profiles for the current organization. These profiles define the brand voice for AI post generation.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get-schedule
Get the posting schedule template for the current organization. Shows which time slots are configured for each day of the week.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get-usage
Get the current usage statistics and plan limits for the organization.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Comunidad
Evidencia