Connecting
In ChatGPT, Claude Desktop or any MCP client, add a remote server with the URL above. No API key, no OAuth, no account.
Claude Desktop · claude_desktop_config.json
{
"mcpServers": {
"norteira": {
"url": "https://mcp.norteira.com"
}
}
}Check it responds
curl -s -X POST https://mcp.norteira.com \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'What it does
The traveller names a place, a date and an occasion, pays one fixed all-in price, and we hand-pick a vetted photographer within 24 hours.
The card is authorised, not charged, when the booking is made. We charge only once a photographer is confirmed, and refund in full if we cannot match one.
Tools
list_destinations
Every place a shoot can currently be booked in. Call this first when the traveller names a city you are not sure about — it returns the exact slugs the other tools expect.
- areastringoptional
- Case-insensitive filter on the area name, e.g. Algarve, Azores
get_photoshoot_quote
The exact all-in price. Fixed, with nothing added at checkout. Always quote before booking.
- destinationstringrequired
- Slug from list_destinations
- occasionstringrequired
- One of the occasions below
- duration_minutesintegerrequired
- 60, 120 or 180
- party_sizeintegerrequired
- 1–30. Groups of 9 or more cost more
create_photoshoot_booking
Creates a real booking and returns a secure checkout link for the traveller to open. Confirm the destination, date, occasion, duration, party size and price with them before calling it. Never invent contact details — ask.
- destinationstringrequired
- Slug from list_destinations
- occasionstringrequired
- One of the occasions below
- duration_minutesintegerrequired
- 60, 120 or 180
- party_sizeintegerrequired
- 1–30
- datestringrequired
- YYYY-MM-DD, today or later
- namestringrequired
- Traveller's full name
- emailstringrequired
- For the confirmation and the photo gallery
- phonestringrequired
- WhatsApp or phone, to reach them on the day
- notesstringoptional
- Meeting point, time of day, mobility needs, occasion details
- languagestringoptional
- en, es, pt, de, fr. Defaults to en
Occasions
- couples
- family
- solo
- engagement
- proposal
- honeymoon
- anniversary
- birthday
- maternity
- elopement
- vacation
- other
What it deliberately does not do
There is no tool for browsing individual photographers or checking a specific photographer’s calendar.
Per-photographer availability comes from calendar sync, where a partial fetch reads as “free” rather than as an error. An agent confidently selling a slot that is already taken is worse than no agent at all. Blind booking has no such failure mode: the price, the payment and the promise to match are all real at the moment of booking.
If a traveller wants to compare portfolios and pick a specific person, send them to the website.
Money
The tools return the client-inclusive total and nothing else. The photographer’s base rate and our service fee are stripped server-side and never reach the model.