Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,331counted 4 min ago
teppi

Server definition

Hash
sha256:5f4bde0c32a49121edd2b13b6d5661cffc060f83038921cdf3f36bd3baebd604
What it is
What a remote MCP server returned when asked what it offers: 12 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "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.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "content_id": { "description": "Required for regenerate_content. The id from the row's `content: <type> #<id>` — NOT feed_item_id.", "type": "number" }, "content_type": { "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" ], "type": "string" }, "feed_item_id": { "description": "Required for feed actions. The leading `feed_item #<id>` in an autowhisper_feed row — NOT the `content: <type> #<id>` on the same row.", "type": "number" }, "post_id": { "description": "Required for post actions.", "type": "number" }, "reason": { "description": "Optional reason for rejecting a feed item.", "type": "string" }, "scheduled_at": { "description": "Required for reschedule_post; ISO8601 or natural language supported by AutoWhisper.", "type": "string" }, "tool": { "enum": [ "approve_feed_item", "reject_feed_item", "dismiss_feed_item", "publish_content", "regenerate_content", "reschedule_post", "retry_post", "mark_as_published", "boost_post" ], "type": "string" }, "workspace_id": { "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.", "type": "number" } }, "required": [ "tool" ], "type": "object" }, "name": "autowhisper_action", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "instruction": { "description": "What you want the CMO to do, in natural language.", "type": "string" }, "product_id": { "description": "Optional: act on a specific product by its id.", "type": "string" }, "workspace_id": { "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.", "type": "number" } }, "required": [ "instruction" ], "type": "object" }, "name": "autowhisper_cmo", "outputSchema": null }, { "description": "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\".", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "decision": { "description": "\"yes\" to perform the action, \"no\" to decline.", "enum": [ "yes", "no" ], "type": "string" }, "message_id": { "description": "The message_id from the confirmation request.", "type": "number" }, "workspace_id": { "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.", "type": "number" } }, "required": [ "message_id", "decision" ], "type": "object" }, "name": "autowhisper_confirm", "outputSchema": null }, { "description": "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).", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "body": { "type": "string" }, "content_id": { "description": "The CONTENT id from the feed row's `content: <type> #<id>` — not the feed_item id.", "type": "number" }, "content_type": { "description": "Content type in snake_case, as printed in the feed row's `content:` part.", "enum": [ "social_copy", "lookbook", "feature_poster", "idea" ], "type": "string" }, "cta": { "type": "string" }, "hook": { "type": "string" }, "keywords": { "items": { "type": "string" }, "type": "array" }, "title": { "type": "string" }, "tone": { "type": "string" }, "workspace_id": { "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.", "type": "number" } }, "required": [ "content_type", "content_id" ], "type": "object" }, "name": "autowhisper_edit_content", "outputSchema": null }, { "description": "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).", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "status": { "description": "Filter by feed status (pending / approved / rejected / executed / all).", "enum": [ "pending", "approved", "rejected", "executed", "all" ], "type": "string" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_feed", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "window_days": { "description": "Look-back window in days. The server clamps it to its own supported range and defaults when omitted.", "type": "number" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_performance", "outputSchema": null }, { "description": "Fast connected-platform list and connection health for ONE workspace.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_platforms", "outputSchema": null }, { "description": "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).", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "status": { "description": "Filter by post status.", "type": "string" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_posts", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "include_archived": { "description": "Include archived products.", "type": "boolean" }, "limit": { "description": "Maximum products to return, capped by the API.", "type": "number" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_products", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_products_summary", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" }, "workspace_id": { "description": "Workspace to read. Omit for the user's CURRENT workspace — other workspaces are NOT included. Get other ids from autowhisper_status.", "type": "number" } }, "required": [], "type": "object" }, "name": "autowhisper_status", "outputSchema": null }, { "description": "Fast credit balance for the account.", "inputSchema": { "properties": { "autowhisper_token": { "description": "Optional: your AutoWhisper API token, for clients that cannot set an Authorization header. Takes precedence over the header. Never echoed back.", "type": "string" } }, "required": [], "type": "object" }, "name": "autowhisper_wallet", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:5f4bde0c32a49121edd2b13b6d5661cffc060f83038921cdf3f36bd3baebd604 | sha256sum