> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mora.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API keys

> Create and manage keys for MCP clients that can't sign in through a browser.

Most clients should connect with the [browser sign-in](/mcp/connect), it needs no key and refreshes itself. API keys exist for clients without that support, and for scripts.

## Creating a key

1. Open **Settings → API & MCP**.
2. Type a name that says where the key will be used (for example, "Edward's laptop").
3. Click **Create key**.
4. Copy the key from the banner that appears. It starts with `mora_`.

<Warning>
  The key is shown **once**. Mora stores only a hash of it, so it cannot be displayed again. If you lose it, revoke the key and create a new one.
</Warning>

## Using a key

Pass the key as a bearer token in the `Authorization` header:

```json theme={null}
{
  "mcpServers": {
    "mora": {
      "url": "https://api.mora.com/api/mcp",
      "headers": { "Authorization": "Bearer mora_abc123" }
    }
  }
}
```

In Claude Code:

```bash theme={null}
claude mcp add --transport http mora https://api.mora.com/api/mcp \
  --header "Authorization: Bearer $MORA_API_KEY"
```

<Tip>
  Reference an environment variable instead of pasting the key, so it stays out of your shell history and out of any config file you commit.
</Tip>

## What a key can do

* A key is bound to the organization that was active when you created it, and it acts as **you**: your organization's shared datasets and dashboards, plus your own private datasets.
* A key **cannot** sign in to the Mora web app, and it cannot read datasource credentials, billing, or member settings.
* Keys are rate limited to 120 requests per minute. Beyond that, calls are rejected until the next minute.
* Creating a key for an organization you are not a member of is rejected, and every request re-checks your membership.

## Managing keys

**Settings → API & MCP** lists the keys created for the current organization.

* **Rename**: click the key's name, edit it, and press **Enter**.
* **Revoke**: use the revoke action on the row. The key stops working immediately, and any agent using it loses access on its next call.

Keys have no expiry, so revoke the ones you no longer recognize. If a key may have leaked, revoke it and create a replacement rather than relying on the rate limit.

## Related

* [Connect an agent](/mcp/connect)
* [MCP overview](/mcp/overview)
* [Tool reference](/mcp/tools)
