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

# Authentication

> How Rime's MCP server resolves API keys: accepted headers, per-request handling, and which tools work without a key.

The MCP server is stateless and never stores your credentials; it reads your API key from each request and forwards it to the Rime API. Get a key from the [API Tokens page](https://app.rime.ai/tokens); it's the same key you use for the [REST API](/docs/api-authentication).

## Accepted headers

Two headers are accepted, checked in this order:

| Header                        | Notes                                                                       |
| ----------------------------- | --------------------------------------------------------------------------- |
| `Authorization: Bearer <key>` | Preferred                                                                   |
| `X-Rime-Api-Key: <key>`       | Convenience alternative for clients that reserve the `Authorization` header |

## Tools that work without a key

| Tool                                                          | API key      |
| ------------------------------------------------------------- | ------------ |
| [`list_voices`](/mcp-reference/list-voices)                   | Not required |
| [`get_voice_details`](/mcp-reference/get-voice-details)       | Not required |
| [`generate_integration`](/mcp-reference/generate-integration) | Not required |
| [`check_dictionary`](/mcp-reference/check-dictionary)         | Required     |
| [`normalize_text`](/mcp-reference/normalize-text)             | Required     |
| [`synthesize_speech`](/mcp-reference/synthesize-speech)       | Required     |

If you call a key-gated tool without a key, the MCP server returns a pointer to [sign up](https://app.rime.ai/signup/) rather than an error. Without a key you can still explore the catalog and generate integration code.

<Note>[`synthesize_speech`](/mcp-reference/synthesize-speech) calls the Rime API with your key, so generated samples consume credits like any other API request.</Note>
