---
title: Serwer MCP
description: Podłącz asystentów AI i frameworki agentowe do 1Security przez Model Context Protocol - te same dane tylko do odczytu co w REST API, udostępnione jako typowane narzędzia z tymi samymi kluczami, zakresami i limitami.
icon: Bot
---

1Security ma wbudowany **serwer MCP** (Model Context Protocol), dzięki któremu
asystent AI - Claude, copilot zespołu SOC lub dowolny framework agentowy
obsługujący MCP - może odpytywać dane bezpieczeństwa Twojego tenanta
bezpośrednio. Serwer udostępnia te same dane tylko do odczytu co
[REST API](/pl/docs/reference/api), w postaci typowanych narzędzi: podłączony
asystent odpowie na pytanie „jakie wykrycia otwarto w tym tygodniu?", pobierze
ślad audytowy użytkownika albo dokument statusu zgodności - bez pisania
jakiegokolwiek konektora.

Serwer MCP i REST API to jedna powierzchnia. Te same klucze API, te same
zakresy, ta sama bramka planu, ten sam limit zapytań, te same kształty
odpowiedzi. Wywołanie narzędzia i odpowiadające mu zapytanie REST zwracają
identyczne dane.

## Punkt końcowy

Serwer używa transportu MCP **Streamable HTTP** i jest bezstanowy - każde
wywołanie to samodzielny cykl zapytanie-odpowiedź, bez nawiązywania sesji.

| Wdrożenie         | Punkt końcowy MCP                          |
| ----------------- | ------------------------------------------ |
| Chmura (SaaS)     | `https://api.1security.ai/api/v1/mcp`      |
| BYOC / On-Premise | `https://<twoj-host-1security>/api/v1/mcp` |

Obsługiwany jest wyłącznie `POST`. Nie ma strumienia powiadomień inicjowanych
przez serwer (`GET` zwraca `405`) - dokładnie tego oczekują bezstanowi klienci
MCP.

## Uwierzytelnianie

Uwierzytelniaj się tym samym
[kluczem API przypisanym do tenanta](/pl/docs/reference/api#uwierzytelnianie),
którego używa REST API, przekazanym jako token bearer:

```
Authorization: Bearer 1sec_live_…
```

Klucze tworzy się w panelu w **Ustawienia → API**. Zakresy klucza decydują o
tym, które narzędzia serwer zarejestruje: `tools/list` pokazuje wyłącznie to,
co klucz faktycznie może wywołać - klucz z samymi dziennikami zobaczy serwer z
samymi dziennikami.

W **tenancie demo** fragmenty konfiguracji w **Ustawienia → API → MCP**
zawierają już wspólny klucz demo (tylko do odczytu) - wklej je do klienta bez
zmian, aby wypróbować narzędzia na danych demo.

## Podłączenie klienta

Dla Claude Code:

```bash
claude mcp add 1security --transport http https://api.1security.ai/api/v1/mcp \
  --header "Authorization: Bearer $ONESEC_API_KEY"
```

Dla klientów konfigurowanych plikiem JSON (Claude Desktop przez `mcp-remote`,
frameworki agentowe, własne hosty):

```json
{
  "mcpServers": {
    "1security": {
      "type": "http",
      "url": "https://api.1security.ai/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer 1sec_live_…"
      }
    }
  }
}
```

Następnie poproś asystenta o wywołanie `ping` - zwróci tenanta, nazwę klucza i
zakresy, na które klucz wskazuje, co wyklucza najczęstsze błędy konfiguracji,
zanim zaczniesz na nim polegać.

<Callout type="warn">
  Punkt końcowy MCP jest przeznaczony dla **klientów działających po stronie
  serwera** (asystenci desktopowi, środowiska agentowe, usługi backendowe).
  Klientów MCP działających w przeglądarce blokuje polityka CORS API.
</Callout>

## Narzędzia

Każde narzędzie odpowiada jednemu punktowi końcowemu REST - te same parametry,
te same pola, ta sama paginacja. Wszystkie parametry i pola odpowiedzi opisuje
szczegółowo [referencja punktów końcowych](/pl/docs/reference/api).

| Narzędzie                 | Odpowiednik REST            | Zakres                 |
| ------------------------- | --------------------------- | ---------------------- |
| `ping`                      | `GET /ping`                 | brak                   |
| `list_tenants`              | `GET /tenants`              | brak                   |
| `list_logs`                 | `GET /logs`                 | `logs:read`            |
| `list_detections`           | `GET /detections`           | `detections:read`      |
| `get_detection`             | `GET /detections/{id}`      | `detections:read`      |
| `list_policy_scans`         | `GET /policy-scans`         | `policy-scans:read`    |
| `get_policy_scan`           | `GET /policy-scans/{id}`    | `policy-scans:read`    |
| `list_notifications`        | `GET /notifications`        | `notifications:read`   |
| `list_actions`              | `GET /actions`              | `actions:read`         |
| `list_security_alerts`      | `GET /security-alerts`      | `security-alerts:read` |
| `get_security_alert`        | `GET /security-alerts/{id}` | `security-alerts:read` |
| `list_users`                | `GET /users`                | `users:read`           |
| `get_user`                  | `GET /users/{id}`           | `users:read`           |
| `list_agents`               | `GET /agents`               | `agents:read`          |
| `get_agent`                 | `GET /agents/{id}`          | `agents:read`          |
| `list_files` / `get_file`   | `GET /files(/{id})`         | `files:read`           |
| `list_groups` / `get_group` | `GET /groups(/{id})`        | `groups:read`          |
| `list_sites` / `get_site`   | `GET /sites(/{id})`         | `sites:read`           |
| `list_apps` / `get_app`     | `GET /apps(/{id})`          | `apps:read`            |
| `list_devices` / `get_device` | `GET /devices(/{id})`     | `devices:read`         |
| `list_emails` / `get_email` | `GET /emails(/{id})`        | `emails:read`          |
| `list_licenses` / `get_license` | `GET /licenses(/{id})`  | `licenses:read`        |
| `list_sensitive_info_types` / `get_sensitive_info_type` | `GET /sensitive-info-types(/{id})` | `sensitive-info:read` |
| `get_agent_evidence_pack`   | `GET /evidence/agents`      | `evidence:read`        |
| `get_compliance_status`     | `GET /compliance/status`    | `evidence:read`        |
| `get_security_score`        | `GET /security-score`       | `evidence:read`        |
| `list_compliance_snapshots` | `GET /compliance/snapshots` | `evidence:read`        |

Wszystkie narzędzia mają adnotację tylko-do-odczytu (`readOnlyHint`), więc
hosty MCP, które wymagają zatwierdzania narzędzi zapisujących, mogą je
bezpiecznie zatwierdzać automatycznie. Nic, co udostępnia serwer MCP, nie może
niczego zmienić ani w 1Security, ani w Twoim tenancie Microsoft 365.

### Paginacja i filtry

Narzędzia listujące zwracają tę samą kopertę co REST API:

```json
{
  "data": [ … ],
  "pagination": { "nextCursor": "eyJvIjo1MH0", "hasMore": true, "limit": 50 }
}
```

Aby pobrać kolejną stronę, asystent przekazuje `nextCursor` z powrotem jako
argument `cursor`. Filtry przyjmujące wiele wartości używają łańcucha
rozdzielanego przecinkami (`"severity": "high,critical"`), znaczniki czasu to
ISO-8601 UTC - identycznie jak parametry zapytań REST, więc wszystko, co
[referencja API](/pl/docs/reference/api) mówi o filtrowaniu, obowiązuje
dosłownie.

## Ograniczenia

- **Tylko odczyt.** Nie ma narzędzi zapisujących; akcje naprawcze pozostają w
  panelu i w zasadach.
- **Ten sam limit zapytań co REST.** Wywołania narzędzi i zapytania REST
  korzystają z tego samego budżetu 600 zapytań na minutę na klucz.
- **Bezstanowość.** Brak subskrypcji i powiadomień push - asystent, który chce
  świeżych danych, wywołuje narzędzie ponownie.
- **Jeden tenant na połączenie.** Zwykły klucz jest związany ze swoim
  tenantem. [Klucz dla całej organizacji](/pl/docs/reference/api#klucze-dla-całej-organizacji-mssp)
  (MSSP) działa też tutaj: dodaj w konfiguracji klienta nagłówek `X-Tenant-Id`
  obok nagłówka `Authorization` - jeden wpis serwera MCP na tenanta, każdy ze
  wskazaniem innego tenanta (`list_tenants` zwraca identyfikatory).

## Dalej

<Cards>
  <Card
    title="Referencja API"
    href="/pl/docs/reference/api"
    description="Pełny kontrakt za każdym narzędziem: parametry, pola, kody błędów."
  />
  <Card
    title="Przewodnik integracji z SIEM"
    href="/pl/docs/guides/siem-integration"
    description="Wzorzec odpytywania, backfill oraz podłączenie do Sentinela, Splunka, QRadara lub Elastica."
  />
</Cards>
