---
title: "Update Character Asset"
method: POST
path: "/api/mcp/update_character_asset"
tags: ["mcp"]
---

# Update Character Asset

`POST /api/mcp/update_character_asset`

## Request

- Base URL: `https://writer.swapp1990.org` (the document declares no server; this is the origin it was published from)
- URL: `https://writer.swapp1990.org/api/mcp/update_character_asset`
- Auth: none declared

Patch generated image metadata for one cast member.

Use this for concept art and character sheets. It avoids resending the
whole cast through update_characters when only one generated asset
changed.

## Request body

- UpdateCharacterAssetInput
  - `job_id` string, required: The story job ID.
  - `character_index` integer, required: 0-based index of the cast member to patch.
  - `character_name` string, nullable: Optional name guard; when provided, the indexed character must still match.
  - `asset_type` 'concept_art' | 'character_sheet' | 'full_body_images', required: Which visual asset field to patch on the cast member. full_body_images accepts {images:[{url:...}]}.
  - `asset` object, nullable: Generated or client-owned asset metadata. Pass null to remove this asset field.
  - `append` boolean: For full_body_images, append the supplied images instead of replacing the collection.

## Response `200`

Successful Response

- GenericToolResponse: Fallback for tools whose payload is still being tightened.
  - `story_url` string, nullable
  - `article_url` string, nullable
  - `job_id` string, nullable
  - `status` string, nullable
  - `is_terminal` boolean, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/swapp1990/apis/writeforyou-mcp-api.md) · [All operations](https://skmtc.dev/swapp1990/apis/writeforyou-mcp-api/llms.txt) · [OpenAPI document](https://skmtc.dev/swapp1990/apis/writeforyou-mcp-api/revisions/ce5e2a89ab4d?raw)
