Postel

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

사용해야 할까요

품질 및 안전성

A
설명 품질
96%
스키마 완전성
80%
이름 품질
67%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (15)

  • LOWTool 'search-viral-tweets' doesn't follow camelCase/snake_casesearch-viral-tweets에서
  • LOWTool 'list-posts' doesn't follow camelCase/snake_caselist-posts에서
  • LOWTool 'get-post' doesn't follow camelCase/snake_caseget-post에서
  • LOWTool 'create-post' doesn't follow camelCase/snake_casecreate-post에서
  • LOWTool 'update-post' doesn't follow camelCase/snake_caseupdate-post에서
  • LOWTool 'delete-post' doesn't follow camelCase/snake_casedelete-post에서
  • LOWTool 'schedule-post' doesn't follow camelCase/snake_caseschedule-post에서
  • LOWTool 'publish-post' doesn't follow camelCase/snake_casepublish-post에서
  • LOWTool 'generate-post' doesn't follow camelCase/snake_casegenerate-post에서
  • LOWTool 'refine-post' doesn't follow camelCase/snake_caserefine-post에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,029토큰 (도구 정의)
~895 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.59%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

원격 엔드포인트

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

할 수 있는 일

도구 목록

도구 (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.

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

입력 스키마

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

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 15개