Přejít na obsah

MCP

Stejné API, adresované asistentovi místo scénáři. Klient MCP si za běhu vybírá, co zavolat, podle popisů nástrojů — dosáhne tedy přesně tam, kam dosáhnou jeho přihlašovací údaje, a pod každým nástrojem leží volání veřejného API.

Jeden endpoint

Vše jde na POST /v1/mcp. Není co otevírat jako relaci ani co držet jako proud: GET a DELETE odpovídají 405 a každá zpráva je vlastní požadavek.

POST https://api.mosaqo.app/v1/mcp
Authorization: Bearer $MOSAQO_KEY
MCP-Protocol-Version: 2026-07-28

Obsluhovány jsou všechny revize protokolu od 2025-03-26 po 2026-07-28. Klient, který začne initialize, dostane očekávaný handshake; ten, který uvádí verzi u každého požadavku, je obsloužen takto.

Připojení klíčem API

Nejrychlejší cesta a správná pro nástroj, který provozujete sami. Každý klíč funguje jako bearer token a nabízené nástroje se ořežou na oprávnění toho klíče.

Většina klientů přijme blok jako tento:

{
  "mcpServers": {
    "mosaqo": {
      "type": "http",
      "url": "https://api.mosaqo.app/v1/mcp",
      "headers": { "Authorization": "Bearer $MOSAQO_KEY" }
    }
  }
}
curl -X POST https://api.mosaqo.app/v1/mcp \
  -H "Authorization: Bearer $MOSAQO_KEY" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/list" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'

Připojení přes OAuth

Pro konektor v cizím katalogu, kde se člověk klíče vůbec nedotkne. Objevování podle RFC 9728 a RFC 8414, klienti se registrují sami podle RFC 7591 a každá autorizace používá PKCE s S256.

curl https://api.mosaqo.app/.well-known/oauth-protected-resource
curl https://api.mosaqo.app/.well-known/oauth-authorization-server

Neautorizované volání samo řekne, kam jít a o co požádat:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="Mosaqo MCP",
  resource_metadata="https://api.mosaqo.app/.well-known/oauth-protected-resource",
  scope="qr:read analytics:read reviews:read exports:read"

Ten, kdo schvaluje, je přihlášen v Mosaqu, vybírá prostor, kterého se to týká, a může to jen tam, kde je vlastníkem nebo správcem — tatáž hranice, která rozhoduje, kdo smí vydat klíč API. Odpojit lze později v Bulk & API.

Co asistent umí

Oprávnění, která už znáte, beze změny. Nástroj, který přihlašovací údaje nedovolují, se v tools/list neobjeví a nezavolá se ani jménem — živou odpovědí pro každé spojení je tedy tools/list sám.

RozsahOpravňuje k
qr:readVýpisu a čtení QR kódů, složek a šablon
qr:writeVytváření, úpravám, přesměrování, publikaci, archivaci a mazání
exports:readStahování vykreslených karet
analytics:readAgregované analytice a jednotlivým skenováním
bulk:writeZakládání a čtení hromadných úloh
webhooks:writeSprávě odběrů webhooků
reviews:readMísta, průzkumy a jak si vedou — nikdy samotné odpovědi

Kam nikdy nedosáhne

Na to, co lidé napsali v průzkumu. reviews:read otevírá vaše místa, průzkumy a jak si vedou: počty, hodnocení, rozložení odpovědí u každé otázky. Věty, které návštěvník napsal, se tu nevracejí o nic víc než kdekoli jinde, kam přihlašovací údaje dosáhnou — ze stejného důvodu, z jakého události feedback.* nesou hodnocení a nikdy slova.

Smazání kódu. Trasa REST žádá napsané potvrzení, protože zničení přesměrování za vytištěným kódem nelze vzít zpět, a takové potvrzení asistent za někoho nedává. Místo toho je archivace, a ta se vrací.

Zápis je označen jako zápis. Nástroj, který něco mění, nese readOnlyHint: false, archivace nese destructiveHint: true — a právě to klienta zastaví, aby se před spuštěním zeptal člověka.