A dedicated Hawaii tourism server that connects Claude or any MCP client to 2,583 bookable tours, 579 events, 540+ restaurants, and live weather across Oahu, Maui, Big Island, and Kauai. Pulls from Viator, GetYourGuide, Klook, and Groupon with affiliate links baked in. Three tools: search tours by keyword and island, filter budget deals under a price cap, and find upcoming events by date range. Runs stateless over Streamable HTTP at a public Railway endpoint, no auth required. Implements AAAK v0.1 for structured JSON responses so you can parse prices and booking URLs without regex. Reach for this when you need real inventory and affiliate revenue on Hawaii recommendations instead of hallucinated itineraries.
The first dedicated Hawaii tourism MCP server. Hawaii tours, events, and deals for AI assistants — now with AAAK structured-response support so consumer agents can parse results without re-parsing prose.
When someone asks Claude, ChatGPT, or any AI "what should I do in Hawaii?" — this MCP server returns real, bookable data:
2025-03-26structuredContent envelope alongside human-readable text. See docs/aaak-spec.md.Powered by aloha.fyi — Hawaii's AI concierge.
Note on canonical source. This repository is the public-facing mirror of the production
mcp-serverdirectory insidebaphometnxg/Nani-V3. Production deploys are driven from there; this repo is kept in sync as a standalone reference for community use and for anyone who wants to self-host. File issues here or upstream — both work.
Production MCP server (no install, no setup):
https://mcp-server-nani-v3-20.up.railway.app/mcp
2025-03-26aaak: { protocol, enabled, allowlist_size } so deploy state is observableBy default, MCP tool results come back as a prose blob — agents that want to consume the data programmatically have to re-parse markdown to recover prices, booking URLs, islands, etc. AAAK fixes that.
When AAAK is enabled (and the calling client is on the allowlist), every tool result includes a typed structuredContent field carrying the data in machine-parseable form, and the marketing trailer is dropped from text to save tokens. When AAAK is off, the wire format is byte-equivalent to v1.0.0 — no surprises for clients that don't opt in.
Lossless invariants — preserved on every revenue-bearing row:
booking_url (affiliate revenue)source (compliance + attribution)price_cents (the only numeric field user decisions hinge on)island (every recommendation is island-scoped)Example (search_hawaii_tours):
{
"ok": true,
"kind": "result",
"tool": "search_hawaii_tours",
"protocol": "aaak/0.1",
"query": { "query": "snorkeling", "island": "oahu", "limit": 1 },
"results": [
{
"title": "Hanauma Bay Snorkel",
"source": "viator",
"island": "oahu",
"area": "east_oahu",
"category": "tour",
"price_cents": 8900,
"rating": 4.7,
"review_count": 2341,
"description": "Guided snorkeling at Oahu's most famous reef...",
"booking_url": "https://aloha.fyi/r/aB3kT9pQz1",
"is_deal": false
}
],
"meta": { "count": 1, "cached": false, "source_diversity": 1 }
}
Full spec: docs/aaak-spec.md. Generated JSON Schema: docs/aaak.schema.json.
Verification scripts for self-hosters and contributors:
npm run aaak:test # 12 hand-written conformance fixtures
npm run aaak:smoke # 9 adapter-output validations
npm run aaak:gate # ~70 env-gate / trailer / allowlist invariants
npm run aaak:verify -- --expect=aaak --ua=claude-code/1.0 # live probe
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"aloha-fyi-hawaii": {
"url": "https://mcp-server-nani-v3-20.up.railway.app/mcp"
}
}
}
Restart Claude Desktop. You should see the three Hawaii tools appear in the tool picker. Try:
Find me snorkeling tours in Oahu under $100
What events are happening in Honolulu this weekend?
Plan a family adventure day on the Big Island — cheapest options
Any client that supports Streamable HTTP MCP can point directly at:
https://mcp-server-nani-v3-20.up.railway.app/mcp
No API key, no OAuth, no signup.
curl -X POST https://mcp-server-nani-v3-20.up.railway.app/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
search_hawaii_toursSearch 2,583 bookable Hawaii tours and activities by keyword, island, price range. Returns tours from Viator, GetYourGuide, Klook, and Groupon with affiliate booking links.
| Param | Type | Description |
|---|---|---|
query | string (required) | e.g. "snorkeling", "helicopter tour", "family luau" |
island | oahu | maui | big_island | kauai | any | Defaults to any |
max_price_dollars | number | Maximum price per person in USD |
source | viator | gyg | klook | groupon | any | Filter by booking platform |
limit | number | Results (max 20, default 5) |
get_hawaii_dealsFind budget deals and discounts. Returns Groupon deals and low-price options sorted cheapest first.
| Param | Type | Description |
|---|---|---|
activity | string (required) | e.g. "snorkeling", "helicopter", "luau" |
max_price_dollars | number | Default 100 |
limit | number | Results (max 20, default 5) |
search_hawaii_eventsFind upcoming events, concerts, festivals, and nightlife across all Hawaiian islands. 579+ events from 70+ venues, updated weekly.
| Param | Type | Description |
|---|---|---|
query | string | e.g. "live music", "luau", "concert" |
island | oahu | maui | big_island | kauai | any | Defaults to any |
days_ahead | number | How many days ahead to search (default 7) |
git clone https://github.com/baphometnxg/aloha-fyi-mcp.git
cd aloha-fyi-mcp
npm install
npx tsc
DATABASE_URL="postgresql://..." PORT=9624 node dist/http.js
Requires:
DATABASE_URL env var (PostgreSQL with an experiences table — schema in schema.sql)No PII is collected by the MCP server. Stateless mode — no sessions, no cross-request profiles. Standard request metadata is logged for abuse prevention only.
Full privacy policy: aloha.fyi/privacy
Built by Michael Crain — Hawaii resident, cinematographer, and founder of aloha.fyi.
aloha.fyi is an AI-powered multilingual tourism concierge for Hawaii's visitor industry. The concierge agent "Nani" speaks 5 languages (English, Japanese, Korean, Chinese, Spanish) and has access to 2,583 bookable experiences across 6 affiliate networks.
This MCP server exposes a subset of that capability to any AI assistant that speaks the Model Context Protocol.
Built with aloha. Powered by AI. Rooted in Hawaiian culture. 🌺