Generate images and videos with Seedream, GPT Image, Nano Banana, Kling and Seedance on one key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer <your key>. Create a key at https://keelrouter.com/console/keys
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Generate an image with a KeelRouter model. Spends real USD from the account balance at the price in list_models (from under $0.01 per image; higher resolutions cost more); failed calls are not charged. Waits up to 50 seconds; if not done, returns task_id for get_result. Result links are valid for a limited time.
Model id from list_models.
Other request fields for this model, as listed in list_models params (e.g. aspect_ratio, resolution, image_urls, duration).
Reuse the same key when retrying so the task is not created or charged twice.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http keelrouter https://api.keelrouter.com/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer <your key>. Create a key at https://keelrouter.com/console/keysGenerate an image with a KeelRouter model. Spends real USD from the account balance at the price in list_models (from under $0.01 per image; higher resolutions cost more); failed calls are not charged. Waits up to 50 seconds; if not done, returns task_id for get_result. Result links are valid for a limited time.
| Argument | Type | Description |
|---|---|---|
| model* | string | Model id from list_models. |
| params | object | Other request fields for this model, as listed in list_models params (e.g. aspect_ratio, resolution, image_urls, duration). |
| prompt* | string | |
| idempotency_key | string | Reuse the same key when retrying so the task is not created or charged twice. |
{
"type": "object",
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"maxLength": 120,
"description": "Model id from list_models."
},
"params": {
"type": "object",
"description": "Other request fields for this model, as listed in list_models params (e.g. aspect_ratio, resolution, image_urls, duration).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"prompt": {
"type": "string",
"maxLength": 10000,
"minLength": 1
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_\\-:.]{1,100}$",
"description": "Reuse the same key when retrying so the task is not created or charged twice."
}
}
}Start a video with a KeelRouter model and return task_id right away; videos take one to several minutes. Spends real USD from the account balance at the price in list_models (usually per second; check before choosing duration and resolution); failed calls are not charged. Then call get_result.
| Argument | Type | Description |
|---|---|---|
| model* | string | Model id from list_models. |
| params | object | Other request fields for this model, as listed in list_models params (e.g. aspect_ratio, resolution, image_urls, duration). |
| prompt* | string | |
| idempotency_key | string | Reuse the same key when retrying so the task is not created or charged twice. |
{
"type": "object",
"required": [
"model",
"prompt"
],
"properties": {
"model": {
"type": "string",
"maxLength": 120,
"description": "Model id from list_models."
},
"params": {
"type": "object",
"description": "Other request fields for this model, as listed in list_models params (e.g. aspect_ratio, resolution, image_urls, duration).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"prompt": {
"type": "string",
"maxLength": 10000,
"minLength": 1
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_\\-:.]{1,100}$",
"description": "Reuse the same key when retrying so the task is not created or charged twice."
}
}
}USD balance on this KeelRouter account.
No arguments.
{
"type": "object",
"properties": {}
}Status of an image or video task. When completed: file links and the final cost in USD.
| Argument | Type | Description |
|---|---|---|
| task_id* | string |
{
"type": "object",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "string",
"maxLength": 100
}
}
}Image and video models on KeelRouter with their USD prices per tier and the request params each accepts. Free to call.
| Argument | Type | Description |
|---|---|---|
| kind | string |
{
"type": "object",
"properties": {
"kind": {
"enum": [
"image",
"video"
],
"type": "string"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.