Postel

Draft, schedule and publish X (Twitter) and LinkedIn posts in your own voice.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
80%
Qualität der Benennung
67%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (15)

  • LOWTool 'search-viral-tweets' doesn't follow camelCase/snake_casein search-viral-tweets
  • LOWTool 'list-posts' doesn't follow camelCase/snake_casein list-posts
  • LOWTool 'get-post' doesn't follow camelCase/snake_casein get-post
  • LOWTool 'create-post' doesn't follow camelCase/snake_casein create-post
  • LOWTool 'update-post' doesn't follow camelCase/snake_casein update-post
  • LOWTool 'delete-post' doesn't follow camelCase/snake_casein delete-post
  • LOWTool 'schedule-post' doesn't follow camelCase/snake_casein schedule-post
  • LOWTool 'publish-post' doesn't follow camelCase/snake_casein publish-post
  • LOWTool 'generate-post' doesn't follow camelCase/snake_casein generate-post
  • LOWTool 'refine-post' doesn't follow camelCase/snake_casein refine-post

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,029Tokens (Tool-Definitionen)
~895 BTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.59% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "postel": {
      "url": "https://www.postel.app/api/mcp"
    }
  }
}

Remote-Endpunkte

https://www.postel.app/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (15)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet15 Tools