Skip to content

mcp: port gflow character create — the exemption reason was never a reason #691

Open

Description

@ffroliva

_MCP_EXEMPT carried "character create": "character mutations — not yet ported". "Mutations" is a category, not a justification, and it does not survive contact with the rest of the table.

Why the stated reason doesn't hold

The implied argument is that a mutation which spends quota needs human consent. But gflow_generate_image is exposed over MCP and spends the same per-model daily quota. There is no principle that admits one and refuses the other — creating a character generates reference images, which is the thing the tool already does.

Compare the exemptions that do carry real reasons:

character create has none of that shape. It is simply unported.

Scope

services/character_create.py::character_create already orchestrates the persist-before-spend saga, so the MCP tool is an adapter over it, not new logic. CLI surface to mirror: --project, --name, --face-prompt, the body-image options, --voice, --personality, and the prompt-formatting flag.

Two things to settle in the port rather than assume:

  1. Duration. It generates one or two images, so it is closer to gflow_generate_image's latency than to a catalog read. Decide whether it enqueues through the worker like the generate tools, or runs inline — investigate: clamp long MCP operations to the client tool-timeout (or confirm enqueue already covers it) #481 is the relevant hazard.
  2. Consent. If it should not spend without a human, say so explicitly and gate it behind --no-spend semantics like the generate tools already honour (GFLOW_MCP_NO_SPEND), rather than leaving it unreachable.

Blocking neither #687 nor anything else — filed so the exemption stops being a shrug.

Refs #689.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions