aloha.fyi Hawaii
Read-only Hawaii MCP: 2,500+ tours, 600+ restaurants, events, weather, day itineraries, 4 islands.
Open source Repository Open in the app JSON README (API)
About
Read-only Hawaii MCP: 2,500+ tours, 600+ restaurants, events, weather, day itineraries, 4 islands.
Details
- Kind
- MCP servers
- Topic
- Maps, weather & travel
- Publisher
- baphometnxg
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.3.0
- Stars
- 2
- Open pull requests
- 1
- Last push
- 2026-08-29T04:53:12Z
- Repository state
- ativo
- Language
- TypeScript
- Added
- 2026-08-29 03:02:28
- Updated
- 2026-08-29 03:02:28
- Origin id
io.github.baphometnxg/aloha-fyi-mcp
README
# 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](https://mcp.aloha.fyi/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`](./docs/aaak-spec.md).
Powered by [aloha.fyi](https://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`](https://github.com/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](https://mcp.aloha.fyi/health) โ returns `aaak: { protocol, enabled, allowlist_size }` so deploy state is observable
- Discovery: [GET /.well-known/mcp/server.json](https://mcp.aloha.fyi/.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):**
```jsonc
{
"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`](./docs/aaak-spec.md). Generated JSON Schema: [`docs/aaak.schema.json`](./docs/aaak.schema.json).
**Verification scripts** for self-hosters and contributors:
```bash
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):
```json
{
"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
```bash
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`.
| 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 discounted 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. Updated weekly from venue and promoter sources.
| 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
```bash
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](https://www.aloha.fyi/privacy)
---
## About
Built by [Michael Crain](https://aloha.fyi) โ 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.
- **Website**: https://aloha.fyi
- **Contact**: alohatours@proton.me
- **License**: MIT
---
*Built with aloha. Powered by AI. Rooted in Hawaiian culture.* ๐บ