Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.bitsandtea/postking-mcp

NPM · POSTKING-MCP · 2 COMPONENTS · SCANNED AUG 3

PostKing MCP server for managing brands, generating posts, scheduling content, and publishing blogs.

+21 this week 54 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security37
  • Malware scan not yet available for this package.Unverified
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 32233 tokens (~146/item across 220 items; 220 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 96% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · postking-mcp

# add to Claude Code
claude mcp add bitsandtea-postking-mcp -- npx -y postking-mcp
# add to Codex CLI
codex mcp add bitsandtea-postking-mcp -- npx -y postking-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "bitsandtea-postking-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "postking-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add bitsandtea-postking-mcp --command npx --arg -y --arg postking-mcp
# ~/.hermes/config.yaml
mcp_servers:
  bitsandtea-postking-mcp:
    command: "npx"
    args: ["-y", "postking-mcp"]
// mcp.json
{
  "mcpServers": {
    "bitsandtea-postking-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "postking-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 −3

    No change was recorded against any check on this day. Supply Chain Security went from 47 to 37. Other categories moved too: Stability & Change Management rose 4.

  • 2 Aug 26 +32
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Schema quality: unverified → good functional
    • Stability: unverified → 0.23 functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • MCP protocol: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Licence: MIT functional
  • 31 Jul 26 −8
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 33

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 96 packages

96 packages in the resolved dependency tree · 96 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 220 exposed · ~31,224 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
seo_generate_side_page ~426

Generates a side page for a brand's landing page, optionally linked to an SEO cluster (`clusterId`). When linked, the side page surfaces in cluster-context queries and inherits the cluster's keyword targeting — strengthening topical authority that feeds GEO citation patterns. Two body modes: • freeform: pass `key` + `prompt` (+ optional `keywords`, `selectedSections`, `voiceProfileId`, `sidePageType`). • brief: pass `key` + `brief` (structured outline) + optional `briefId` and `roadmapItemId`. Typically takes ~2–5 min. Async — returns `{ success, operationId, operationRowId, pollUrl, sidePageId }`. Poll `get_job` with the operationId until `state` is `completed` (or `failed`/`partially_failed`/`cancelled` on error); comparison-type briefs run synchronously and return `sidePageId` directly. `slug` is the PARENT landing page slug under which the side page is created.

NameTypeReqDescription
autoAssignAssetsbooleanAuto-assign brand assets to image slots after generation
briefBrief-mode structured outline. When set, this is the canonical payload.
briefIdstringPersisted SeoBrief ID — required for comparison-type generation
clusterIdstringSEO KeywordCluster ID to link this side page to (maps to SidePage.sourceClusterId)
keystringyesSide-page key (URL slug fragment under the parent LP)
keywordsarrayFreeform-mode: target keywords to weave into the page
promptstringFreeform-mode generation prompt (omit when passing `brief`)
roadmapItemIdstringRoadmap item ID this side page is fulfilling
sidePageTypestringDefaults to 'landing'. Use 'comparison' only with a persisted comparison briefId.
slugstringyesParent landing page slug
voiceProfileIdstringVoice profile to write in

No output schema declared.

No examples provided.

seo_get_brief ~216

Fetch a single SeoBrief by id, including its briefData outline, status, roadmap item, and cluster. Returns full detail by default (complete brief incl briefData). Use detail="medium" for {id, type, status, title, clusterName, briefSummary, sidePageUrl} or detail="short" for {id, type, status}. Use to inspect a brief before refining it with seo_edit_brief or approving it with seo_approve_briefs.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
briefIdstringyesBrief ID from seo_list_briefs
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "full". Lists d…

No output schema declared.

No examples provided.

seo_list_briefs ~458

Returns ALL briefs across EVERY status by default — do NOT add a status filter unless the user explicitly asks. `statusBreakdown` gives the per-status counts (match these to the dashboard's brief count). NOTE: briefs whose generation is still in-flight may not appear here yet — check `list_operations` / `get_job` for in-progress generation. Returns short detail by default: {id, type, status, title} per brief. Use detail="medium" for compact summary (clusterId, clusterName, briefSummary, sidePageUrl, generationError, blogArticleId, generatedAt, approvedAt) or detail="full" for raw briefs including briefData outline. To inspect a single brief's full outline, call seo_get_brief with detail="full". Filters: status (CSV — e.g. 'pending_review,approved'), type (CSV — e.g. 'blog,comparison,landing'), clusterId, roadmapItemId, q (cluster-name fuzzy match), limit (default 50, max 200), cursor. Response shape: { count, total, nextCursor, statusBreakdown, detail, briefs: [...] }.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
clusterIdstringFilter to briefs under one cluster
cursorstringPagination cursor from a previous page
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "short". Lists…
limitintegerPage size (default 50)
qstringFuzzy match on cluster name
roadmapItemIdstringFilter to briefs for a single roadmap item
statusstringCSV of statuses: pending_review | approved | rejected | writing | drafted | published | failed | needs_human_review
typestringCSV of brief types: blog | comparison | tool | landing

No output schema declared.

No examples provided.

seo_list_clusters ~223

Step 5. List clusters so the agent can pick one (or several) to approve before brief and roadmap generation. Returns short detail by default: {id, name, status} per cluster. Use detail="medium" for the full compact summary (pillarKeyword, briefGenerationStatus, briefCount, keywordCount, topKeywords, firstBriefId, description) or detail="full" for raw cluster objects. Full keyword detail (keywordsMeta, contentMix, briefAssignments) is intentionally omitted at short/medium to keep context small — use cluster IDs with approve/reject tools directly.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "short". Lists…

No output schema declared.

No examples provided.

seo_list_keywords ~177

List generated keywords for the brand. Useful for auditing between steps. Returns short detail by default: {id, keyword, intent} per keyword. Use detail="medium" for the full compact summary (priority, searchVolume, difficulty, excludedFromClustering, userTags) or detail="full" for raw keyword objects.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "short". Lists…
limitinteger

No output schema declared.

No examples provided.

seo_list_results ~224

List the 'Generated Results' (blog articles + side pages + comparisons) the SEO/GEO pipeline has produced — mirrors the dashboard Results tab. Includes BOTH draft and published items. Use kind to filter. This is the canonical 'what content has been generated' list — prefer it over reconstructing results from briefs.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
cursorstringPagination cursor from a previous page
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "short". Lists…
kindstringKind of result to filter by
limitintegerPage size (default 50, max 200)
statusstringCSV of statuses to filter by

No output schema declared.

No examples provided.

seo_list_roadmap ~188

List roadmap items (blog topics queued for writing). Returns short detail by default: {id, title, status} per item. Use detail="medium" for the compact summary (priority, primaryKeywords, clusterId) or detail="full" for raw objects. Call seo_roadmap_get with detail="full" for a single item's complete detail.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "short". Lists…
statusstringFilter by status

No output schema declared.

No examples provided.

seo_publish_article ~116

Step 10. Publish or schedule a roadmap-generated article to a publication. Free-tier choke point — may return FREE_CAP_REACHED with a checkoutUrl.

NameTypeReqDescription
articleIdstringyesBlog article ID
brandIdstringBrand ID (defaults to active brand)
connectionIdsarrayExternal publishing-connection IDs (WordPress, Medium, ...)
publicationIdstringTarget publication ID
scheduledAtstringISO 8601 datetime to schedule; omit to publish now

No output schema declared.

No examples provided.

seo_regenerate_brief ~149

Re-runs L3 brief generation for a single brief (scoped to its cluster). Typically takes ~2–5 min. Async — returns `{operationId, status}`. Poll `get_job` with the operationId until `state` is `completed` (or `failed`/`partially_failed`/`cancelled` on error), then re-fetch with seo_get_brief to see the refreshed briefData. Use when the existing brief's outline is unusable and a structured seo_edit_brief won't recover it.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
briefIdstringyesBrief ID from seo_list_briefs

No output schema declared.

No examples provided.

seo_reject_cluster ~62

Reject a single cluster — marks it rejected and detaches its scored keywords. Use when a generated cluster isn't relevant.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
clusterIdstringyesCluster ID from seo_list_clusters

No output schema declared.

No examples provided.

seo_restore_cluster ~51

Restore a rejected cluster back to pending_review so it can be approved again.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
clusterIdstringyesCluster ID to restore

No output schema declared.

No examples provided.

seo_roadmap_delete ~71

Permanently delete a roadmap item. Pass confirm: true to proceed — this is irreversible.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
confirmbooleanyesMust be true to confirm deletion
itemIdstringyesRoadmap item ID to delete

No output schema declared.

No examples provided.

seo_roadmap_edit ~104

Edit a roadmap item — update its title, status (suggested|in_progress|completed|ignored), or priority.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
itemIdstringyesRoadmap item ID from seo_list_roadmap
priorityintegerPriority integer (lower = higher priority)
statusstringNew status
titlestringNew title for the roadmap item

No output schema declared.

No examples provided.

seo_roadmap_get ~174

View a single roadmap item by ID. Returns full detail by default (raw object). Use detail="medium" for {id, title, status, primaryKeywords, clusterId} or detail="short" for {id, title, status}.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "full". Lists d…
itemIdstringyesRoadmap item ID from seo_list_roadmap

No output schema declared.

No examples provided.

seo_roadmap_stats ~41

Progress stats for the content roadmap (completed, in-progress, suggested counts).

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)

No output schema declared.

No examples provided.

seo_unapprove_cluster ~67

Revert an approved cluster back to pending_review. Fails if briefs have already been generated for this cluster (cannot be reverted once briefs exist).

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
clusterIdstringyesCluster ID to unapprove

No output schema declared.

No examples provided.

seo_write_article ~244

ALTERNATIVE write path — only call this when a brief was NOT approved via seo_approve_briefs (which already auto-generates). If the brief status is `writing`, generation is already in progress — poll the existing operationId with get_job until state is `completed` rather than calling this again. Step 7 (manual path). Draft a full blog article for a roadmap item. Uses credits. Typically takes ~3–8 min per article. Precondition: the brief for this roadmap item must be in status `approved`. If the brief is still `drafted` or `pending_review`, review with `seo_list_briefs` / `seo_get_brief`, refine with `seo_edit_brief`, then approve with `seo_approve_briefs` (which will auto-generate). Returns an articleId that can be reviewed, edited, or published.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
countinteger
roadmapItemIdstringyesRoadmap item ID from seo_list_roadmap
voiceProfileIdstringVoice profile ID to write in a specific style

No output schema declared.

No examples provided.

set_active_brand ~40

Set the active brand for this session. All subsequent tools will use this brand by default.

NameTypeReqDescription
brandIdstringyesThe brand ID to activate

No output schema declared.

No examples provided.

set_brand_mediums ~96

STEP 2 of brand onboarding. Saves the list of platforms the brand publishes on. Call this immediately after `create_brand` or `onboard_brand` and the user has picked platforms. After this, call `get_onboarding_status` every ~15 seconds until it reports `done`.

NameTypeReqDescription
brandIdstringBrand ID (uses active brand if omitted)
mediumsarrayyesPlatforms the brand publishes on

No output schema declared.

No examples provided.

set_landing_page ~94

Overwrite the content and/or metadata of a landing page. Pass content as a string (HTML or markdown). Pass metadata as a JSON object. Returns a versionId — all writes are versioned.

NameTypeReqDescription
contentstringFull page content (HTML or markdown)
metadataobjectArbitrary metadata object
slugstringyesLanding page slug
titlestringNew title

No output schema declared.

No examples provided.

set_post_cards ~72

Bulk-replace all carousel cards for a post. Provide a full array of card objects with title, body, and optional number.

NameTypeReqDescription
cardsarrayyesFull replacement array of card objects
postIdstringyesPost ID
rerenderbooleanRegenerate visual assets after update

No output schema declared.

No examples provided.

set_side_page_section ~87

Update the content of a specific section within a side page.

NameTypeReqDescription
contentstringNew section content (HTML or markdown)
instructionsstringAI-guided edit instructions for this section
sectionIdstringyesSection ID from view_side_page
sideKeystringyesSide page key
slugstringyesParent landing page slug

No output schema declared.

No examples provided.

set_side_page_state ~71

Publish or unpublish a side page. Set published=true to make it live, false to pull it back to draft.

NameTypeReqDescription
publishedbooleanyestrue = publish, false = unpublish
sideKeystringyesSide page key
slugstringyesParent landing page slug

No output schema declared.

No examples provided.

set_social_media_rules ~169

Update a brand's social media content rules for ONE platform. By default this MERGES your provided fields into the existing rules (send only what you want to change — other fields are preserved; arrays you provide replace the old array). Set replace=true to overwrite the entire platform ruleset. Valid platforms: linkedin, x/twitter, facebook, instagram, threads, general. Tip: call get_social_media_rules first to see current values.

NameTypeReqDescription
brandIdstringBrand ID (uses active brand if omitted)
platformstringyesThe platform whose rules you want to update.
replacebooleanOverwrite the entire platform ruleset instead of merging.
rulesobjectyesPartial or full ruleset to apply. Only provide the fields you want to change when merging.

No output schema declared.

No examples provided.

set_weekly_schedule ~180

Create or replace the weekly content schedule for the active brand. dayConfigs: array of { dayOfWeek (0=Sun…6=Sat), mediums: [{ medium, postsPerDay }] }. Mediums: x/twitter | linkedin | instagram | facebook | threads | blog. After setting, call enable_weekly_schedule to activate it.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
dayConfigsarrayyesArray of day configs. Omit a day to have no posts that day.
enabledbooleanWhether the schedule is active
leadTimeDaysintegerHow many days ahead to generate content (1–7)
timezonestringTimezone for scheduling, e.g. 'Europe/London'
voiceProfileIdDefault voice profile ID (optional)

No output schema declared.

No examples provided.

storyline_add_line_item ~204

Add a new line item (deliverable) to a storyline's strategy. Specify the channel, type, title, description, and a config map (pass {} if no extra config).

NameTypeReqDescription
automatablebooleanWhether PostKing can auto-generate this item (defaults to server-side logic)
brandIdstringBrand ID (defaults to active brand)
channelstringyesPublishing channel — e.g. 'linkedin', 'twitter', 'blog', 'email'
configobjectyesChannel/type-specific configuration — pass {} if none
descriptionstringyesWhat this piece of content should achieve or cover
storylineIdstringyesStoryline ID
targetDatestringTarget publish date (ISO 8601)
titlestringyesLine-item headline / title
typestringyesContent type — e.g. 'post', 'article', 'newsletter', 'video'

No output schema declared.

No examples provided.

storyline_clarify ~102

Run the intake/clarification step for a storyline. The API returns follow-up questions or a readiness signal; call iteratively until the system has enough context. After clarification is complete, call storyline_generate_brief.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID
userMessagestringUser's response to the last clarifying question (omit for the first call)

No output schema declared.

No examples provided.

storyline_confirm_brief ~61

Confirm (lock) the brief for a storyline, advancing it to the strategy phase. After confirmation, call storyline_generate_strategy.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_create ~107

Create a new storyline (marketing plan) for the brand. Pass a prompt describing the campaign goal; optionally provide a title. After creation, call storyline_clarify to gather context, then storyline_generate_brief.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
promptstringyesCampaign goal or intent — e.g. 'Q3 product launch for Feature X targeting SMBs'
titlestringOptional display title (auto-generated if omitted)

No output schema declared.

No examples provided.

storyline_delete ~72

Archive (soft-delete) a storyline. Pass confirm: true to proceed. Use storyline_restore to reverse this.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
confirmbooleanyesMust be true to confirm archiving
storylineIdstringyesStoryline ID to archive

No output schema declared.

No examples provided.

storyline_delete_line_item ~81

Permanently remove a line item from a storyline's strategy. Pass confirm: true to proceed.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
confirmbooleanyesMust be true to confirm deletion
itemIdstringyesLine item ID to delete
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_edit_brief ~112

Apply an AI-driven edit to the current brief using a natural-language instruction. Examples: 'Make the tone more casual', 'Add a proof point about our 99% uptime SLA'. Optionally pass expectedVersion for optimistic concurrency.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
expectedVersionintegerOptimistic-concurrency version (omit to skip version check)
instructionstringyesNatural-language edit instruction
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_edit_strategy ~89

Apply an AI-driven edit to the current strategy using a natural-language instruction. Examples: 'Add a LinkedIn video post for launch week', 'Remove the influencer outreach line items'.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
instructionstringyesNatural-language instruction for editing the strategy and/or line items
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_estimate ~80

Read-only dry-run. Estimate the credits required to execute the storyline without actually running it. Use before storyline_execute to surface the cost to the user for approval. Returns { estimatedCredits, lineItemBreakdown } or similar.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_execute ~92

Async. Execute a storyline — generates content drafts for all selected line items. Returns { operationId, status } — poll get_job with the operationId until state=completed. Typically takes ~3–8 min. Call storyline_estimate first to surface the credit cost before execution.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID to execute

No output schema declared.

No examples provided.

storyline_generate_brief ~108

Async. Generate the marketing brief for a storyline (positioning, key messages, audience, timing, tone notes). Returns { operationId, status } — poll get_job with the operationId until state=completed. Typically takes ~1–3 min. After completion, review the brief with storyline_get, then call storyline_confirm_brief to advance to strategy.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_generate_strategy ~102

Async. Generate the strategy and line-items for a storyline based on its confirmed brief. Returns { operationId, status } — poll get_job with the operationId until state=completed. Typically takes ~2–5 min. After completion, review with storyline_get_strategy, then optionally edit with storyline_edit_strategy or add/remove line items.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_get ~161

Fetch a single storyline by ID with its full state (brief, strategy, line items, status). Returns full detail by default. Use detail="medium" for a compact summary or detail="short" for {id,title,status}.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "full". Lists d…
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_get_strategy ~163

Fetch the strategy and line items for a storyline. Returns full detail by default (raw strategy + all line items). Use detail="medium" for a compact summary or detail="short" for {id,status} + line-item count.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "full". Lists d…
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_list ~135

List the brand's storylines (marketing plans). short detail {id,title,status}; medium adds isLive, dates, promptSummary; full = raw.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
detailstringVerbosity of returned item(s): "short" = id + primary label + status (cheap list scan); "medium" = key summary fields + counts (a useful glance); "full" = the complete object. Default "short". Lists…

No output schema declared.

No examples provided.

storyline_regenerate_line_item ~90

Async. Re-generate a single line item's content draft. Returns { operationId, status } — poll get_job with the operationId until state=completed. Typically takes ~1–3 min.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
itemIdstringyesLine item ID to regenerate
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_restore ~45

Restore an archived storyline back to active state.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
storylineIdstringyesStoryline ID to restore

No output schema declared.

No examples provided.

storyline_set_brief ~143

Manually set (replace) the full brief for a storyline. Use to provide a human-authored brief or to push back an edited version retrieved via storyline_get. Pass the complete brief object and the current expectedVersion (use 0 when setting from scratch). After setting, call storyline_confirm_brief to advance to strategy generation.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
briefobjectyesFull brief object — replaces the entire current brief
expectedVersionintegeryesOptimistic-concurrency version from the current brief (pass 0 when setting from scratch)
storylineIdstringyesStoryline ID

No output schema declared.

No examples provided.

storyline_update ~140

Update metadata on a storyline: title, live status, or start/end/launch dates. Pass at least one field to change.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
isLivebooleanWhether the storyline is currently live/active
launchDateISO 8601 launch date, or null to clear it
storylineEndDatestringISO 8601 end date for the storyline
storylineIdstringyesStoryline ID
storylineStartDatestringISO 8601 start date for the storyline
titlestringNew display title

No output schema declared.

No examples provided.

storyline_update_line_item ~158

Update a line item on a storyline — select/deselect, retitle, change description, targetDate, or config. Pass only the fields to change.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
configobjectReplacement channel/type-specific configuration
descriptionstringNew description for the line item
itemIdstringyesLine item ID from storyline_get_strategy
selectedbooleanInclude (true) or exclude (false) this line item from execution
storylineIdstringyesStoryline ID
targetDatestringNew target publish date (ISO 8601)
titlestringNew title for the line item

No output schema declared.

No examples provided.

suggest_assets_for_post ~67

Get AI-suggested assets from the brand library that match a given post context or topic.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
contextstringyesPost content or topic to find matching assets for
limitinteger

No output schema declared.

No examples provided.

tag_asset ~73

Add or remove tags on an asset. Provide addTags and/or removeTags as arrays.

NameTypeReqDescription
addTagsarrayTags to add
assetIdstringyesAsset ID
brandIdstringBrand ID (defaults to active brand)
removeTagsarrayTags to remove

No output schema declared.

No examples provided.

template_create ~232

Create one or more content templates for the brand. Pass a single template object, or pass the 'templates' array param for bulk creation. If both are supplied, 'templates' (bulk) takes precedence. Returns the created template record(s).

NameTypeReqDescription
bodystringTemplate body with placeholders, e.g. '[HOOK] … [CTA]' (required for single creation).
brandIdstringBrand ID (defaults to active brand)
categorystring|nullCategory label (e.g. 'hook', 'thread', 'cta').
examplestring|nullAn example post filled in using this template.
isFavoritebooleanMark as favorite to surface it first in template lists.
patternstring|nullThe rhetorical or structural pattern described in plain language.
platformsarrayPlatforms this template is best suited for (e.g. ['x', 'linkedin']).
templatesarrayBulk-create multiple templates in one call. Overrides the single-template fields when present.
titlestringTemplate title (required for single creation).

No output schema declared.

No examples provided.

template_delete ~53

Permanently delete a content template from the brand. This action is irreversible.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
templateIdstringyesID of the content template to delete.

No output schema declared.

No examples provided.

template_extract ~121

AI extracts a reusable content template from a pasted post text. Synchronous (seconds) — no polling needed. Pass save=true to also persist the template to the brand's library. Returns the extracted template object; if saved, includes the new template id.

NameTypeReqDescription
brandIdstringBrand ID (defaults to active brand)
postTextstringyesThe full text of the post to deconstruct into a reusable template (min 10 chars).
savebooleanWhen true, the extracted template is saved to the brand's template library.

No output schema declared.

No examples provided.