aloha-fyi-hawaii
aloha.fyi MCP 서버 🌺
최초의 하와이 관광 전용 MCP 서버입니다. AI 어시스턴트를 위한 하와이 투어, 이벤트 및 딜 정보를 제공하며, 이제 AAAK 구조화된 응답 지원을 통해 소비자 에이전트가 산문(prose)을 다시 파싱할 필요 없이 결과를 파싱할 수 있습니다.
Claude, ChatGPT 또는 기타 AI에게 "하와이에서 무엇을 해야 할까?"라고 물어보면, 이 MCP 서버는 실제 예약 가능한 데이터를 반환합니다:
Viator, GetYourGuide, Klook, Groupon에서 제공하는 2,583개의 예약 가능한 체험
오아후, 마우이, 빅 아일랜드, 카우아이 전역의 579개 이벤트
와이키키 및 오아후 전역의 540개 이상의 엄선된 레스토랑
4개 섬 전체에 대한 실시간 날씨 (OpenMeteo)
오전/점심/오후/저녁 추천이 포함된 일일 일정 계획
모든 예약 링크에 대한 제휴 추적
실제 MCP 프로토콜 — 스트리밍 가능한 HTTP, 상태 비저장, 사양 버전
2025-03-26AAAK v0.1 — 사람이 읽을 수 있는 텍스트와 함께 제공되는 타입이 지정된
structuredContent봉투.docs/aaak-spec.md를 참조하세요.
aloha.fyi 제공 — 하와이의 AI 컨시어지.
표준 소스에 대한 참고 사항. 이 저장소는
baphometnxg/Nani-V3내부의 프로덕션mcp-server디렉토리를 공개적으로 미러링한 것입니다. 프로덕션 배포는 해당 저장소에서 이루어지며, 이 저장소는 커뮤니티 사용 및 직접 호스팅을 원하는 분들을 위한 독립형 참조로 동기화됩니다. 이슈는 여기나 업스트림 어디에든 제기해 주셔도 됩니다.
호스팅된 엔드포인트
프로덕션 MCP 서버 (설치 및 설정 불필요):
https://mcp-server-nani-v3-20.up.railway.app/mcp전송: 스트리밍 가능한 HTTP (상태 비저장)
프로토콜 버전:
2025-03-26인증: 없음 (공개, 읽기 전용)
상태: GET /health —
aaak: { protocol, enabled, allowlist_size }를 반환하여 배포 상태를 확인할 수 있습니다.
Related MCP server: Famxplor Family Travel Activities
AAAK — 구조화된 응답 계약
기본적으로 MCP 도구 결과는 산문 덩어리로 반환되므로, 데이터를 프로그래밍 방식으로 사용하려는 에이전트는 가격, 예약 URL, 섬 정보 등을 복구하기 위해 마크다운을 다시 파싱해야 합니다. AAAK는 이를 해결합니다.
AAAK가 활성화되면(호출하는 클라이언트가 허용 목록에 있는 경우), 모든 도구 결과에는 기계가 파싱할 수 있는 형식으로 데이터를 포함하는 타입이 지정된 structuredContent 필드가 포함되며, 토큰을 절약하기 위해 마케팅 문구는 text에서 제외됩니다. AAAK가 꺼져 있으면 와이어 형식은 v1.0.0과 바이트 단위로 동일하므로, 옵트인하지 않은 클라이언트에게는 아무런 변화가 없습니다.
무손실 불변성 — 수익이 발생하는 모든 행에서 보존됨:
booking_url(제휴 수익)source(규정 준수 + 기여도)price_cents(사용자 결정의 유일한 숫자 필드)island(모든 추천은 섬 단위로 범위가 지정됨)
예시 (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 }
}전체 사양: docs/aaak-spec.md. 생성된 JSON 스키마: docs/aaak.schema.json.
직접 호스팅 및 기여자를 위한 검증 스크립트:
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 probeClaude Desktop에 연결
Claude Desktop 설정(~/Library/Application Support/Claude/claude_desktop_config.json, macOS 기준)에 추가하세요:
{
"mcpServers": {
"aloha-fyi-hawaii": {
"url": "https://mcp-server-nani-v3-20.up.railway.app/mcp"
}
}
}Claude Desktop을 다시 시작하세요. 도구 선택기에 3개의 하와이 도구가 나타나야 합니다. 다음을 시도해 보세요:
오아후에서 100달러 미만의 스노클링 투어를 찾아줘
이번 주말 호놀룰루에서 열리는 이벤트는 무엇인가요?
빅 아일랜드에서 가족 모험의 날을 계획해줘 — 가장 저렴한 옵션으로
MCP 호환 클라이언트에 연결
스트리밍 가능한 HTTP MCP를 지원하는 모든 클라이언트는 다음으로 직접 연결할 수 있습니다:
https://mcp-server-nani-v3-20.up.railway.app/mcpAPI 키, OAuth, 가입이 필요 없습니다.
수동 프로토콜 테스트
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_tours
키워드, 섬, 가격 범위별로 2,583개의 예약 가능한 하와이 투어 및 액티비티를 검색합니다. Viator, GetYourGuide, Klook, Groupon의 투어를 제휴 예약 링크와 함께 반환합니다.
매개변수 | 타입 | 설명 | ||||
| string (필수) | 예: "snorkeling", "helicopter tour", "family luau" | ||||
|
|
|
|
|
| 기본값은 |
| number | 1인당 최대 가격 (USD) | ||||
|
|
|
|
|
| 예약 플랫폼별 필터링 |
| number | 결과 수 (최대 20, 기본값 5) |
get_hawaii_deals
예산 딜 및 할인을 찾습니다. 그루폰 딜과 가장 저렴한 순으로 정렬된 옵션을 반환합니다.
매개변수 | 타입 | 설명 |
| string (필수) | 예: "snorkeling", "helicopter", "luau" |
| number | 기본값 100 |
| number | 결과 수 (최대 20, 기본값 5) |
search_hawaii_events
모든 하와이 섬에서 열리는 예정된 이벤트, 콘서트, 축제 및 나이트라이프를 찾습니다. 70개 이상의 장소에서 제공하는 579개 이상의 이벤트가 매주 업데이트됩니다.
매개변수 | 타입 | 설명 | ||||
| string | 예: "live music", "luau", "concert" | ||||
|
|
|
|
|
| 기본값은 |
| number | 검색할 향후 일수 (기본값 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요구 사항:
Node.js 20+
DATABASE_URL환경 변수 (experiences테이블이 있는 PostgreSQL — 스키마는schema.sql참조)
개인정보 보호
MCP 서버는 개인 식별 정보(PII)를 수집하지 않습니다. 상태 비저장 모드 — 세션 없음, 요청 간 프로필 없음. 표준 요청 메타데이터는 남용 방지를 위해서만 기록됩니다.
전체 개인정보 보호정책: aloha.fyi/privacy
정보
Michael Crain 제작 — 하와이 거주자, 촬영 감독이자 aloha.fyi의 설립자.
aloha.fyi는 하와이 방문객 산업을 위한 AI 기반 다국어 관광 컨시어지입니다. 컨시어지 에이전트 "Nani"는 5개 언어(영어, 일본어, 한국어, 중국어, 스페인어)를 구사하며 6개 제휴 네트워크에 걸쳐 2,583개의 예약 가능한 체험에 액세스할 수 있습니다.
이 MCP 서버는 모델 컨텍스트 프로토콜(Model Context Protocol)을 사용하는 모든 AI 어시스턴트에게 해당 기능의 일부를 노출합니다.
웹사이트: https://aloha.fyi
라이선스: MIT
알로하 정신으로 구축되었습니다. AI로 구동됩니다. 하와이 문화에 뿌리를 두고 있습니다. 🌺
Available Tools
4 toolsget_hawaii_dealsCInspect
Find the best budget deals and discounts for Hawaii tours and activities. Includes Groupon deals, sales, and value options.
| Name | Required | Description | Default |
|---|---|---|---|
| activity | Yes | Type of activity, e.g. 'snorkeling', 'helicopter', 'luau', 'food tour' | |
| max_price_dollars | No | Maximum price per person | |
| limit | No | Number of deals to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'budget deals,' 'discounts,' and sources like Groupon, implying a search or read operation, but doesn't clarify if it's read-only, requires authentication, has rate limits, or what the output format might be. For a tool with no annotations, this leaves significant behavioral gaps, such as whether it performs external API calls or returns structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the core purpose in the first sentence. The second sentence adds useful context about deal types without redundancy. Both sentences earn their place by clarifying scope, making it efficient and well-structured, though it could be slightly more detailed for a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain return values, error handling, or behavioral traits like data freshness or limitations. Without annotations or output schema, the description should provide more context on what the tool returns and how it behaves, but it falls short, leaving the agent with insufficient information for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear details for all parameters (activity, max_price_dollars, limit). The description adds no additional parameter semantics beyond implying a focus on 'budget' and 'discounts,' which loosely relates to max_price_dollars but doesn't enhance the schema's information. With high schema coverage, the baseline score is 3, as the description doesn't compensate with extra insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find the best budget deals and discounts for Hawaii tours and activities.' It specifies the verb 'find' and resource 'deals and discounts,' and mentions sources like Groupon deals, sales, and value options. However, it doesn't explicitly differentiate from sibling tools like 'search_hawaii_tours' or 'plan_hawaii_day,' which might also involve finding activities, so it lacks sibling differentiation for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or specify contexts like budget-focused searches versus general planning. Without explicit when-to-use or when-not-to-use instructions, the agent must infer usage from the description alone, which is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_hawaii_dayAInspect
Get a suggested full-day itinerary for a Hawaiian island or area. Includes morning, afternoon, and evening activities with booking links.
| Name | Required | Description | Default |
|---|---|---|---|
| island | Yes | Which island | |
| vibe | No | Trip vibe | chill |
| area | No | Specific area like 'waikiki', 'north shore', 'kona' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'booking links,' hinting at external resources, but does not cover critical aspects like whether this tool requires authentication, has rate limits, returns real-time data, or involves any destructive actions. For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's purpose and output. It is front-loaded with the main action ('Get a suggested full-day itinerary') and includes essential details without unnecessary words, making it highly concise and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and output structure but lacks details on behavioral traits, error handling, or how the itinerary is generated. Without annotations or an output schema, more context on what the tool returns and its operational constraints would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for all parameters (island, vibe, area). The description adds minimal value beyond the schema, as it does not explain how parameters affect the itinerary (e.g., how 'vibe' influences activity selection) or provide additional context. With high schema coverage, the baseline score of 3 is appropriate, as the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('suggested full-day itinerary for a Hawaiian island or area'), and it distinguishes from siblings by focusing on itinerary planning rather than deals, events, or tours. It specifies the output structure ('morning, afternoon, and evening activities with booking links'), making the purpose explicit and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for itinerary planning but does not explicitly state when to use this tool versus alternatives like get_hawaii_deals, search_hawaii_events, or search_hawaii_tours. It provides some context by mentioning 'booking links,' suggesting it might be for planning with booking options, but lacks clear exclusions or direct comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hawaii_eventsBInspect
Find upcoming events, concerts, festivals, and nightlife across all Hawaiian islands. Covers 579+ events from 70+ venues.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | What kind of event, e.g. 'live music', 'luau', 'concert', 'food festival' | |
| island | No | Which island | any |
| days_ahead | No | How many days ahead to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the data scope ('579+ events from 70+ venues') but does not cover critical aspects like rate limits, authentication needs, pagination, or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and efficient, consisting of two sentences that convey the tool's purpose and scope without unnecessary details. Every sentence adds value, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is partially complete. It covers the purpose and data scope but lacks behavioral details and output information. Without an output schema, the description should ideally hint at return values, but it does not, leaving gaps in contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (query, island, days_ahead) with descriptions and defaults. The description does not add any parameter-specific information beyond what the schema provides, such as examples or constraints, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Find upcoming events, concerts, festivals, and nightlife') and resources ('across all Hawaiian islands'), distinguishing it from siblings like get_hawaii_deals or search_hawaii_tours by focusing on events rather than deals or tours. It also provides scope details ('579+ events from 70+ venues'), making it highly specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_hawaii_deals or plan_hawaii_day. It mentions the scope but does not specify contexts, prerequisites, or exclusions, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hawaii_toursBInspect
Search Hawaii tours and activities by keyword, island, price range, and category. Returns bookable experiences with pricing and affiliate links.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What the user is looking for, e.g. 'snorkeling with turtles', 'helicopter tour', 'family luau' | |
| island | No | Which Hawaiian island | any |
| max_price_dollars | No | Maximum price per person in USD | |
| category | No | Type of experience | any |
| limit | No | Number of results to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool returns 'bookable experiences with pricing and affiliate links', which gives some insight into output behavior. However, it lacks details on permissions, rate limits, error handling, or whether the search is real-time or cached, leaving significant gaps for a tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's purpose, key parameters, and output. It is front-loaded with the main action and includes no redundant or unnecessary information, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and output type but lacks behavioral details and usage guidelines relative to siblings. Without annotations or output schema, more context on permissions, errors, or result formatting would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by listing the search criteria (keyword, island, price range, category) but does not provide additional syntax, format, or usage context for parameters. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for Hawaii tours and activities by specific criteria (keyword, island, price range, category) and returns bookable experiences with pricing and affiliate links. It uses a specific verb ('search') and resource ('Hawaii tours and activities'), but does not explicitly distinguish it from sibling tools like 'search_hawaii_events' or 'get_hawaii_deals', which likely have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_hawaii_events' or 'get_hawaii_deals'. It mentions the tool's functionality but does not specify contexts, prerequisites, or exclusions that would help an agent choose between sibling tools effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
get_hawaii_deals - First observed
plan_hawaii_day - First observed
search_hawaii_events - First observed
search_hawaii_tours
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get_hawaii_deals focuses on budget deals and discounts, plan_hawaii_day provides full-day itineraries, search_hawaii_events finds events and nightlife, and search_hawaii_tours searches for tours and activities. There is no overlap or ambiguity between these functions.
All tool names follow a consistent verb_noun pattern with 'hawaii' as a common domain identifier: get_hawaii_deals, plan_hawaii_day, search_hawaii_events, and search_hawaii_tours. The naming is predictable and uniform throughout.
With 4 tools, the count is reasonable for a Hawaii travel planning server, covering key areas like deals, itineraries, events, and tours. It is slightly on the lower side but well-scoped for its purpose, with each tool earning its place.
The tool set covers core travel planning functions: finding deals, planning days, searching events, and searching tours. Minor gaps might include tools for accommodations or transportation, but agents can likely work around these with the provided tools for a comprehensive Hawaii trip experience.
Maintenance
Related MCP Connectors
Skiplagged MCP Server for flight search, hotel booking, and travel planning
Public MCP server for discovering open jobs. Search, filter, and get application links.
AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.
Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.
Related MCP Servers
- AlicenseBqualityDmaintenanceThis MCP server provides access to TripAdvisor data for planning vacations, enabling users to search for and get details about locations, attractions, restaurants, and hotels through an interactive planning experience.42Apache 2.0
- AlicenseBqualityBmaintenanceThe first MCP server dedicated to families who travel with their kids. Find activities tested by families worldwide11MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for travel program search, comparison, and booking via Yourttoo API, optimized for LLMs with token-saving responses.-
- AlicenseAqualityCmaintenanceAn official MCP server for ConnectMeGuru to search active travel eSIM packages, apply discount coupons, check wallet balance, and purchase eSIM plans directly within AI chats.141MIT