Connecting an AI assistant (MCP)
How to let Claude, ChatGPT or any other agent work with your Norka over the Model Context Protocol.
Norka speaks MCP (the Model Context Protocol). Once an assistant is connected you can ask it "who arrives on Friday?" or tell it "book Apartment 2 for the Nováks from 3 to 7 August" and it does it, with the same rules and notifications as the app.
The server address is the same for every client:
https://mcp.mojenorka.cz/mcp
1. Create an API token
- In Norka open Settings → API tokens and click Create token.
- Name it after where you will use it (for example "Claude Desktop") and pick a scope:
| Scope | What the assistant may do |
|---|---|
| read | see the calendar, stays, guests, unpaid stays and the configuration |
| write | also book and change stays, assign cleaning, send a check-in link |
| admin | also change the configuration: estates, door codes, seasons, feeds |
- The token is shown once. Copy it; Norka stores only its digest. You can revoke it at any time.
Start with the read scope. Give a token write or admin only once you know what the assistant uses it for.
2. Add the server to your client
The token is sent as an ordinary Authorization: Bearer … header.
Claude Desktop
Open Settings → Developer → Edit Config and add:
{
"mcpServers": {
"norka": {
"url": "https://mcp.mojenorka.cz/mcp",
"headers": { "Authorization": "Bearer nrk_…" }
}
}
}
Restart Claude Desktop. Norka shows up among the tools.
Claude Code
claude mcp add --transport http norka https://mcp.mojenorka.cz/mcp \
--header "Authorization: Bearer nrk_…"
ChatGPT, Cursor and others
In the client's settings add a remote MCP server (sometimes called a connector) with the address above and the Authorization header. The exact steps differ per client, but those two values are all it needs.
Checking it works
Ask the assistant: "Call whoami." It answers with the workspace the token speaks for and the tools it has.
3. What the assistant can do
The tools an assistant sees follow the token's scope. A selection:
| Tool | Scope | Does |
|---|---|---|
get_movements | read | who arrives and who leaves on a day |
check_availability | read | which estates are free for a stay, and what is in the way |
search_reservations | read | stays by date, estate, status or name |
get_reservation | read | one stay in full, door code included |
list_unpaid | read | stays not paid for |
list_collisions | read | two stays claiming one estate |
create_reservation, update_reservation | write | book or change a stay |
assign_cleaner, mark_cleaning_complete | write | the cleaning after a stay |
send_checkin_link | write | email the guest their online check-in link |
add_note | write | write a note onto the stay's timeline |
create_estate, update_season, create_pin_code | admin | change estates, seasons and door codes |
Every answer carries a link to the page in the app it came from, so you can check it.
What the assistant deliberately cannot do
- Delete anything. No reservations, estates, guests or members.
- Mint or revoke tokens, so a leaked token cannot renew itself.
- Manage members or delete the workspace. Those need a signed-in session in the app.
- See guest contacts except when asked by name for one guest; lists carry names only.
- Run away. Every tool has a call budget; an assistant stuck in a loop gets a readable error and breaks nothing.
Common questions
Can I have several tokens? Yes. One token per client is a good habit, so each can be revoked on its own.
Does the token work outside MCP? Yes, the REST API accepts the same token. The scope applies the same way: a read token is refused on any request that changes something.
I want to try the server without an assistant.
Use the official MCP Inspector: npx @modelcontextprotocol/inspector, enter the server address and the header with the token.