baphometnxg/aloha-fyi-mcp
π βοΈ - First dedicated Hawaii tourism MCP server. 2,583 bookable tours from Viator, GetYourGuide, Klook, and Groupon, plus 579 events across 70+ venues on Oahu, Maui, Big Island, and Kauai. Results ship with affiliate booking links. Hosted Streamable HTTP endpoint β no install required. Powered by aloha.fyi.
Quick Install
{
"mcpServers": {
"baphometnxg-aloha-fyi-mcp": {
"command": "npx",
"args": [
"-y",
"baphometnxg-aloha-fyi-mcp"
]
}
}
}Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.
Documentation Overview
aloha.fyi MCP Server πΊ
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:
- 2,583 bookable experiences from Viator, GetYourGuide, Klook, and Groupon
- 579 events across Oahu, Maui, Big Island, and Kauai
- 540+ curated restaurants in Waikiki and across Oahu
- Live weather for all four islands (OpenMeteo)
- Day-plan itineraries with morning / lunch / afternoon / dinner picks
- Affiliate tracking on every booking link
- Real MCP protocol β Streamable HTTP, stateless, spec version
2025-03-26 - AAAK v0.1 β typed
structuredContentenvelope alongside human-readable text. Seedocs/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.
Hosted endpoint
Production MCP server (no install, no setup):
https://mcp-server-nani-v3-20.up.railway.app/mcp
- Transport: Streamable HTTP (stateless)
- Protocol version:
2025-03-26 - Auth: none (public, read-only)
- Health: GET /health β returns
aaak: { protocol, enabled, allowlist_size }so deploy state is observable - Discovery: GET /.well-known/mcp/server.json
AAAK β structured response contract
By 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
Connect to Claude Desktop
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
Connect to any MCP-compatible client
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.
Manual protocol test
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"}}}'
Tools
search_hawaii_tours
Search 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_deals
Find 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_events
Find 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) |
Run it yourself
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:
- Node.js 20+
DATABASE_URLenv var (PostgreSQL with anexperiencestable β schema inschema.sql)
Privacy
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
About
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.
- Website: https://aloha.fyi
- Contact: alohatours@proton.me
- License: MIT
Built with aloha. Powered by AI. Rooted in Hawaiian culture. πΊ