Kiro · .kiro/settings/mcp.json · hot reload

Image generation in Kiro: MCP server setup

Put an mcpServers entry with url and headers in .kiro/settings/mcp.json for one workspace or ~/.kiro/settings/mcp.json for all of them — Kiro hot-reloads the file on save. Kiro works from specs, which means it tends to know what an image is for before it needs one. That is the best possible input for a generation call, and the reason the tools land well here.

By the imagemcpserver.com teamPublished Kiro docs checked September 2026

Add the server

Where the config lives
.kiro/settings/mcp.json (workspace, wins) · ~/.kiro/settings/mcp.json (user)
The key it nests under
mcpServers
  1. 1

    Create an API key. Create a key in the imagemcpserver dashboard.

  2. 2

    Choose workspace or user scope. Use .kiro/settings/mcp.json for one project, ~/.kiro/settings/mcp.json for all.

  3. 3

    Add the remote entry. Set url to the endpoint and pass the key as an x-api-key header.

  4. 4

    Save — no restart needed. Kiro watches the file and reloads the server configuration on save.

kiro · recommendeduse this
{
  "mcpServers": {
    "imagemcp": {
      "url": "https://mcp.imagemcpserver.com/mcp",
      "headers": { "x-api-key": "sk-img-gen-…" },
      "autoApprove": [
        "get_user_info", "list_models",
        "compress_image", "convert_format"
      ],
      "disabled": false
    }
  }
}
Narrow the tool surface
// disabledTools removes individual tools from the
// model's view without disconnecting the server.
{
  "mcpServers": {
    "imagemcp": {
      "url": "https://mcp.imagemcpserver.com/mcp",
      "headers": { "x-api-key": "sk-img-gen-…" },
      "disabledTools": ["upscale_image", "multicall"],
      "autoApprove": ["get_user_info", "list_models"]
    }
  }
}

Two files, merged, workspace first

Kiro reads both the workspace and the user file and merges them, with the workspace copy taking precedence where they collide. That is convenient until you forget a stale workspace entry is shadowing the global one. A file watcher picks up saves to either, so there is no restart step — but also no obvious signal about which file won.

The endpoint and the key are identical in every client. The wrapper around them is not, and that wrapper is where almost every “correct” config that does nothing goes wrong. Checked September 2026 against Kiro’s own documentation — see the sources below.

Three ways to send the key

The server resolves your API key from any of these, checked in this order. That matters when a client only gives you a URL field and no way to set a header — you are not stuck, and you do not need a bridge process.

Query parameter

?apikey=sk-img-gen-…

Checked first. The fallback for a client whose config is a bare URL field.

x-api-key header

x-api-key: sk-img-gen-…

The documented default, and what every client below uses unless noted.

Authorization header

Authorization: Bearer sk-img-gen-…

Accepted as a bearer token, which is what a client with only a token field will send.

A key in a query string ends up in shell history, process listings and any log the client keeps, so prefer a header where the client allows one. Where it does not, treat the whole URL as the secret and rotate it as freely as you would a password.

What each tool costs

Wherever Kiro lets you approve tools individually, the useful line to draw is not between image tools and other tools — it is between calls with a fixed price and calls that route to a model.

get_user_infolist_models

free

Safe to auto-approve wherever the client supports it. These are how the agent finds out what it can afford before it spends anything.

compress_imageconvert_format

1 credit

Deterministic and cheap. Auto-approving these makes an optimisation pass over a whole folder painless.

remove_backgroundtext_to_svgupscale_image

5–15 credits

Fixed prices, no model routing. Auto-approve once you trust the workflow.

generate_imageedit_imagegenerate_transparent_imagemulticall

model-priced

These route to an image model and are the ones that can run up a bill in a loop. Keep approval on.

Kiro questions

Where does Kiro store MCP configuration?

Two places. .kiro/settings/mcp.json inside a workspace, and ~/.kiro/settings/mcp.json for your user. Both are read and merged; the workspace file takes precedence when the same server name appears in both.

Does Kiro support remote MCP servers?

Yes. A remote server takes url and headers, plus optional oauth, autoApprove, disabledTools and disabled. Local servers use command and args instead. Checked September 2026.

Do I have to restart Kiro after editing mcp.json?

No. A file watcher monitors the mcp.json files and reloads the configuration when you save, so changes apply to the next message.

Can I hide some of the tools?

disabledTools takes a list of tool names to withhold from the model while leaving the server connected. Useful for keeping the expensive tools out of reach on a given project.

Why is my user-level config being ignored?

Almost always a workspace file shadowing it. If .kiro/settings/mcp.json defines a server with the same name, that one wins and the user entry is never used.