Skip to main content

Developers / Docs

MCP server

Let Claude, Cursor, and other AI agents create tattoo designs with the Ink Studio AI MCP server.

Markdown version

Start the server

npx -y inkstudioai mcp runs a Model Context Protocol server over standard input and output. It supports MCP protocol versions 2025-06-18 and 2024-11-05.

Tools

ToolWhat it does
loginSign in from the chat. Returns a link and a code to approve in the browser.
generate_tattooCreate a design from a prompt, style, color, and background. Returns the image.
list_stylesList the style ids.
get_accountShow the plan, free designs, credits, and usage.
search_gallerySearch the public gallery.
get_pricingList plans and credit packs.
create_checkoutCreate a Stripe checkout link for the user to open. It charges nothing by itself.

Sign in

  • From the chat: ask the agent to sign you in. It calls the login tool and gives you a link and a code. Approve the code in the browser, then tell the agent. It calls login again and saves the API key.
  • From a terminal: run npx inkstudioai login. The MCP server uses the same saved key.
  • With a key: create a key on your account page and set INKSTUDIO_API_KEY in the client config. This key comes before the saved key.

The server reads the saved key on each tool call, so a login while the client runs needs no restart.

Claude Code

claude mcp add inkstudioai -- npx -y inkstudioai mcp

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "inkstudioai": {
      "command": "npx",
      "args": ["-y", "inkstudioai", "mcp"],
      "env": { "INKSTUDIO_API_KEY": "isk_..." }
    }
  }
}

Cursor

Add the same block to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project. Windsurf and other MCP clients use the same command, arguments, and environment variable. You can leave out env and sign in with the login tool.

Results

generate_tattoo returns the image URL as text. It also returns the image itself when it is smaller than 1.5 MB, and on protocol 2025-06-18 a resource_link to the image. It sends notifications/progress messages when the client gives a progressToken.