Skip to content
Docs Introduction
Docs MCP server

KaroStudio via MCP

Connect Claude, Cursor, VS Code or any other MCP client to KaroStudio. Your assistant then creates images, icons and series right in the chat, always in your project's style.

MCP (Model Context Protocol) is an open standard that lets apps like Claude or ChatGPT use external tools as connectors. KaroStudio provides an MCP server. With it, your assistant sees your projects, reads your style and creates new results. Everything lands in your Collection, just like in the app.

  • Your style staysEvery image follows the rules of your project and template.
  • One sentence is enoughDescribe what you need. The assistant picks the tool.
  • Everything in the CollectionYou'll find the results in KaroStudio afterwards, too.

Getting started

Requirements#

  • A KaroStudio account with at least one project set up.
  • A plan that includes MCP access: [Plan with MCP access].
  • An assistant that supports MCP over HTTP, for example Claude, Claude Code, Cursor or VS Code.

Quickstart#

From zero to your first image in the chat in three steps.

  1. 1

    Create a token

    In KaroStudio, open your project, then Project settings and MCP. Choose Create token, give it a name (for example "Claude Lena") and pick the scopes.

  2. 2

    Connect your assistant

    Enter the server URL and token in your assistant. Step-by-step instructions for each client are under Connect your assistant.

    mcp.json
    {
      "mcpServers": {
        "karostudio": {
          "url": "https://mcp.karostudio.example/v1",
          "headers": { "Authorization": "Bearer <YOUR_TOKEN>" }
        }
      }
    }
  3. 3

    Give your first request

    Restart your assistant and type, for example:

    "Create 4 social posts in the Hafenküche style: summer at the harbor, boats, sun and sea."

Setup

Connect your assistant#

Choose your client. Replace <YOUR_TOKEN> with your token.

In Claude (web and desktop), add KaroStudio as a custom connector.

  1. Open Settings and choose Connectors.
  2. Click Add custom connector.
  3. Enter KaroStudio as the name and the server URL as the address.
  4. Sign in and share the project Claude may access.
Server URL
https://mcp.karostudio.example/v1

Tokens and scopes#

Each token belongs to one person and works for the projects you share when you create it. Grant only the scopes the assistant really needs. The token is sent in a header with every call:

HTTP header
Authorization: Bearer <YOUR_TOKEN>
  • projects:read
    See projects and templates
  • style:read
    Read the style and rules. Changing them isn't possible over MCP.
  • images:write
    Create, match, upscale and vectorize images
  • collection:read
    Find results in the Collection

Test the connection#

Ask your assistant about your projects. If the list shows up, you're connected.

"Which projects do I have in KaroStudio?"

To test without an assistant, use the MCP Inspector:

Terminal
npx @modelcontextprotocol/inspector

In the Inspector, choose Streamable HTTP as the transport, enter the server URL and set the Authorization header. All tools then show up under Tools.

Reference

Tools#

These are the tools the server provides. The assistant picks them on its own based on your request. You don't need to name them.

list_projects

projects:read

Shows every project this token can see. Usually the first call, so the assistant knows the project ID.

No parameters.

Call
{}
Response
{
  "projects": [
    { "id": "hafenkueche", "name": "Hafenküche", "style_version": 3, "templates": ["website-icons", "illustrations", "social-media"] }
  ]
}

get_style

style:read

Returns the basics of the project style (logo, colors, typography, icons) and, if given, the rules of a template.

  • projectstringyes
    Project ID, e.g. hafenkueche
  • templatestringno
    Template ID. Includes the template's own rules.
Call
{ "project": "hafenkueche", "template": "website-icons" }
Response
{
  "version": 3,
  "basics": {
    "colors": ["#5B12E8", "#0000E0", "#EC4D38", "#111111", "#FFFFFF", "#F0FF00"],
    "typography": { "heading": "Fraunces 600", "body": "Geist 400" },
    "icons": "Phosphor, Regular"
  },
  "rules": [
    { "rule": "strokes", "value": "Even, 2 px", "source": "template" },
    { "rule": "shapes", "value": "Soft, large radii", "source": "project" }
  ]
}

create_image

images:write

Creates an image or a series in the project's style. Results are saved to the Collection.

  • projectstringyes
    Project ID
  • templatestringyes
    Template whose rules apply, e.g. social-media
  • subjectsstring[]yes
    One entry per image. Several entries make a series.
  • style_guidestringno
    A specific style guide with format and margin. Otherwise the most used one.
  • formatstringno
    A different pixel size, e.g. 1080x1350
  • transparentbooleanno
    Remove the background. Default: false
Call
{
  "project": "hafenkueche",
  "template": "social-media",
  "subjects": ["Summer at the harbor", "Boats in the evening light", "Fish sandwiches on the pier"],
  "format": "1080x1350"
}
Response
{
  "job": "job_7f3c2a",
  "status": "succeeded",
  "images": [
    { "id": "img_01", "subject": "Summer at the harbor", "url": "https://…/img_01.png", "style_version": 3 }
  ]
}

match_photos

images:write

Adjusts existing photos to the project's photo look: light, color, contrast.

  • projectstringyes
    Project ID
  • imagesstring[]yes
    URLs or Collection IDs
  • strengthnumberno
    0 to 1, how strongly to match. Default: 0.7
Call
{ "project": "hafenkueche", "images": ["https://example.com/terrace.jpg"], "strength": 0.6 }
Response
{ "job": "job_91be04", "status": "succeeded", "images": [{ "id": "img_14", "url": "https://…/img_14.jpg" }] }

upscale_image

images:write

Enlarges an image without visible loss of quality.

  • imagestringyes
    URL or Collection ID
  • factornumberno
    2, 4 or 8. Default: 2
Call
{ "image": "img_01", "factor": 4 }
Response
{ "id": "img_01_x4", "url": "https://…/img_01_x4.png", "size": "4320x5400" }

vectorize_image

images:write

Turns logos, icons and illustrations into clean SVG files.

  • imagestringyes
    URL or Collection ID
  • colorsnumberno
    Maximum number of colors in the SVG. Default: from the style
Call
{ "image": "https://example.com/logo.png", "colors": 3 }
Response
{ "id": "img_22", "url": "https://…/img_22.svg", "paths": 48 }

convert_image

images:write

Converts an image from the Collection or a URL to another format. Ideal for websites: WebP or AVIF instead of large JPEGs.

  • imagestringyes
    URL or Collection ID
  • formatstringyes
    webp, avif, jpeg, png or svg
  • qualitynumberno
    40 to 100, only for webp, avif and jpeg. Default: 82
  • max_widthnumberno
    Width in pixels, aspect ratio is kept. Default: original width
Call
{ "image": "img_01", "format": "webp", "quality": 82, "max_width": 1920 }
Response
{ "id": "img_01_webp", "url": "https://…/img_01.webp", "size_before": "1.8 MB", "size_after": "412 KB" }

search_collection

collection:read

Finds past results by text, template or favorites, so the assistant can reuse them.

  • projectstringyes
    Project ID
  • querystringno
    Free text, e.g. boat
  • templatestringno
    Only this template
  • favoritesbooleanno
    Only favorites
  • limitnumberno
    Maximum number of results. Default: 20
Call
{ "project": "hafenkueche", "query": "boat", "favorites": true }
Response
{ "results": [{ "id": "a-boat", "name": "Boat in the harbor", "url": "https://…/a-boat.png" }] }

Resources#

Besides the tools, the assistant can read these resources, for example to bring your style along as context.

  • karostudio://projects
    All shared projects
  • karostudio://projects/{project}/style
    Basics of the project style
  • karostudio://projects/{project}/templates/{template}
    Rules and style guides of a template
  • karostudio://images/{id}
    A single result with preview and metadata

Prompt templates#

Ready-made templates your assistant offers as shortcuts (in Claude Code, for example, as slash commands).

  • create_series
    Plans matching subjects for the topic and creates the series
    project, template, topic, count
  • explain_style
    Sums up the style in plain words
    project
  • photo_matching
    Matches photos and upscales them if you want
    project, images

Error codes#

Errors come back as MCP errors with one of these codes and a clear message.

Example
{
  "isError": true,
  "content": [{ "type": "text", "text": "forbidden: This token can't use the project nordgarten." }]
}
  • unauthenticated
    Check the header: Authorization: Bearer followed by the token. If needed, create a new token.
    The token is missing, mistyped or revoked.
  • forbidden
    In the project settings under MCP, share the project and grant the scopes.
    The token can't use this project or tool.
  • project_not_found
    Call list_projects first and use the ID from there.
    The project ID doesn't exist.
  • rule_locked
    Adjust the job or unlock the rule in KaroStudio.
    The job conflicts with a locked rule.
  • quota_exceeded
    Check your plan in Account settings or try again later.
    Your quota for this period is used up.
  • rate_limited
    Wait a moment. The Retry-After header gives the seconds.
    Too many calls in a short time.
  • timeout
    Ask again later with the job ID. Nothing gets lost.
    The result is taking longer than expected.

Limits#

  • Calls per minute
    [Number] per token
  • Images per job
    [Number]
  • Uploaded image size
    [Size] MB per file
  • Quota
    Per your plan: [Plan]

In practice

Example prompts#

Copy and adapt them. Name the project and template so the assistant gets them right.

  • "Which projects do I have in KaroStudio?"
  • "Read the Hafenküche style and sum it up in three sentences."
  • "Create 4 social posts in the Hafenküche style: summer at the harbor, boats, sun and sea. Portrait 1080 × 1350."
  • "Create 12 icons for our website navigation with the Website Icons template."
  • "Match these three photos to our photo look and upscale them 4x."
  • "Turn our logo into an SVG with no more than three colors."
  • "Search the Collection for all favorites with boats."

Security#

  • Revoke tokensIn the project settings under MCP, you see every token with its last use and can revoke it right away.
  • Style is read-onlyThe style can't be changed over MCP. Locked rules always stay locked.
  • Shared projects onlyA token only sees the projects you picked when you created it.
  • Fully traceableEvery job shows up in the history with token name and time.

Troubleshooting#

The assistant shows no KaroStudio tools.

Fully restart the assistant. Then check that the server URL is exactly right and ends in /v1.

Error unauthenticated even though the token is right.

Check that the token is preceded by "Bearer " with a space and that no line breaks were copied along.

The images don't match the style.

Name the template in your request. Without a template, only the basics of the project style apply.

A job is stuck.

Ask for the status: "How far along is job job_7f3c2a?" Finished images are already in the Collection.

Still have questions? Write to us. We'll help you set things up.

Contact us