# Uwierzytelnianie API i połączeń MCP

Wywołania REST autoryzuj kluczem konta w nagłówku `X-Api-Key`. Klucz jest sekretem i zaczyna się od `lf_live_`. Nie przekazuj go jako parametru zapytania, w pytaniu do asystenta ani w treści zgłoszenia błędu. Konto, jego klucze i uprawnienia do wspólnej puli kredytów są sprawdzane przy wywołaniu.

Przykład nagłówka i działającego klienta znajdziesz w [szybkim starcie](quickstart.md). API przyjmuje również ten sam klucz jako `Authorization: Bearer`; wysyłaj jeden sposób uwierzytelniania. Powtórzone nagłówki lub sprzeczne dane są odrzucane. Klucz testowy operatora nie zastępuje tożsamości konta w operacjach obserwacji, rozmowy i rozliczeń.

## OAuth dla Claude i ChatGPT

W kliencie dodaj `https://mcp.agentdzialek.pl/mcp` i wybierz OAuth. Klient odkrywa ustawienia, rejestruje aplikację i otwiera zgodę w przeglądarce. Na stronie zgody landfeed podaj klucz swojego konta i zatwierdź dostęp. Do kolejnych wywołań MCP klient używa tokenu, a nie klucza w pytaniu.

| Method | Path |
| --- | --- |
| GET | /.well-known/oauth-protected-resource/mcp |
| GET | /.well-known/oauth-protected-resource |
| GET | /.well-known/oauth-authorization-server |
| POST | /register |
| GET | /authorize |
| GET, POST | /oauth/consent |
| POST | /token |
| POST | /revoke |


Uprawnienie to `landfeed:read`. Serwer wymaga przepływu authorization code z PKCE S256, dokładnego zarejestrowanego adresu przekierowania oraz parametru `resource` wskazującego odkryty zasób `/mcp`. Access token trwa godzinę, rotowany refresh token 30 dni. Ponowne użycie zużytego kodu lub starego refresh tokenu jest odrzucane. OAuth nie autoryzuje `/v1/ask`; tam użyj klucza konta.

Unieważnienie klucza lub konta odbiera również powiązany dostęp OAuth. W razie wycieku unieważnij klucz w mechanizmie zarządzania kontem, wydaj nowy i połącz klientów ponownie. Nie publikuj tokenów ani pełnych adresów callback zawierających kod.

## Gdy połączenie się nie uda

401 oznacza brak prawidłowego uwierzytelnienia. 403 wskazuje brak wymaganej tożsamości lub uprawnień. Przy `invalid_redirect_uri` klient i serwer muszą uzgodnić dokładny adres callback; dodanie URL w interfejsie nie zmienia polityki serwera. Przy `invalid_grant` rozpocznij logowanie od nowa. Pełna lista: [błędy](../../errors.md). Instrukcje dla klientów: [MCP](mcp-setup.md).

## Konto i klucze

`/v1/billing/account`, `/v1/account/ledger` i `/v1/account/usage` opisują uwierzytelnione konto. `/v1/account/keys` służy do listowania i tworzenia kluczy; DELETE `/v1/account/keys/{key_id}` unieważnia własny klucz, a POST `/v1/account/keys/{key_id}/rotate` go rotuje. Wartość sekretu jest zwracana tylko przy utworzeniu lub rotacji. Operacje konta są bezpłatne. Szczegóły stronicowania i uprawnień podaje referencja operacji.
