# Claude Code

Claude Code connects to the Passion MCP in one of two ways:

- **Sign in with your Passion account.** Best when you use Claude Code yourself.
- **An API key.** Best for a script, a CI job or a shared machine, where nobody can sign in in a
  browser.

[Claude Code](https://code.claude.com/docs) must be installed.

## Connect with sign-in

1. Run this command:

   ```sh
   claude mcp add --transport http passion https://api.passion.io/mcp
   ```

   To use Passion in every project, add `--scope user` after `add`.

2. Start Claude Code and type `/mcp`. Choose `passion` and follow the steps. Your browser opens
   a Passion page.
3. If you are not signed in to Passion Studio, sign in.
4. Tick the Apps Claude Code may use. Choose **Read only** or **Full access**, then click
   **Allow**.
5. Go back to Claude Code. `/mcp` shows `passion` as connected.

Passion asks for these choices each time you sign in. To sign out, choose **Clear
authentication** for `passion` in `/mcp`, or revoke Claude Code in Passion Studio under
**Settings › Integrations › Connected apps**.

## Connect with an API key

You need an API key that starts with `psn_key_`. See [API keys](/guides/api-keys/). A read key
is enough to ask questions; a full key also lets Claude Code make changes, such as posting to
a community.

1. Run this command. Put your key in place of `psn_key_…`:

   ```sh
   claude mcp add --transport http passion https://api.passion.io/mcp \
     --header "Authorization: Bearer psn_key_…"
   ```

   This adds the server for the current project, on your computer only. To use Passion in every
   project, add `--scope user` after `add`.

   Do not use `--scope project`. It writes the key into `.mcp.json`, a file that is usually
   committed and shared.

2. Start Claude Code and type `/mcp`. The list shows `passion` as connected.

3. Ask a question, for example:

   > Give me an overview of my App.

   Claude Code calls the `get_app_overview` tool and answers.

## Make changes

With full access, Claude Code can also use the tools that make changes, for example
`post_to_community`. Claude Code asks for your permission before it runs a Passion tool, unless
you allowed that tool before. Read what it will post before you agree.

## Remove the connection

```sh
claude mcp remove passion
```

This removes the server, and the sign-in or the key, from Claude Code. A key still works until
you revoke it in Passion Studio.

## When it does not connect

| You see | Do this |
| --- | --- |
| `401` or "The API key is missing, unknown or revoked." | With a key: check that the header is exactly `Authorization: Bearer psn_key_…`, with no extra spaces or quotes. With sign-in: in `/mcp`, choose `passion` and sign in again. |
| A tool says "This key does not give access to this App." | The key or the sign-in does not reach that App. Get a key for it, or sign in again and tick it. |
| No tool that makes changes | You have read access. Get a full key, or sign in again and choose **Full access**. |
| "This sign-in has expired. Start it again from the app." | Start the sign-in again from `/mcp`. Finish in the same browser. |