> For the complete documentation index, see [llms.txt](https://mcp-test-kitchen-docs.cakewalk.security/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mcp-test-kitchen-docs.cakewalk.security/reference/endpoint-and-auth.md).

# Endpoint and Authentication

The endpoint, the transport, how the bearer token works and what the server does when it rejects you.

Everything on this page is fixed. There is nothing to configure on the server side.

***

## The Endpoint

```
POST https://mcp-test-server.cakewalk.security/mcp
```

One path carries the whole protocol. Streamable HTTP, no stdio option.

The transport runs stateless, so the server does not issue an `Mcp-Session-Id` and your client does not need to carry one. The scenario session that holds your invocation counters is a separate thing, keyed to your account rather than to a transport session. See [How Scenarios Work](/scenarios/scenarios.md#a-selection-applies-to-your-next-session).

The console and its management API live under the same host on `/console` and `/api/management/*`, authenticated by cookie rather than by token. You never call those from an MCP client.

***

## Protocol Revisions

The server serves **2026-07-28**, the revision that carries native multi round trip requests. Clients on the older **2025-11-25** revision connect through the initialize back compatibility path and work for every scenario except the parts of `compat.sdk_v2` that need the newer path.

The record keeps the revision your client declared on each request, shown on the entry card and in the detail drawer. That is the value to check when a client behaves differently from its documentation.

***

## The Bearer Token

Your personal access token is issued in the console, behind the lock icon in the header. It starts with `mcp_`.

```
Authorization: Bearer mcp_...
```

| Property  | Behavior                                                                                              |
| --------- | ----------------------------------------------------------------------------------------------------- |
| Scope     | One token per account. It identifies you to the server and scopes your record                         |
| Storage   | Encrypted at rest, returned to you only through the console                                           |
| Rotation  | **Regenerate** issues a new token and invalidates the previous one immediately                        |
| Recording | `Authorization` sits outside the header allowlist, so the token itself is never written to the record |

Sign in to the console with Google or GitHub. Both reach the same console and the same token.

***

## No OAuth Flow

The server publishes no OAuth metadata: no protected resource document, no authorization server document and no `WWW-Authenticate` challenge on a rejection. A 401 comes back bare.

The consequence is a hard requirement on your client. It has to let you set an `Authorization` header on a remote MCP server. A client that can only add a remote server by walking an OAuth sign in flow has no way in.

***

## What Returns 401

Three cases, all identical from your client's side.

* No `Authorization` header.
* An `Authorization` header that does not start with `Bearer` .
* A bearer token that does not validate, which includes a token invalidated by **Regenerate** or removed by **Erase everything**.

{% hint style="warning" %}
A rejected request is recorded and you cannot see it. The server writes the observation before it checks the token, but a request that failed authentication has no account attached, and the Messages pane only shows entries attributed to you. An empty pane while your client reports 401 is the expected result, not a second fault.
{% endhint %}

Debug a 401 from your client's side. The record has nothing to add.

***

## Rate Limits

Fixed windows, no queueing. Exceeding one returns **429** immediately.

| Surface                   | Limit                   | Counted per       |
| ------------------------- | ----------------------- | ----------------- |
| `/mcp`                    | 120 requests per minute | Client IP address |
| Token read and regenerate | 30 requests per minute  | Account           |
| Feedback                  | 5 per ten minutes       | Account           |
| Erase everything          | 5 per ten minutes       | Account           |

The MCP endpoint counts by IP address rather than by token, so an office or a CI runner sharing an outbound address shares the budget.

A 429 on `/mcp` reaches your record, because the limiter runs after authentication. It appears with a numeric **429** badge rather than a green **OK**.

***

## Where It Runs

The service is hosted and the source is not public today. What the server keeps, redacts and deletes is in [Data Handling](/reference/data-handling.md).
