Skip to content
Kiuli

Kiuli MCP Server

Research and plan a luxury African safari from inside Claude, ChatGPT, Perplexity or any MCP-speaking assistant.

Server endpoint

Kiuli operates a public Model Context Protocol server. Paste this URL into your assistant's custom-connector field:

https://kiuli.com/api/mcp/mcp

Transport is Streamable HTTP. Authentication is OAuth 2.1 with PKCE and Dynamic Client Registration — your client handles the whole handshake itself, so there is no API key to request and no account to create.

What it does

Two things, and they are deliberately separate.

It makes Kiuli's writing readable and citable. The search and fetch tools open our published corpus — long-form safari articles, reviewed lodge and camp pages, destination guides and sample itineraries — to any assistant, with a real kiuli.com URL attached to every result so it can be cited properly. This is useful whether or not you ever talk to us.

It plans, and it can hand over to a human. plan_safari turns a brief into a structured sketch drawn only from places we have actually been. request_inquiry_handoff passes that sketch, with your permission, to a Kiuli travel designer.

On prices

A bespoke sketch never carries a dollar figure. That is a deliberate invariant, not an oversight: African safari pricing depends on availability, season, party size and operator terms that only a designer can confirm. Inventing a number would be guessing, and we would rather the assistant say so.

The one place USD appears is our published sample itineraries, whose “from” prices are already public on kiuli.com and carry Product/Offer structured data. Those are real, current anchors and may be quoted.

Connecting

Claude (Pro, Max, Team, Enterprise)

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Paste https://kiuli.com/api/mcp/mcp.
  4. Complete the OAuth prompt, then ask Claude about an African safari.

Kiuli is not listed in Anthropic's connector directory — directory submission requires a Team or Enterprise organisation, which we do not have. Adding the URL as a custom connector needs no approval and gives you the identical server.

ChatGPT (developer mode)

  1. Open Settings → Security and login and enable Developer mode.
  2. Add a connector and paste https://kiuli.com/api/mcp/mcp.
  3. Approve the OAuth consent screen.

The search and fetch tools follow OpenAI's compatibility contract, so Kiuli's articles can be cited inside deep-research answers rather than only browsed.

Perplexity (Pro, Max, Enterprise)

  1. Open Settings → Connectors → Add custom connector.
  2. Choose Remote and paste https://kiuli.com/api/mcp/mcp.

Anything else

Any client that speaks Streamable HTTP MCP with OAuth 2.1 will work — Cursor, Goose, the MCP Inspector, your own code. Discovery documents are at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server.

Tools

search  (read-only)

Input: { query: string, maxResults?: number }

Searches Kiuli's published corpus and returns { results: [{ id, title, url }] }. Ids look like article:<slug>, property:<slug>, destination:<slug> or itinerary:<slug>. Every url is an absolute, openable kiuli.com page.

fetch  (read-only)

Input: { id: string }

Returns { id, title, text, url, metadata } for one published document. An id that does not resolve to a published page returns an error rather than a near match.

plan_safari  (read-only)

Input: { brief: string, adults?: number, children?: number, preferences?: string[], mcpPartnerSlug?: string }

Output: a sketch carrying an opaque reference string, a narrative, a structured skeleton (nights, countries, properties, transfers, best months), published price anchors, open questions and a pricing disclaimer. Where we have no transfer on file between two properties, it says so rather than inventing a routing.

search_properties  (read-only)

Input: { query: string, country?: string, maxResults?: number }

Semantic search across the property catalogue. Returns name, type, description, star rating and destination. No per-night rates.

list_published_itineraries  (read-only)

Input: { country?: string, maxFromPriceUsd?: number, interests?: string[], maxResults?: number }

Our published sample itineraries with title, slug, countries, nights, summary and fromPricePerPersonUsd.

get_published_itinerary_by_slug  (read-only)

Input: { slug: string }

Full detail for one published itinerary, including the day-by-day breakdown.

request_inquiry_handoff  (destructive)

Input: { reference: string, name: string, email: string, phone?: string, notes?: string, mcpPartnerSlug?: string, confirm: 'EXECUTE' }

reference is the string a prior plan_safari call returned. This creates a real inquiry, a real CRM record, assigns a designer and sends email. The literal confirm: 'EXECUTE' guard is required, and your assistant should only call it once you have explicitly asked to be contacted.

Qualification

Kiuli designs safaris in the USD $25,000–$100,000+ per person band. Every brief is assessed for travel intent and budget signal. A handoff that does not meet the band is recorded for our own analytics and closed politely — no CRM deal, no designer email. We would rather tell you plainly that we are not the right fit than take a lead we cannot serve well.

Attribution

plan_safari and request_inquiry_handoff accept mcpPartnerSlug (for example claude, chatgpt, perplexity). When set, the resulting inquiry carries utm_source = mcp:<partner-slug> and the CRM deal source is tagged AI Partner: <partner-slug>. It never surfaces to the customer.

Rate limits

Per OAuth client_id, in sliding windows: 60 tool calls per hour, and 5 handoffs per hour. Exceeding either returns a tool error naming the retry time. Limits may change as we calibrate.

Terms

By using the server you agree that Kiuli may store the briefs and handoffs you submit in order to operate the planning conversation, may share the contact details and sketch with the assigned designer, and may use aggregated, non-identifying usage metrics to improve the service. Personal data handling is covered in the MCP privacy notice.

The server is provided as-is. Tool outputs are planning sketches, not quotes. A Kiuli designer confirms price and availability before any booking.

Contact

Partner enquiries, abuse reports, or problems with the server: hello@kiuli.com.