Skip to main content

Prompts and resources

In addition to the MCP tools (core / sessions / dashboards), the Whet MCP exposes 2 prompts and 2 resources. Prompts are guiding templates that the client invokes when the user selects them explicitly. Resources are URIs the agent reads as context before acting.

Prompts

Prompts return a message ready to send to the model — placeholders already filled, workflow narrated step by step. In Claude Desktop they show up in the / menu, in Cursor in the palette.

draft_from_handle

Guides the "build a draft analyzing recent posts from a handle" flow end-to-end.

Arguments:

NameTypeRequiredDescription
handlestringyesHandle to track (with or without @).
intentstring (min 10)yesWhy this handle matters, 1–2 sentences.
max_draftsstringnoCap on drafts from the first batch. Default "3".

Returned workflow:

  1. Call create_pipeline_from_intent with the handle, the intent and a fresh idempotency_key.
  2. Poll the returned run.
  3. When the pipeline reports ready (or read_inbox returns posts), call list_posts and pick the top-engagement candidates.
  4. For each top-N candidate, call start_draft with a unique idempotency_key per post.
  5. Report back the run IDs so the user can review.

When to use: the operator wants quick drafts without creating a persistent pipeline from the UI.

refine_post

Guides the free-form refinement loop on an existing artifact.

Arguments:

NameTypeRequiredDescription
artifact_idstringyesrf_<uuid> or bf_<uuid> of the draft to refine.
goalstring (min 10)yesNatural-language goal — "shorter and punchier", "match @balajis voice", etc.

Returned workflow:

  1. Read the current draft via the artifact://{artifact_id} resource.
  2. Pick the refinement_type that matches the goal:
    • shorter / tighter / condenserefinement_type=shorter
    • punchier / sharper hookrefinement_type=more_punchy
    • tone shiftrefinement_type=change_tone with params: { new_tone: ... }
    • emulate voicerefinement_type=match_voice with params: { handle: @... }
  3. Call the refinement endpoint (POST /artifacts/{parent_id}/refine on the backend, or the /api/picko/refinements facade) with parent_id=rf_<uuid> | bf_<uuid>.
  4. Poll the new artifact; loop if it still misses the goal.
  5. Once satisfactory, call publish_artifact on the final child.

When to use: after reading the inbox and picking a draft that needs a variant. It's the agent-friendly form of a loop the client can iterate without asking the human for more input.

Important note: the argument is goal in natural language, not a closed enum. The prompt internally picks the appropriate refinement_type based on the goal text.


Resources

Resources are URIs the agent reads with resources/read to gather context before acting. They are read-only — there's no resources/write tool. Mutating operations go through explicit tools.

pipeline://{id}

Reads the full detail of a pipeline.

pipeline://pp_a1b2c3

Returns the configuration (source, kind, scope, tone, auto-fanout), recent runs with their state, summarized metrics and recurring errors if any. Useful before invoking diagnose_pipeline — sometimes reading the resource is enough.

artifact://{id}

Reads the full detail of an artifact.

artifact://rf_4f5g

Returns the text/data, state (review, ready, published, archived), genealogy (parent_id if it's a variant, children if any), and the originating pipeline. Useful for an agent to read content before proposing a refinement or citing it in a response to the user.


Conventions

  • Prompts are idempotent: two calls with the same arguments produce the same message. No side effects.
  • Prompt arguments are free-form strings (except handles). The prompt itself reasons about intent and goal — there are no closed enums the client has to pick from up front.
  • If your MCP client doesn't support prompts/resources (tools only), the same operations are reachable via the MCP tools — you only lose the narrated workflows.