# Claude Code quickstart

> Add the hosted vvgen MCP server to Claude Code, by signing in or with an API key.

Three ways in. Pick the first that fits.

## Already added on claude.ai?

If you added the [Claude connector](https://vincevangen.com/docs/quickstart/claude.md) and Claude Code is signed in with the same Claude
subscription, there is nothing to do. Run `/mcp` in Claude Code and look for `claude.ai vincevangen`. Run `/status` to see how
Claude Code is signed in: with an Anthropic API key, claude.ai connectors aren't loaded.

## Sign in, no API key

```bash
claude mcp add -s user --transport http vvgen https://api.vincevangen.com/mcp
```

Then, inside Claude Code, run `/mcp`, pick `vvgen` and sign in with your vincevangen account in the browser that
opens. If you don't have an account yet, the first sign-in creates one with the free sign-up credits. Calls are
charged to that account.

The sign-in page says it will redirect you to `localhost` and a port number. That is Claude Code on your own
computer receiving the sign-in. The port changes each time.

You can also ask Claude Code to run the command for you. Adding a server always needs the command or a config file;
`/mcp` signs in and lists servers but doesn't add them.

## With an API key (CI, scripts, teams)

Use a key where nobody can sign in through a browser. Create one in the [dashboard](https://vincevangen.com/app/keys); it starts with
`igk_live_` and is shown once.

### 1. Keep the key in your environment

```bash
export VINCEVANGEN_API_KEY="igk_live_..."
```

Put that line in your shell profile so every session has it. Do not paste the key into a file you commit.

### 2. Register the server (once, all projects)

```bash
claude mcp add -s user --transport http vvgen https://api.vincevangen.com/mcp \
  --header "Authorization: Bearer $VINCEVANGEN_API_KEY"
```

`-s user` makes it available in every project. Use `-s project` to share the server with a team through
`.mcp.json` (then reference the variable instead of the literal key, see below).

Check it:

```bash
claude mcp list
```

`vvgen` should show as connected. Inside Claude Code, `/mcp` lists the tools.

## Ask for an asset

> Make a 16:9 hero photo for a developer tool: a lighthouse made of stacked server racks at dusk.

Claude calls [`vvgen_generate_image`](https://vincevangen.com/docs/tools.md#vvgen_generate_image) once, on the Final tier. The result
carries ids, a file link and one small preview, never the full image. Ask for the full-size file and Claude calls
[`vvgen_get_file`](https://vincevangen.com/docs/tools.md#vvgen_get_file). Add "show me a few options first" and Claude drafts four on
`fast`, shows the contact sheet and finishes the one you pick with `from_draft`.

## Sharing the config with a team

`.mcp.json` supports environment expansion, so the key never enters git:

```json
{
  "mcpServers": {
    "vvgen": {
      "type": "http",
      "url": "https://api.vincevangen.com/mcp",
      "headers": { "Authorization": "Bearer ${VINCEVANGEN_API_KEY}" }
    }
  }
}
```

## Teach the agent to prompt

The server ships its own usage instructions. The [prompting](https://vincevangen.com/docs/guides/prompting.md),
[QA](https://vincevangen.com/docs/guides/qa.md) and [assets](https://vincevangen.com/docs/guides/assets.md) guides hold the longer playbook; paste the parts you
want into your project's `CLAUDE.md`.

## Troubleshooting

| Symptom | Cause |
|---|---|
| "You already have an account with this email address" or "An account already uses this inbox" | Your inbox already has an account under another spelling of the address. Run `/mcp`, clear the sign-in for `vvgen` and sign in with the address the message shows. |
| `email_unverified` after signing in | You haven't entered the code from the sign-in email yet. Finish signing in, then run `/mcp` again. |
| `401 invalid_key` | The variable is empty in the shell Claude Code started from, or the key was revoked. |
| `402 insufficient_credits` | Balance is below the estimate. Top up in the dashboard. |
| Tool list is empty | Restart Claude Code after `claude mcp add`. |

More in [Concepts](https://vincevangen.com/docs/concepts.md#errors).
