StoriezAgents
发布听起来像你写的内容。设定品牌人设;StoriezAgents 会研究、撰写、配图、安排发布时间,并发布到 LinkedIn、X、Facebook 和 Instagram。
托管 MCP 服务器
npx add-mcp 'https://mcp.storiez.io/api/mcp'可安装到 Claude Code、Codex、Cursor 等客户端
文档
Use StoriezAgents from your AI assistant. Describe a goal or a topic, and StoriezAgents researches, writes, illustrates, schedules and publishes social media posts in your brand's voice on LinkedIn, Facebook, Instagram and X.
What it does
- Campaigns: state a goal; StoriezAgents finds who to reach and how, then writes a multi-day calendar of posts for one or more brand personas. Review it, change it in plain words, then launch.
- Single posts: create a calendar item from a topic or a web page and generate one post per connected account, with copy and an image.
- Review and publish: approve, reject, edit or regenerate posts; posts publish at their scheduled time.
- Brand personas, connections and analytics: manage brand voices, see connected accounts, and read post performance.
Server URL
https://mcp.storiez.io/api/mcp
Transport: Streamable HTTP. A StoriezAgents account is required.
Connect in 60 seconds
Claude (web, desktop, mobile)
Settings → Connectors → Add custom connector → paste https://mcp.storiez.io/api/mcp → Connect, then sign in to StoriezAgents and click Allow.
ChatGPT
Settings → Apps & Connectors → add a connector with URL https://mcp.storiez.io/api/mcp/chatgpt, then sign in and click Allow.
Claude Code
claude mcp add --transport http storiez https://mcp.storiez.io/api/mcp
Then run /mcp in Claude Code and choose StoriezAgents to sign in.
Cursor, VS Code and other clients (mcp.json)
{
"mcpServers": {
"storiez": {
"type": "http",
"url": "https://mcp.storiez.io/api/mcp"
}
}
}
The client opens the StoriezAgents sign-in when you first use it.
Authentication
- OAuth sign-in (recommended): your client opens StoriezAgents, you sign in as usual and approve the app. The app gets a pass for your account only; it never sees your password. Disconnect any time in Settings → Connected apps.
- API key (advanced): create a key in Settings → API Keys and send it as
Authorization: Bearer sk_live_…. Keys can be limited to tool groups, made read-only, and given an expiry date.
Every connection acts as one user, with that user's permissions. Buying credits, managing the team and managing API keys are only possible in the web app.
Safety
- Every tool is labelled Read, Creates, Changes or deletes or Publishes / public, so your assistant can ask before acting.
- Deletes take two steps: the first call only returns a summary of what would be removed and a short-lived confirmation token.
- Each social account can require your approval before anything is published (on by default).
Tools
52 tools. The ChatGPT address leaves out get-prices and list-transactions.
Personas
| Tool | Type | What it does |
|---|---|---|
list-personas List brand personas | Read | Returns all brand personas of the account. A persona is a brand voice: tone, audience, writing style and visual identity used for generated posts. |
get-persona Get brand persona | Read | Returns one persona with all brand voice fields (tone, audience, colors, fonts, logos, design examples) and connectionIds, the accounts it may post to. |
create-persona Create brand persona | Creates | Creates a brand persona. Only name and type (PERSONAL or COMPANY) are required. Returns the new persona. Files (font, logos, design examples) are uploaded with presign-upload first and passed as asset objects. |
update-persona Update brand persona | Changes or deletes | Changes the given fields of a persona and leaves all other fields as they are. Returns the updated persona. |
delete-persona Delete brand persona | Changes or deletes | Deletes a persona and everything tied to it: its calendar items, all their posts including published ones, and its connections unless another persona uses them. Publishing through those connections stops. Irreversible. Two steps: the first call deletes nothing and returns needsConfirmation, a summary of what would be deleted, and a confirmToken valid for 5 minutes; a second call with that confirmToken deletes. |
Social account connections
| Tool | Type | What it does |
|---|---|---|
list-connections List social account connections | Read | Returns the connected social accounts (publishing destinations) of the account, such as one LinkedIn page or one Instagram business account. status is CONNECTED, EXPIRED, ERROR or PLACEHOLDER. Can be filtered by personaId. |
get-connection Get social account connection | Read | Returns one connection: platform, name, status, approval setting (needsApproval) and when its login expires (validTill). Never returns tokens. |
start-connection Start connecting a social account | Creates | Starts connecting a LinkedIn, Facebook, Instagram or X account. Returns an authorization URL that must be opened in a web browser to finish; this tool cannot finish the connection itself. The new connection then appears in list-connections. |
refresh-connection Refresh social account sign-in | Creates | Renews the login of an EXPIRED or expiring connection. Returns the new status. LinkedIn and X renew; Facebook and Instagram renew only before they expire, otherwise they need start-connection again. |
delete-connection Disconnect social account | Changes or deletes | Removes one publishing destination and its authorization. Publishing to it stops until it is connected again. Two steps: the first call deletes nothing and returns needsConfirmation, a summary, and a confirmToken valid for 5 minutes; a second call with that confirmToken deletes. |
Calendar items
| Tool | Type | What it does |
|---|---|---|
list-content-events List calendar items | Read | Returns calendar items (content events). A calendar item is one planned post topic in one persona's voice for one or more connections at a date. Can be filtered by status, date range and campaign. Paginated with limit and skip. |
get-content-event Get calendar item | Read | Returns one calendar item: topic, goal, persona, selected connections, date and status. |
create-content-event Create calendar item | Creates | Creates a calendar item (topic, persona, destinations, date). Does not generate posts; generation is a separate step (trigger-generation). Destinations are given as platforms (network names, resolved to the persona's connected accounts) or selectedConnections (connection IDs); with neither, generation later fails with "No connected platforms found". |
update-content-event Update calendar item | Changes or deletes | Changes the given fields of a calendar item. Changing the date moves its unpublished posts with it. Returns the updated item. |
finalize-content-event Finalize and schedule posts | Publishes / public | Processes the ready posts of a calendar item: posts on connections without approval (needsApproval false) are scheduled and publish publicly at their time; posts on connections with approval stay READY_TO_APPROVE. |
delete-content-event Delete calendar item | Changes or deletes | Deletes a calendar item and its posts, except posts already PUBLISHED or PUBLISHING, which stay. Returns 409 while generation is running. Irreversible. Two steps: the first call deletes nothing and returns needsConfirmation, a summary, and a confirmToken valid for 5 minutes; a second call with that confirmToken deletes. |
Posts
| Tool | Type | What it does |
|---|---|---|
list-posts List posts | Read | Returns posts. A post is one finished piece of content (copy and image) for one connection; one calendar item makes one post per connection. Can be filtered by status, platform and calendar item (initiatorId). Paginated with limit and skip. |
get-post Get post | Read | Returns one post: copy, headline, image URL, platform, connection, schedule, status and publish time. |
approve-post Approve and publish post | Publishes / public | Approves a post for publishing on its social network. A post whose scheduled time has passed publishes immediately; otherwise it becomes SCHEDULED and publishes at that time. Costs no credits. |
reject-post Reject post | Changes or deletes | Marks a post REJECTED. It is never published and stays visible for reference. Only for posts not yet PUBLISHED. Costs no credits. |
edit-post-copy Replace post text | Changes or deletes | Replaces the stored copy (and optionally the title) of a post with the given text. No AI, no credits. Does not change the destination. A post that is already published keeps the copy that went live. |
regenerate-post-text Regenerate post text | Changes or deletes | Writes new copy for a post with the AI pipeline, replacing the current copy. Costs 6 credits. Status is REGENERATING until it returns to READY_TO_APPROVE. Only for posts that belong to a calendar item. |
regenerate-post-image Regenerate post image | Changes or deletes | Creates a new image for a post with the AI pipeline, replacing the current image. Costs 12 credits. Status is REGENERATING until it returns to READY_TO_APPROVE. Only for posts that belong to a calendar item. |
delete-post Delete post | Changes or deletes | Deletes one post. The status of its calendar item is recalculated. Irreversible (reject-post keeps the post instead). Two steps: the first call deletes nothing and returns needsConfirmation, a summary, and a confirmToken valid for 5 minutes; a second call with that confirmToken deletes. |
Generation
| Tool | Type | What it does |
|---|---|---|
trigger-generation Generate posts for calendar item | Publishes / public | Generates posts for one calendar item, one per destination: research, copy, headline and image in the persona's voice. Running it again deletes the item's existing posts and writes new ones. Returns post IDs immediately; generation takes 1 to 3 minutes. Finished posts are SCHEDULED (publish publicly at their time) on connections without approval, otherwise READY_TO_APPROVE. Costs 30 credits per post (15 with an uploaded image), deducted when each post finishes. Can read the page at a given URL. |
generate-for-content-events Generate posts for several calendar items | Publishes / public | Starts generation for several calendar items at once and returns a per-item summary (post IDs and status, or an error). Items that are already generating restart. Same results and costs as trigger-generation for each item. |
get-generation-status Get post generation status | Read | Returns the status of posts, by post IDs or by calendar item. Posts move through GENERATION_IN_PROGRESS, EXTRACTING, GENERATING and COPY_GENERATED and end as SCHEDULED, READY_TO_APPROVE or GENERATION_FAILED. allComplete is true when every post has ended. |
Campaigns
| Tool | Type | What it does |
|---|---|---|
list-campaign-goals List campaign goals | Read | Returns the campaign goal strings accepted by plan-campaign. |
plan-campaign Plan campaign | Publishes / public | Starts planning a campaign for the given personas and goal: researches the audience and how to reach it on the public web, then writes the calendar and post copy. Nothing is generated or published. Returns campaignId immediately; planning takes a few minutes (get-campaign-planning shows progress). Without platforms or connectionIds, every connected account of each listed persona is used. Returns an error while planning already runs for this campaign. |
get-campaign-planning Get campaign planning status | Read | Returns planning progress of a campaign: campaignStatus (DRAFT while planning, ADJUSTING, PLAN_READY or FAILED), steps, and the plan once ready, in the same shape as get-campaign. Planning usually takes a few minutes. |
retry-plan Retry failed campaign plan | Publishes / public | Plans a FAILED campaign again with its original inputs. Returns 409 when the campaign already has a plan or is planning. |
list-campaigns List campaigns | Read | Returns campaigns of the account, newest first. Can be filtered by status (DRAFT, PLAN_READY, LAUNCHED, FAILED). Paginated with limit and skip. |
get-campaign Get campaign | Read | Returns one campaign. plan.pitch is the plan in plain words: targets (who it reaches), reach (per target: network, account, posts, time of day), talk (how it speaks to them), posters (who posts and their role) and frequency (posts per network). plan.blueprint.contentEvents is the calendar. inputFilter.droppedCount counts statements removed from a text subject, with reasons. |
adjust-campaign Adjust campaign plan | Publishes / public | Requests a change to a PLAN_READY campaign from a plain-language message (who it reaches, how, the message, who posts, how often, dates, or single calendar items); everything the change does not touch stays. Returns action: "ask" (a clarifying question), "decline" (the reason), "confirm" (a warning; send again with confirm true or false), or "adjusting" (what will change). While adjusting, campaignStatus is ADJUSTING until it is PLAN_READY again. Not available after launch. Returns 409 while another change runs. |
undo-campaign-adjust Undo last campaign change | Changes or deletes | Reverts the most recent adjust-campaign change; each call goes one change further back. Not available after launch. |
launch-plan Launch campaign | Publishes / public | Generates and schedules every post of a PLAN_READY campaign; status becomes LAUNCHED. Costs 30 credits per post, one post per connection on each calendar item. Posts on connections without approval publish publicly at their time; others wait as READY_TO_APPROVE. Returns generated and generateFailed counts. Returns 409 before PLAN_READY, during a change, or when every date has passed. |
delete-campaign Delete campaign | Changes or deletes | Deletes a campaign, the calendar items it created and their posts. Irreversible. Two steps: the first call deletes nothing and returns needsConfirmation, a summary, and a confirmToken valid for 5 minutes; a second call with that confirmToken deletes. |
Analytics
| Tool | Type | What it does |
|---|---|---|
get-analytics Get analytics summary | Read | Returns totals of reach, engagement and impressions for the account over a time window (1 to 365 days, default 30). |
get-analytics-filters Get analytics filter options | Read | Returns the available analytics filters: platforms, pages and date ranges. |
get-analytics-posts Get per-post analytics | Read | Returns engagement, impressions and reach per published post. Can be filtered by platform and page. Paginated with a cursor. |
refresh-analytics Refresh analytics from social networks | Creates | Fetches fresh analytics from the account's connected social accounts and returns the updated stats. |
Account and team
| Tool | Type | What it does |
|---|---|---|
get-me Get signed-in user | Read | Returns the signed-in user: name, email, role and time zone. Campaign and post times follow this time zone. |
set-my-timezone Set my time zone | Changes or deletes | Sets the signed-in user's IANA time zone. Campaigns planned afterwards use it; existing campaigns keep theirs. |
list-users List team members | Read | Returns the team members of the account: id, name, email, role (OWNER, ADMIN or MEMBER) and status. Inviting, removing and role changes are not available through this server. |
get-user Get team member | Read | Returns one team member: name, email, role, status and time zone. |
get-account Get account and credit balance | Read | Returns the account: credit balance, business name and location. |
get-prices Get credit packages | Read | Returns the available credit packages and their prices. Purchases are not available through this server. |
list-transactions List credit transactions | Read | Returns recent credit transactions of the account (purchases and spends). |
Scenes and files
| Tool | Type | What it does |
|---|---|---|
search-scenes Search scene library | Read | Searches the stock scene library by keywords. Returns matching scenes with IDs, thumbnails and metadata. Paginated. |
get-scene Get scene | Read | Returns one scene with its metadata and image URL. |
presign-upload Get file upload link | Creates | Returns a time-limited upload URL and the final object key for one file (for a post image or persona asset). The file is uploaded with an HTTP PUT to that URL. |
signed-get Get file download link | Read | Returns a time-limited URL to read one private file by its object key. |
Credits
Generating posts uses credits from your StoriezAgents balance: 30 credits per post (15 when you upload your own image), 6 to rewrite a post's text and 12 to make a new image. Credits are deducted when a post finishes. get-account shows the balance. Buy credits in the web app.