AI Manga & Anime Generator - Mangii MCP

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
98%
Vollständigkeit des Schemas
96%
Qualität der Benennung
50%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (9)

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

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,413Tokens (Tool-Definitionen)
~5.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.45% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

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

Remote-Endpunkte

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

Was es kann

Tool-Inventar

Tools (9)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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."
    }
  }
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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."
    }
  }
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
  ]
}

Ausgabe-Schema

{
  "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).

Eingabe-Schema

{
  "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."
    }
  }
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
  ]
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
  ]
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
  ]
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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."
    }
  }
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

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

Ausgabe-Schema

{
  "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."
    }
  }
}

Empfohlene Prompts

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

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet9 Tools
verifiziertVersion nicht aufgezeichnet9 Tools
verifiziertVersion nicht aufgezeichnet9 Tools