# MCP server

> For the complete documentation index, see [llms.txt](https://inkstudioai.com/developers/llms.txt). Every page has a markdown version: add `.md` to its URL.

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

## 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

| Tool | What it does |
| --- | --- |
| `login` | Sign in from the chat. Returns a link and a code to approve in the browser. |
| `generate_tattoo` | Create a design from a prompt, style, color, and background. Returns the image. |
| `list_styles` | List the style ids. |
| `get_account` | Show the plan, free designs, credits, and usage. |
| `search_gallery` | Search the public gallery. |
| `get_pricing` | List plans and credit packs. |
| `create_checkout` | Create 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](https://inkstudioai.com/account?view=api-keys) 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

```sh
claude mcp add inkstudioai -- npx -y inkstudioai mcp
```

## Claude Desktop

Add this to `claude_desktop_config.json`:

```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`.
