aloha.fyi Hawaii

Read-only Hawaii MCP: 2,500+ tours, 600+ restaurants, events, weather, day itineraries, 4 islands.

OtherTypeScriptv1.3.0

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,500+ bookable experiences from partner booking platforms (live counts: /health)
  • Live events across Oahu, Maui, Big Island, and Kauai, refreshed weekly
  • 600+ curated restaurants across the islands
  • 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 structuredContent 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-server directory inside baphometnxg/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.aloha.fyi/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.aloha.fyi/mcp"
    }
  }
}

Restart Claude Desktop. You should see the six 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.aloha.fyi/mcp

No API key, no OAuth, no signup.

Manual protocol test

curl -X POST https://mcp.aloha.fyi/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,500+ bookable Hawaii tours and activities by keyword, island, price range. Returns tours with booking links; filter by platform via source.

ParamTypeDescription
querystring (required)e.g. "snorkeling", "helicopter tour", "family luau"
islandoahu | maui | big_island | kauai | anyDefaults to any
max_price_dollarsnumberMaximum price per person in USD
sourceviator | gyg | klook | groupon | anyFilter by booking platform
limitnumberResults (max 20, default 5)

get_hawaii_deals

Find budget deals and discounts. Returns discounted and low-price options sorted cheapest first.

ParamTypeDescription
activitystring (required)e.g. "snorkeling", "helicopter", "luau"
max_price_dollarsnumberDefault 100
limitnumberResults (max 20, default 5)

search_hawaii_events

Find upcoming events, concerts, festivals, and nightlife across all Hawaiian islands. Updated weekly from venue and promoter sources.

ParamTypeDescription
querystringe.g. "live music", "luau", "concert"
islandoahu | maui | big_island | kauai | anyDefaults to any
days_aheadnumberHow 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_URL env var (PostgreSQL with an experiences table β€” schema in schema.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,500+ bookable experiences across multiple partner platforms.

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. 🌺

Setup from the maintainer

This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.

Learn More