AI Manga & Anime Generator - Mangii MCP

Create manga and anime art from text. 24 styles, multi-panel stories, BYOK.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
98%
Integridad del esquema
96%
Calidad de los nombres
50%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (9)

  • LOWTool 'manga.list_styles' doesn't follow camelCase/snake_caseen manga.list_styles
  • LOWTool 'manga.get_credits' doesn't follow camelCase/snake_caseen manga.get_credits
  • LOWTool 'manga.list_panels' doesn't follow camelCase/snake_caseen manga.list_panels
  • LOWTool 'manga.list_stories' doesn't follow camelCase/snake_caseen manga.list_stories
  • LOWTool 'manga.create_story' doesn't follow camelCase/snake_caseen manga.create_story
  • LOWTool 'manga.continue_story' doesn't follow camelCase/snake_caseen manga.continue_story
  • LOWTool 'manga.regenerate_panel' doesn't follow camelCase/snake_caseen manga.regenerate_panel
  • LOWTool 'manga.buy_credits' doesn't follow camelCase/snake_caseen manga.buy_credits
  • LOWTool 'manga.get_job' doesn't follow camelCase/snake_caseen manga.get_job

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~4,413Tokens (definiciones de herramientas)
~5.4 KBTamaño de respuesta típico
Impacto significativo en la atención (3.45% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "manga": {
      "url": "https://mcp.mangii.ai/mcp"
    }
  }
}

Puntos de conexión remotos

https://mcp.mangii.ai/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (9)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢manga.list_styles(group, limit)

List the 24 canonical Mangii art styles with live style ids. Call this before manga.create_story. Experimental and alias ids are excluded. Filter with group or limit when you only need one look.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "group": {
      "type": "string",
      "enum": [
        "shonen_action",
        "modern_anime",
        "romance_cute",
        "dark_mature",
        "webtoon_cultivation",
        "painterly_artistic"
      ],
      "description": "Optional style group. Example: shonen_action or painterly_artistic. Omit to return every selectable style."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "description": "Optional max number of styles to return after filtering. Example: 6."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "styles": {
      "type": "array",
      "description": "Selectable styles.",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "group"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Pass this as style_id on manga.create_story. Example: classic_shonen."
          },
          "name": {
            "type": "string",
            "description": "Human display name. Example: Classic Action."
          },
          "group": {
            "type": "string",
            "description": "Picker group id. Example: shonen_action."
          }
        }
      }
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "required": [
    "styles"
  ]
}
🟢manga.get_credits(include_notes)

Return the API wallet. Spendable is apiPackCredits plus packCredits after the account has ever purchased. Later ad/referral grants on that pack pool also spend. weeklyCredits is display-only.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "include_notes": {
      "type": "boolean",
      "description": "When true (default), include a notes string explaining that weeklyCredits does not spend on API or MCP."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "weeklyCredits": {
      "type": "integer",
      "description": "In-app weekly credits. Display-only for API/MCP."
    },
    "packCredits": {
      "type": "integer",
      "description": "In-app pack credits. After a purchase (hasEverPurchasedCredits), the full current balance is included in spendableCredits, including later ad/referral grants. Never-purchased pack balances do not spend."
    },
    "apiPackCredits": {
      "type": "integer",
      "description": "Spendable API credits for generate tools."
    },
    "spendableCredits": {
      "type": "integer",
      "description": "apiPackCredits plus packCredits when the account has ever purchased. Same number useApiCredit will spend."
    },
    "notes": {
      "type": "string",
      "description": "Wallet rules for agents."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  }
}
🟢manga.list_panels(story_id)

List panels you own for a story. Use this to get panel_id values before changing Image 1 or Image 2 on manga.continue_story or manga.regenerate_panel. Each row has ref_role: identity on the first panel, scene on the last distinct panel, otherwise null.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Story id from manga.create_story. Example: a Firestore story document id returned as story_id."
    }
  },
  "required": [
    "story_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Story id from manga.create_story. Example: a Firestore story document id returned as story_id."
    },
    "panels": {
      "type": "array",
      "description": "Panels in reading order, with ids for identity_panel_id and continuity_panel_id.",
      "items": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Panel id. Pass as identity_panel_id or continuity_panel_id."
          },
          "story_id": {
            "type": "string",
            "description": "Parent story id."
          },
          "order_index": {
            "type": "integer",
            "description": "Zero-based reading order. First panel is 0."
          },
          "image_url": {
            "type": "string",
            "description": "HTTPS URL of this panel image."
          },
          "prompt": {
            "type": "string",
            "description": "Stored user prompt for this panel."
          },
          "ref_role": {
            "type": "string",
            "description": "Default continue slot: identity, scene, or null if unused."
          }
        }
      }
    },
    "hint": {
      "type": "string",
      "description": "How to override Image 1 and Image 2 on continue or regenerate."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "required": [
    "panels"
  ]
}
🟢manga.list_stories(limit)

List stories you own, newest first. Call this when you lost story_id after context compaction so you can resume with manga.continue_story. Optional limit is an integer from 1 to 50 (default 20).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Max stories to return. Integer from 1 to 50. Default 20. Omit to use the default."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "stories": {
      "type": "array",
      "description": "Owned active stories, newest updated_at first.",
      "items": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Story id. Pass as story_id on manga.continue_story."
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Story title. Null when the story was never named."
          },
          "visibility": {
            "type": "string",
            "description": "private or public. Defaults to private."
          },
          "panelCount": {
            "type": "integer",
            "description": "How many panels this story currently has."
          },
          "style_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Locked art style id from create. Do not send it on continue."
          },
          "language": {
            "type": [
              "string",
              "null"
            ],
            "description": "Story language code when stored."
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO created timestamp, or null if missing."
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "ISO updated timestamp, or null if missing."
          },
          "cover_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cover image HTTPS URL when the story has one."
          }
        }
      }
    },
    "next_step": {
      "type": "string",
      "description": "What to call next. Follow this instead of guessing."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "required": [
    "stories",
    "next_step"
  ]
}
⚪manga.create_story(prompt, style_id, quality, title, reference_image, ...)

Start a new private manga (panel 1). Required: prompt + style_id from manga.list_styles. Optional identity_image or reference_image is Image 1. Style locks. Default async=false returns image_url, story_id, panel_id. Then manga.continue_story. Costs 1/2/5 credits by quality.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "Scene in everyday language: characters, place, action, mood, camera, weather, color or black-and-white. Example: \"A duel under cherry blossoms, low angle, rain, full color.\" Max 2000 characters."
    },
    "style_id": {
      "type": "string",
      "description": "Canonical style id from manga.list_styles. Example: classic_shonen or cinematic_anime. Locked after panel 0."
    },
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Generation quality. standard costs 1 credit, hd 2, ultra 5. Default standard. HD/Ultra need an unlocked API wallet."
    },
    "title": {
      "type": "string",
      "description": "Optional story title shown in the library. Example: \"Rain Duel\". Omit to let Mangii name it."
    },
    "reference_image": {
      "type": "string",
      "description": "Optional first-panel identity photo. https URL or data URI. Alias of identity_image."
    },
    "identity_image": {
      "type": "string",
      "description": "Replacement photo: https URL or data:image/...;base64,... URI. Public hosts only. Same slot cannot also send a panel id."
    },
    "async": {
      "type": "boolean",
      "description": "On this MCP server the default is false: wait and return image_url in one call. Set true only if you will poll manga.get_job. HTTP API default remains async."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional. Reuse the same key on retry so a timeout does not charge twice. 8-200 chars. Omit to mint a one-shot key (unsafe on retry).",
      "minLength": 8,
      "maxLength": 200
    }
  },
  "required": [
    "prompt",
    "style_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Created or existing story id."
    },
    "panel_id": {
      "type": "string",
      "description": "Generated or regenerated panel id."
    },
    "image_url": {
      "type": "string",
      "description": "HTTPS URL of the finished panel when async is false and generation succeeded."
    },
    "job_id": {
      "type": "string",
      "description": "Async job id when async is true or the work is still running."
    },
    "request_id": {
      "type": "string",
      "description": "Request correlation id."
    },
    "credits_charged": {
      "type": "integer",
      "description": "API credits billed for a successful generation."
    },
    "credits_remaining": {
      "type": "integer",
      "description": "Remaining spendableCredits after the call (apiPack plus packCredits after a purchase)."
    },
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Quality used for this generation."
    },
    "next_step": {
      "type": "string",
      "description": "What the agent should call next. Follow this instead of guessing."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "description": "Completed panel, accepted job, or tool error."
}
🟡manga.continue_story(story_id, prompt, quality, identity_panel_id, identity_image, ...)

Add the next panel. Do not send style_id. Defaults: Image 1 = first panel (identity), Image 2 = last distinct panel (scene). Override via manga.list_panels then identity_panel_id or identity_image and/or continuity_panel_id or continuity_image. Same credit costs as create.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Story id from manga.create_story. Example: a Firestore story document id returned as story_id."
    },
    "prompt": {
      "type": "string",
      "description": "Scene in everyday language: characters, place, action, mood, camera, weather, color or black-and-white. Example: \"A duel under cherry blossoms, low angle, rain, full color.\" Max 2000 characters."
    },
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Generation quality. standard costs 1 credit, hd 2, ultra 5. Default standard. HD/Ultra need an unlocked API wallet."
    },
    "identity_panel_id": {
      "type": "string",
      "description": "Override Image 1 (identity) with this panel id from manga.list_panels. Do not also send identity_image."
    },
    "identity_image": {
      "type": "string",
      "description": "Replacement photo: https URL or data:image/...;base64,... URI. Public hosts only. Same slot cannot also send a panel id."
    },
    "reference_image": {
      "type": "string",
      "description": "Alias for identity_image. Replaces Image 1 with an uploaded photo or URL."
    },
    "continuity_panel_id": {
      "type": "string",
      "description": "Override Image 2 (scene) with this panel id from manga.list_panels. Do not also send continuity_image."
    },
    "continuity_image": {
      "type": "string",
      "description": "Replacement Image 2 (scene) photo: https URL or data URI. Do not also send continuity_panel_id."
    },
    "context_panel_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Legacy list override [identity_panel_id, scene_panel_id]. Ignored when identity_* or continuity_* fields are set. Prefer those named slots."
    },
    "async": {
      "type": "boolean",
      "description": "On this MCP server the default is false: wait and return image_url in one call. Set true only if you will poll manga.get_job. HTTP API default remains async."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional. Reuse the same key on retry so a timeout does not charge twice. 8-200 chars. Omit to mint a one-shot key (unsafe on retry).",
      "minLength": 8,
      "maxLength": 200
    }
  },
  "required": [
    "story_id",
    "prompt"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Created or existing story id."
    },
    "panel_id": {
      "type": "string",
      "description": "Generated or regenerated panel id."
    },
    "image_url": {
      "type": "string",
      "description": "HTTPS URL of the finished panel when async is false and generation succeeded."
    },
    "job_id": {
      "type": "string",
      "description": "Async job id when async is true or the work is still running."
    },
    "request_id": {
      "type": "string",
      "description": "Request correlation id."
    },
    "credits_charged": {
      "type": "integer",
      "description": "API credits billed for a successful generation."
    },
    "credits_remaining": {
      "type": "integer",
      "description": "Remaining spendableCredits after the call (apiPack plus packCredits after a purchase)."
    },
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Quality used for this generation."
    },
    "next_step": {
      "type": "string",
      "description": "What the agent should call next. Follow this instead of guessing."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "description": "Completed panel, accepted job, or tool error."
}
🟡manga.regenerate_panel(story_id, panel_id, prompt, quality, identity_panel_id, ...)

Redraw or edit one panel. Style stays locked. Same Image 1 / Image 2 ref overrides as manga.continue_story. Get ids from manga.list_panels. Costs the same credits as a new panel.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Story id from manga.create_story. Example: a Firestore story document id returned as story_id."
    },
    "panel_id": {
      "type": "string",
      "description": "Panel id from a previous generate result or manga.list_panels. Example: the panel_id returned by manga.create_story."
    },
    "prompt": {
      "type": "string",
      "description": "Optional rewrite of the scene. Same prompt rules as create. Omit to retry the stored prompt."
    },
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Generation quality. standard costs 1 credit, hd 2, ultra 5. Default standard. HD/Ultra need an unlocked API wallet."
    },
    "identity_panel_id": {
      "type": "string",
      "description": "Override Image 1 (identity) with this panel id from manga.list_panels. Do not also send identity_image."
    },
    "identity_image": {
      "type": "string",
      "description": "Replacement photo: https URL or data:image/...;base64,... URI. Public hosts only. Same slot cannot also send a panel id."
    },
    "reference_image": {
      "type": "string",
      "description": "Alias for identity_image. Replaces Image 1 with an uploaded photo or URL."
    },
    "continuity_panel_id": {
      "type": "string",
      "description": "Override Image 2 (scene) with this panel id from manga.list_panels. Do not also send continuity_image."
    },
    "continuity_image": {
      "type": "string",
      "description": "Replacement Image 2 (scene) photo: https URL or data URI. Do not also send continuity_panel_id."
    },
    "context_panel_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Legacy list override [identity_panel_id, scene_panel_id]. Ignored when identity_* or continuity_* fields are set. Prefer those named slots."
    },
    "async": {
      "type": "boolean",
      "description": "On this MCP server the default is false: wait and return image_url in one call. Set true only if you will poll manga.get_job. HTTP API default remains async."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional. Reuse the same key on retry so a timeout does not charge twice. 8-200 chars. Omit to mint a one-shot key (unsafe on retry).",
      "minLength": 8,
      "maxLength": 200
    }
  },
  "required": [
    "story_id",
    "panel_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "story_id": {
      "type": "string",
      "description": "Created or existing story id."
    },
    "panel_id": {
      "type": "string",
      "description": "Generated or regenerated panel id."
    },
    "image_url": {
      "type": "string",
      "description": "HTTPS URL of the finished panel when async is false and generation succeeded."
    },
    "job_id": {
      "type": "string",
      "description": "Async job id when async is true or the work is still running."
    },
    "request_id": {
      "type": "string",
      "description": "Request correlation id."
    },
    "credits_charged": {
      "type": "integer",
      "description": "API credits billed for a successful generation."
    },
    "credits_remaining": {
      "type": "integer",
      "description": "Remaining spendableCredits after the call (apiPack plus packCredits after a purchase)."
    },
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Quality used for this generation."
    },
    "next_step": {
      "type": "string",
      "description": "What the agent should call next. Follow this instead of guessing."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "description": "Completed panel, accepted job, or tool error."
}
🟢manga.buy_credits(quality)

Return the Console billing URL so a human can fund apiPackCredits. Generate-scoped keys cannot create Checkout sessions. Call this after 402 insufficient_credits.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "quality": {
      "type": "string",
      "enum": [
        "standard",
        "hd",
        "ultra"
      ],
      "description": "Optional quality you plan to generate next. Included in the response as next_generation_credits so the human knows how many credits to buy."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "buy_url": {
      "type": "string",
      "description": "Absolute Console billing URL. Always https://mangii.ai/console/billing."
    },
    "credit_costs": {
      "type": "object",
      "description": "Credits charged per successful panel.",
      "properties": {
        "standard": {
          "type": "integer"
        },
        "hd": {
          "type": "integer"
        },
        "ultra": {
          "type": "integer"
        }
      }
    },
    "next_generation_credits": {
      "type": "integer",
      "description": "Credits needed for the requested quality, or null if quality was omitted."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  },
  "required": [
    "buy_url",
    "credit_costs"
  ]
}
🟢manga.get_job(job_id)

Poll a generation job from manga.create_story, manga.continue_story, or manga.regenerate_panel when async=true. Repeat until status is succeeded or failed. Prefer async=false so you do not need this tool.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Job id from a previous generate result. Example: job_ab12cd34."
    }
  },
  "required": [
    "job_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Job id."
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "succeeded",
        "failed"
      ],
      "description": "Job status."
    },
    "result": {
      "type": "object",
      "description": "Finished panel fields when status is succeeded."
    },
    "error": {
      "type": "string",
      "description": "Machine error code such as invalid_request, insufficient_credits, or quality_forbidden."
    },
    "next_step": {
      "type": "string",
      "description": "What to call next."
    },
    "message": {
      "type": "string",
      "description": "Human-readable error. Never includes stack traces or internal paths."
    }
  }
}

Prompts recomendados

retrieve_data
Get details about [item] from AI Manga & Anime Generator - Mangii MCP
Herramientas esperadas: manga.get_credits
fetch_info
Fetch [information type] using AI Manga & Anime Generator - Mangii MCP
Herramientas esperadas: manga.get_credits
list_items
List all [items] available in AI Manga & Anime Generator - Mangii MCP
Herramientas esperadas: manga.list_styles
browse_collection
Show me the [collection] from AI Manga & Anime Generator - Mangii MCP
Herramientas esperadas: manga.list_styles
explore_workflow
List available [items], then get details for each one using AI Manga & Anime Generator - Mangii MCP
Herramientas esperadas: manga.list_stylesmanga.get_credits

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada9 herramientas
verificadoversión no registrada9 herramientas