Wszystkie poradnikiPoradnik

Połączenie asystenta AI (MCP)

Jak pozwolić Claude, ChatGPT lub innemu agentowi pracować z Norką przez Model Context Protocol.

Norka obsługuje protokół MCP (Model Context Protocol). Po połączeniu asystenta można go zapytać „kto przyjeżdża w piątek?” albo poprosić „zarezerwuj Apartament 2 dla Nováków od 3 do 7 sierpnia”, a on to zrobi, z tymi samymi zasadami i powiadomieniami co aplikacja.

Adres serwera jest taki sam dla wszystkich klientów:

https://mcp.mojenorka.cz/mcp

1. Utworzenie tokenu API

  1. W Norce otworzyć Ustawienia → Tokeny API i kliknąć Utwórz token.
  2. Nazwać token według miejsca, w którym będzie używany (na przykład „Claude Desktop”), i wybrać zakres:
ZakresCo asystent może robić
odczytwidzieć kalendarz, pobyty, gości, nieopłacone pobyty i konfigurację
zapisdodatkowo rezerwować i zmieniać pobyty, przypisywać sprzątanie, wysyłać link do zameldowania
zarządzaniedodatkowo zmieniać konfigurację: obiekty, kody do drzwi, sezony, kalendarze
  1. Token wyświetla się tylko raz. Należy go skopiować; Norka przechowuje wyłącznie jego skrót. Token można w każdej chwili unieważnić.

Najlepiej zacząć od zakresu odczyt. Zapis lub zarządzanie warto nadać tokenowi dopiero wtedy, gdy wiadomo, do czego asystent go używa.

2. Dodanie serwera do klienta

Token wysyła się jako zwykły nagłówek Authorization: Bearer ….

Claude Desktop

Otworzyć Settings → Developer → Edit Config i dodać:

{
  "mcpServers": {
    "norka": {
      "url": "https://mcp.mojenorka.cz/mcp",
      "headers": { "Authorization": "Bearer nrk_…" }
    }
  }
}

Uruchomić ponownie Claude Desktop. Norka pojawi się wśród narzędzi.

Claude Code

claude mcp add --transport http norka https://mcp.mojenorka.cz/mcp \
  --header "Authorization: Bearer nrk_…"

ChatGPT, Cursor i inne

W ustawieniach klienta dodać zdalny serwer MCP (czasem nazywany konektorem) z powyższym adresem i nagłówkiem Authorization. Dokładne kroki różnią się w zależności od klienta, ale te dwie wartości w zupełności wystarczą.

Sprawdzenie, czy działa

Poprosić asystenta: „Wywołaj whoami.” Odpowie, w imieniu której przestrzeni roboczej działa token i jakie ma narzędzia.

3. Co potrafi asystent

Narzędzia, które widzi asystent, zależą od zakresu tokenu. Wybór:

NarzędzieZakresCo robi
get_movementsodczytkto danego dnia przyjeżdża, a kto wyjeżdża
check_availabilityodczytktóre obiekty są wolne na pobyt i co stoi na przeszkodzie
search_reservationsodczytpobyty według daty, obiektu, statusu lub nazwiska
get_reservationodczytjeden pobyt w całości, łącznie z kodem do drzwi
list_guestsodczytkto jest na pobycie
get_estate_statisticsodczytprzychody i obłożenie obiektu według miesięcy
get_estate_pricingodczytcennik obiektu: cena podstawowa, ceny sezonowe, reguły cenowe i nadchodzący rok noc po nocy
get_price_quoteodczytile według cennika kosztuje pobyt w podanym terminie
list_unpaidodczytnieopłacone pobyty, w tym przeterminowane
get_attentionodczytco wymaga działania teraz
preview_transferodczytco zmieniłoby przeniesienie pobytu do innego apartamentu
list_collisionsodczytdwa pobyty zajmujące ten sam obiekt
list_inquiriesodczytzapytania z widgetu rezerwacyjnego czekające na odpowiedź
list_booking_widgetsodczytwidgety rezerwacyjne na Państwa stronach: co oferują, wygląd, dozwolone strony i kod do wklejenia
create_reservation, update_reservationzapisrezerwacja lub zmiana pobytu
block_dateszapiszablokowanie terminu apartamentu na czas remontu
transfer_reservationzapisprzeniesienie pobytu do innego apartamentu
resolve_collisionzapisrozwiązanie kolizji przez anulowanie jednego z dwóch nakładających się pobytów
update_reservation_estatezapiscena, koszt sprzątania lub kod do drzwi jednego obiektu w pobycie albo informacja, że po pobycie nikt nie sprząta
add_guest, update_guestzapisksięga gości pobytu
assign_cleaner, mark_cleaning_completezapissprzątanie po pobycie
send_checkin_linkzapiswysłanie gościowi e-mailem linku do zameldowania online, a przy włączonych SMS-ach także SMS-em
add_notezapisdopisanie notatki na osi czasu pobytu
list_invoicesodczytwszystkie faktury i faktury korygujące, z filtrami i sumą
get_invoicesodczytczy pobyt wymaga faktury, na jaką kwotę i co już wystawiono
issue_invoicezapiswystawienie faktury za pobyt na głównego gościa, z numerem i ostatecznie
send_invoicezapiswysłanie faktury gościowi e-mailem z PDF w załączniku
accept_inquiry, decline_inquiryzapisprzyjęcie zapytania ze strony (pobyt zostaje potwierdzony, a gość dostaje potwierdzenie) albo jego odrzucenie, zwolnienie terminu i powiadomienie gościa e-mailem
create_estate, update_season, create_pin_codezarządzaniezmiany obiektów (nowy obiekt wymaga pojemności beds i extra_beds), sezonów i kodów do drzwi, w tym listy sprzątania podzielonej na pokoje (cleaning_checklist); update_estate może też wyłączyć obiekt, aby nie był już oferowany ani wliczany do obłożenia; nowy lub ponownie włączony obiekt ponad limit planu Norka odrzuci
set_season_price, create_rate_rule, update_rate_rulezarządzaniecena obiektu w danym sezonie oraz cena stała lub rabat na konkretne terminy
create_booking_widget, update_booking_widgetzarządzanieutworzenie lub zmiana widgetu rezerwacyjnego: oferowane obiekty, dozwolone strony, minimalna liczba nocy, pokazywanie cen i opinii, wyłączenie, kolory jako kod hex (accent, free, busy), zaokrąglenie i rozmiar (compact, regular, large); usunięcie widgetu i odnowienie jego tokenu pozostają w aplikacji

Każda odpowiedź zawiera link do strony w aplikacji, z której pochodzi, więc można ją sprawdzić.

Czego asystent celowo nie potrafi

  • Niczego nie usuwa. Ani rezerwacji, ani obiektów, gości czy członków zespołu.
  • Nie anuluje faktur. Anulowanie lub fakturę korygującą tworzą Państwo sami w aplikacji.
  • Nie tworzy ani nie unieważnia tokenów, więc wykradziony token nie może sam się odnowić.
  • Nie zarządza członkami i nie usuwa przestrzeni roboczej. Do tego potrzebna jest zalogowana sesja w aplikacji.
  • Nie widzi danych kontaktowych gości, chyba że zostanie zapytany o jednego konkretnego gościa po nazwisku; listy zawierają tylko imiona i nazwiska.
  • Nie wymknie się spod kontroli. Każde narzędzie ma limit wywołań; asystent, który utknie w pętli, dostaje czytelny błąd i niczego nie psuje.

Częste pytania

Czy można mieć kilka tokenów? Tak. Jeden token na klienta to dobry nawyk, bo każdy można wtedy unieważnić osobno.

Czy token działa poza MCP? Tak, REST API przyjmuje ten sam token. Zakres działa tak samo: token do odczytu zostanie odrzucony przy każdym żądaniu, które coś zmienia.

Chcę wypróbować serwer bez asystenta. Można użyć oficjalnego MCP Inspector: npx @modelcontextprotocol/inspector, a następnie podać adres serwera i nagłówek z tokenem.