# io.github.xnjiang/autowhisper-mcp

> Drive your AutoWhisper AI CMO to generate and publish marketing content from any MCP client.

- name: io.github.xnjiang/autowhisper-mcp
- version: 0.9.0
- connection class: R2 (oauth_consent_once)
- trust: 97/100
- quality: 90/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.xnjiang%2Fautowhisper-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.xnjiang%2Fautowhisper-mcp/tools

**An agent can connect after a one-time OAuth consent by a human.** Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "autowhisper-mcp": {
      "type": "http",
      "url": "https://autowhisper.xyz/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-99% +updated-23d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 90/100 (strong)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: 83 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- warn `auth.cimd`: only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 12 of 12 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,240 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 12 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know autowhisper-mcp@0.9.0

- tools: 12, about 3,240 tokens to load them all
- tool set hash: 535a7a7db2419a368d60d2d88719c58c
- tools last changed: 2026-10-02T15:08:18.427Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.xnjiang/autowhisper-mcp.svg)](https://protogrid.dev/servers/io.github.xnjiang/autowhisper-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-02 `autowhisper_confirm` changed (annotations)
- 2026-10-02 `autowhisper_cmo` changed (annotations)
- 2026-10-02 `autowhisper_edit_content` changed (annotations)
- 2026-10-02 `autowhisper_action` changed (annotations)
- 2026-10-02 `autowhisper_performance` changed (annotations)
- 2026-10-02 `autowhisper_platforms` changed (annotations)
- 2026-10-02 `autowhisper_wallet` changed (annotations)
- 2026-10-02 `autowhisper_posts` changed (annotations)
- 2026-10-02 `autowhisper_feed` changed (annotations)
- 2026-10-02 `autowhisper_status` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/io.github.xnjiang%2Fautowhisper-mcp/changes

## Dependencies

- npm autowhisper-mcp@0.9.0: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://autowhisper.xyz/mcp (streamable-http, auth oauth2, reachable true, uptime30d 0.989011)

## Packages

- npm autowhisper-mcp@0.9.0 secrets: AUTOWHISPER_API_TOKEN

## Tools (12)

- `autowhisper_action`: 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.
- `autowhisper_cmo`: 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.
- `autowhisper_confirm`: 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".
- `autowhisper_edit_content`: 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).
- `autowhisper_feed`: 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).
- `autowhisper_performance`: 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.
- `autowhisper_platforms`: Fast connected-platform list and connection health for ONE workspace.
- `autowhisper_posts`: 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).
- `autowhisper_products`: 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.
- `autowhisper_products_summary`: 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.
- `autowhisper_status`: 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.
- `autowhisper_wallet`: Fast credit balance for the account.
