stay-search MCP

stay-search MCP

Enables searching and comparing Airbnb (Korea) and Yanolja accommodation prices, with tools for price distribution, historical trends, and snapshot management, storing collected data in SQLite.

Category
访问服务器

README

stay-search MCP

Airbnb(한국)와 야놀자 NOL의 숙소 검색 결과를 수집해 가격·시장 데이터를 분석하는 MCP 서버. Claude가 직접 호출할 수 있는 툴 4개를 제공하고, 수집한 결과를 SQLite에 스냅샷으로 쌓아 추이를 본다.

사용

Claude Code / Desktop에 등록한 뒤 자연어로 물으면 된다.

9월 10~12일 서울 2인, Airbnb랑 야놀자 가격대 비교해줘

툴

툴 역할
search_stays 지역·날짜·인원으로 숙소 목록 수집 (+ 자동 스냅샷 저장)
compare_prices 소스별 1박 가격 분포(중앙값·사분위·유형별) 비교
price_history 저장된 스냅샷에서 일자별 가격 중앙값 추이 조회
list_snapshots 어떤 지역·기간이 수집돼 있는지 목록

지역 지정

region에 서울·제주·강릉 같은 한글 지명을 그대로 넣으면 된다 — 주요 국내 지역은 Airbnb용 영문 슬러그로 자동 변환된다 (src/sources/airbnb.ts의 KOREAN_SLUGS).

변환 목록에 없는 지역은 airbnbRegion에 슬러그를 직접 지정한다:

airbnbRegion: "Sokcho--South-Korea"

왜 필요한가: Airbnb는 URL 경로의 지역을 City--Country 슬러그로만 해석한다. 한글이나 자유 텍스트를 넘기면 오류 없이 전 세계 숙소를 섞어서 반환한다. 이걸 그대로 통계에 넣으면 조용히 틀린 시세가 나오므로, 결과 좌표가 5도 이상 흩어지면 에러를 던진다.

개발

npm install
npm run build

# 소스 어댑터만 단독 검증 (파서가 깨졌는지 가르는 첫 도구)
npx tsx scripts/probe-airbnb.ts "Seoul--South-Korea" 2026-09-10 2026-09-12 2
SOURCE=yanolja npx tsx scripts/probe-airbnb.ts 서울 2026-09-10 2026-09-12 2

# MCP 툴 수동 호출
npm run inspect

scripts/probe-yanolja.ts와 probe-yanolja-api.ts는 야놀자의 내부 검색 엔드포인트를 찾아낼 때 쓴 Playwright 진단 스크립트다. 야놀자가 API를 바꾸면 다시 돌려서 새 형태를 확인한다. 평상시 수집에는 브라우저가 필요 없다.

구조

src/index.ts          MCP 서버 · 툴 4개 등록
src/types.ts          두 소스를 맞춘 정규화 Listing 타입
src/sources/airbnb.ts 검색 페이지 HTML의 내장 JSON 파싱
src/sources/yanolja.ts universal-search API POST
src/store.ts          node:sqlite 스냅샷 저장/조회
src/stats.ts          1박 기준 가격 분포 집계
src/throttle.ts       호스트별 직렬 요청 + 최소 간격 + TTL 캐시

데이터 해석 시 주의

  • 가격 기준: Airbnb는 총액, 야놀자는 1박가로 표시된다. 모든 통계는 1박 기준으로 정규화한 값.
  • 야놀자 광고 표기: 검색 결과가 사실상 전량 광고로 표시된다. 제외하면 표본이 거의 남지 않으므로 기본 포함이고, 필요하면 excludeAds: true로 걷어낸다.
  • Airbnb 가격 누락: 일부 숙소는 가격이 비어 온다(해당 날짜 예약 불가 등). 통계에서 제외되며 건수를 경고로 알린다.
  • 야놀자 좌표 없음: 검색 응답에 위경도가 없어 lat/lng는 null이다.

수집 정책

두 사이트 모두 이용약관상 자동 수집을 허용하지 않으며, 야놀자는 robots.txt로 /discovery/ 경로를 차단하고 있다. 개인 분석 범위를 넘지 않도록 코드 레벨에서 강제한다:

  • 호스트당 직렬 요청 + 최소 간격 (Airbnb 1.5초, 야놀자 3초)
  • 같은 조건 재조회는 6시간 캐시로 받아 중복 요청을 내지 않음
  • 안티봇 우회 로직 없음 — 차단되면 그대로 에러를 올린다

상업적 재배포로 용도가 확장되면 야놀자는 제휴 문의, Airbnb는 파트너 API 경로를 별도로 검토해야 한다.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选