autowhisper-mcp
Drive your AutoWhisper AI CMO to generate and publish marketing content from any MCP client.
我该使用它吗
质量与安全性
发现(4)
- HIGH
- MEDIUM在 autowhisper_cmo 中
- MEDIUM在 autowhisper_cmo 中
- INFO在 autowhisper_cmo 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"autowhisper-mcp": {
"command": "npx",
"args": [
"autowhisper-mcp"
]
}
}
}可运行的软件包
0.9.0stdio远程端点
https://autowhisper.xyz/mcpstreamable-http它能做什么
工具清单
工具(12)
⚪autowhisper_products_summary(workspace_id, autowhisper_token)
Fast product counts by account/workspace. Use this for "how many products do I have?" instead of spending a CMO chat turn. Counts by workspace come with it.
输入模式
{
"type": "object",
"properties": {
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟢autowhisper_products(include_archived, workspace_id, limit, autowhisper_token)
Fast product list with optional workspace/archive filters. Each row carries the product id used by autowhisper_cmo, its type, whether it has a main image, and its storefront link.
输入模式
{
"type": "object",
"properties": {
"include_archived": {
"type": "boolean",
"description": "Include archived products."
},
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"limit": {
"type": "number",
"description": "Maximum products to return, capped by the API."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟢autowhisper_status(workspace_id, autowhisper_token)
Fast CMO/account snapshot for the current workspace: products, feed, platforms, wallet, settings — plus the directory of workspaces (with ids) to pass as workspace_id. Every count is for the CURRENT workspace; account-wide product counts are in autowhisper_products_summary.
输入模式
{
"type": "object",
"properties": {
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟡autowhisper_feed(status, workspace_id, autowhisper_token)
Fast CMO feed list with status counts and the actions available on each row (with their arguments). Each row prints BOTH ids: `feed_item #<id>` addresses the review card (autowhisper_action) while `content: <type> #<id>` addresses the content itself (autowhisper_edit_content).
输入模式
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Filter by feed status (pending / approved / rejected / executed / all).",
"enum": [
"pending",
"approved",
"rejected",
"executed",
"all"
]
},
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟡autowhisper_posts(status, workspace_id, autowhisper_token)
Fast post queue list, optionally filtered by status. Failed rows carry the reason and whether a retry can help (needs reconnect means a human must re-authorise that channel).
输入模式
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Filter by post status."
},
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}⚪autowhisper_wallet(autowhisper_token)
Fast credit balance for the account.
输入模式
{
"type": "object",
"properties": {
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟢autowhisper_platforms(workspace_id, autowhisper_token)
Fast connected-platform list and connection health for ONE workspace.
输入模式
{
"type": "object",
"properties": {
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟢autowhisper_performance(workspace_id, window_days, autowhisper_token)
Read-only cross-channel results for ONE workspace: a four-layer funnel, a per-channel breakdown, and ad spend over the window. Use this to answer how published content is actually doing, and before advising which creative to fund or scale — autowhisper_feed and autowhisper_posts only say what was made and sent, never whether it worked. ad_spend_cents is null (not 0) when the account has no active workspace: null means we cannot answer, 0 would assert nothing was spent.
输入模式
{
"type": "object",
"properties": {
"workspace_id": {
"type": "number",
"description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status."
},
"window_days": {
"type": "number",
"description": "Look-back window in days. The server clamps it to its own supported range and defaults when omitted."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": []
}🟡autowhisper_action(tool, feed_item_id, post_id, scheduled_at, reason, ...)
Run an explicit feed or post action without an AI chat turn. High-impact actions return a confirmation message_id; confirm it with autowhisper_confirm. approve_feed_item PUBLISHES: it schedules the piece to every connected platform, and for a video draft it also starts the render and charges credits for it — approving is the spend, not a bookmark. When nothing is connected it schedules nothing, and connecting a platform later does NOT go back for it; the result line says which happened. regenerate_content rewrites an existing draft IN PLACE (same record id, new text) — it takes content_type + content_id, not feed_item_id, and always returns a confirmation because it spends credits.
输入模式
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"enum": [
"approve_feed_item",
"reject_feed_item",
"dismiss_feed_item",
"publish_content",
"regenerate_content",
"reschedule_post",
"retry_post",
"mark_as_published",
"boost_post"
]
},
"feed_item_id": {
"type": "number",
"description": "Required for feed actions. The leading `feed_item #<id>` in an autowhisper_feed row — NOT the `content: <type> #<id>` on the same row."
},
"post_id": {
"type": "number",
"description": "Required for post actions."
},
"scheduled_at": {
"type": "string",
"description": "Required for reschedule_post; ISO8601 or natural language supported by AutoWhisper."
},
"reason": {
"type": "string",
"description": "Optional reason for rejecting a feed item."
},
"content_type": {
"type": "string",
"description": "Required for regenerate_content. The snake_case value from the row's `content: <type> #<id>` — NOT the class name.",
"enum": [
"social_copy",
"lookbook",
"feature_poster",
"idea"
]
},
"content_id": {
"type": "number",
"description": "Required for regenerate_content. The id from the row's `content: <type> #<id>` — NOT feed_item_id."
},
"workspace_id": {
"type": "number",
"description": "Workspace to act in. Omit for the user's CURRENT workspace. The target item must live in that workspace — an id from another workspace will not be found."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": [
"tool"
]
}🟡autowhisper_edit_content(content_type, content_id, title, body, hook, ...)
Directly update exact content fields without a generation run or credit spend. Pass body for the full replacement copy/story. IDs: content_id is the CONTENT id — in autowhisper_feed output that is the `content: <type> #<id>` part of a row, NOT the leading `feed_item #<id>` (that one belongs to autowhisper_action).
输入模式
{
"type": "object",
"properties": {
"content_type": {
"type": "string",
"description": "Content type in snake_case, as printed in the feed row's `content:` part.",
"enum": [
"social_copy",
"lookbook",
"feature_poster",
"idea"
]
},
"content_id": {
"type": "number",
"description": "The CONTENT id from the feed row's `content: <type> #<id>` — not the feed_item id."
},
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"hook": {
"type": "string"
},
"cta": {
"type": "string"
},
"tone": {
"type": "string"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
}
},
"workspace_id": {
"type": "number",
"description": "Workspace to act in. Omit for the user's CURRENT workspace. The target item must live in that workspace — an id from another workspace will not be found."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": [
"content_type",
"content_id"
]
}🟡autowhisper_cmo(instruction, product_id, workspace_id, autowhisper_token)
Send a natural-language instruction to your AutoWhisper AI CMO and get its reply. Best at: (1) generating batches of on-brand ad creatives (UGC video, posts, images) for paid campaigns, (2) advising which creative to fund and how to target, (3) keeping every social channel alive across 30+ networks, plus analytics. Examples: "Make a batch of ad creatives for my product https://mystore.com/widget", "Which creative should I run first, and how should I target?", "Keep my channels posted this week". Honest scope: posting ≠ traffic — reach comes from the user's paid ads. To add a product, pass a product URL (the CMO extracts the image from the page) — a text-only description will not create it, and placeholder/stock images are rejected.
输入模式
{
"type": "object",
"properties": {
"instruction": {
"type": "string",
"description": "What you want the CMO to do, in natural language."
},
"product_id": {
"type": "string",
"description": "Optional: act on a specific product by its id."
},
"workspace_id": {
"type": "number",
"description": "Workspace to act in. Omitting it uses the account's FIRST active workspace, which may not be the one you were just reading — and the workspace decides the generated content's LANGUAGE. Pass the workspace_id shown by autowhisper_feed / autowhisper_platforms / autowhisper_products whenever you are working on a specific one."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": [
"instruction"
]
}⚪autowhisper_confirm(message_id, decision, workspace_id, autowhisper_token)
Approve or decline a high-impact action the CMO or autowhisper_action asked you to confirm. Pass the message_id it gave you and decision "yes" or "no".
输入模式
{
"type": "object",
"properties": {
"message_id": {
"type": "number",
"description": "The message_id from the confirmation request."
},
"decision": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "\"yes\" to perform the action, \"no\" to decline."
},
"workspace_id": {
"type": "number",
"description": "The workspace the confirmation lives in — pass the SAME one you used for autowhisper_cmo. Omitting it falls back to the account's first active workspace and 404s on a bubble that lives anywhere else."
},
"autowhisper_token": {
"type": "string",
"description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back."
}
},
"required": [
"message_id",
"decision"
]
}社区
证据