ManaMurah MCP Server
manamurah-mcp-server
말레이시아 PriceCatcher 소비재 가격 데이터를 위한 원격 Model Context Protocol (MCP) 서버입니다. Cloudflare Workers에 배포되었습니다. AI 에이전트를 위한 10개의 강력한 타입 지정 도구를 제공합니다.
라이브 엔드포인트: https://mcp.manamurah.com/mcp (POST, JSON-RPC 2.0)
데이터 소스: data.gov.my PriceCatcher — 말레이시아 16개 주/영토 전역의 약 3,800개 매장 × 약 756개 품목 데이터가 매주 갱신됩니다. 100% 공공 정부 데이터입니다. 스택 어디에서도 자격 증명이 필요하지 않습니다.
설치 — Claude Desktop
macOS의 ~/Library/Application Support/Claude/claude_desktop_config.json (또는 Windows의 %APPDATA%\Claude\claude_desktop_config.json)에 추가하세요:
{
"mcpServers": {
"manamurah": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.manamurah.com/mcp"]
}
}
}Claude Desktop을 재시작하세요. 🔌 아이콘 아래에 10개의 도구가 나열된 것을 볼 수 있습니다. "harga tembikai di Selangor?" 또는 *"what's the cheapest chicken in KL this week?"*와 같이 질문하면 LLM이 자동으로 search_items → find_cheapest를 체이닝합니다.
Related MCP server: Azure Pricing MCP Server
설치 — Claude Code / 기타 MCP 클라이언트
원격 MCP(HTTP POST를 통한 JSON-RPC)를 지원하는 모든 클라이언트:
# One-shot tool listing:
curl -sS -X POST https://mcp.manamurah.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq .네이티브 원격 MCP를 지원하는 클라이언트는 https://mcp.manamurah.com/mcp를 직접 가리킬 수 있습니다. stdio만 지원하는 클라이언트(예: 구형 MCP 도구)는 mcp-remote를 shim으로 사용할 수 있습니다.
도구
10개의 도구 모두 읽기 전용이며 공개되어 있고, LLM 컨텍스트를 간결하게 유지하기 위해 응답 크기가 제한되어 있습니다. 모든 도구는 상세한 설명과 JSON-Schema 입력을 포함하여 LLM이 추측 없이 올바른 도구를 선택할 수 있도록 합니다.
도구 | 목적 |
| 말레이어 / 영어 / 중국어 / 타밀어로 품목 검색 |
| 이번 주 특정 품목에 대해 가장 저렴한 매장 최대 10곳 |
| 국가/주/지구/체인/도시별 주간 가격 추이 |
| 좌표의 지리적 반경 내 매장 |
| 국가 + 주 + 지구 등 전역의 품목 가격 비교 |
| 소매 체인 디렉토리 + 매장 수 + 커버리지 |
| 현재 주와 1 / 3 / 6 / 12개월 전의 가격 차이 |
| 주간 가격 상승폭 및 하락폭이 가장 큰 품목 |
| 기간별 카테고리별 변동 |
| 1~20개 품목 장바구니의 시간 경과에 따른 총 비용 |
모든 도구는 위의 MCP 설정 외에 별도의 설정이 필요 없습니다. API 키도 필요 없습니다. 클라이언트 측 속도 제한도 없습니다(업스트림에 12시간 KV 엣지 캐시가 있어 반복 쿼리는 사실상 무료입니다).
대화 예시
사용자: Berapa harga tembikai merah tanpa biji di Selangor minggu ini?
Claude (calls
search_items(query="tembikai")→ gets item_code 21 → callsfind_cheapest(item_code=21, state="Selangor")):2026-04-20 주간 셀랑고르의 씨 없는 수박 가격: PriceCatcher 데이터를 보고하는 매장은 1곳뿐입니다 — 세팡 지구의 Jaya Grocer D'Pulze Cyberjaya에서 RM 5.20/kg에 판매 중입니다. KL의 다른 데이터에 따르면 NSK Seputeh/Cheras/Kepong에서는 유사한 수박을 RM 1.69/kg에 판매하고 있으므로 — 셀랑고르 남부에 계신다면 PJ/KL로 나가는 것이 가치가 있을 수 있습니다.
LLM이 작업한 구조화된 응답:
{
"item_code": 21,
"item_name": "TEMBIKAI MERAH TANPA BIJI",
"weekdate": "2026-04-20",
"results": [
{
"weekdate": "2026-04-20",
"price": 5.20,
"premise_name": "JAYA GROCER D`PULZE CYBERJAYA",
"chain": "JAYA GROCER",
"chain_type": "SUPERMARKET",
"state": "Selangor",
"district": "Sepang"
}
],
"scope": { "state": "Selangor", "district": null, "chain": null, "chain_type": null },
"status": "ok",
"reason": null,
"warnings": []
}아키텍처
Claude Desktop ─ stdio ─ mcp-remote ─ HTTPS ─ mcp.manamurah.com
│
(Cloudflare Worker, this repo)
│
fetch
▼
manamurah.com/api/v2/mcp/*
│
(SvelteKit site +
Cloudflare KV edge cache,
12h TTL)
│
▼
public price data이 Worker는 얇은 프로토콜 shim으로, 한쪽은 MCP JSON-RPC를, 다른 한쪽은 표준 fetch()를 사용합니다. 비즈니스 로직, 자격 증명, 데이터베이스 바인딩이 없습니다. 모든 도구 호출은 정확히 하나의 업스트림 /api/v2/mcp/<tool> 엔드포인트로 전달되며 JSON 응답을 그대로 통과시킵니다.
shim을 얇게 유지함으로써 얻는 이점:
약 400줄의 코드는 거의 모두 도구 설명 JSON입니다.
쿼리/캐싱/인덱스 로직은 데이터 계층과 함께 위치한 업스트림에 존재합니다.
도구의 동작을 업데이트하기 위해 Worker를 재배포할 필요가 거의 없습니다.
자체 호스팅 / 포크
git clone https://github.com/manamurah/mcp-server
cd mcp-server
pnpm install
# Local dev — hot-reloads on src/ changes, binds to 127.0.0.1:8787
pnpm dev
# Exercise it:
curl -sS -X POST http://127.0.0.1:8787/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools[].name'
# Deploy to your own Cloudflare account:
pnpm deploy업스트림의 스테이징 복사본을 가리키려면(manamurah_20240322가 새로운 /api/v2/mcp/* 엔드포인트를 배포할 때 유용), wrangler.toml에서 기본 URL을 재정의하세요:
[vars]
MANAMURAH_API_BASE = "https://staging.manamurah.com"프로토콜 참고 사항
전송:
/mcp에서 HTTP POST, JSON-RPC 2.0 사용. CORS가 열려 있어 브라우저 기반 MCP 클라이언트가 프록시 없이 작동합니다.지원 메서드:
initialize,tools/list,tools/call,prompts/list(비어 있음),resources/list(비어 있음),ping.도구 응답 형태: MCP
content: [{ type: "text", text: ... }]블록과 함께 원시 JSON 페이로드가 이를 선호하는 클라이언트를 위해structuredContent로 첨부됩니다.오류 처리: 비즈니스 수준 문제(잘못된 인수, 이번 주 데이터 없음)는 HTTP 200에서
{ "status": "no_data", "reason": ... }로 반환되어 LLM이 이를 설명할 수 있도록 합니다. 전송/인프라 오류만 JSON-RPC 오류를 발생시킵니다.업스트림 오류:
/api/v2/mcp/*에서의 5xx 오류는data에 업스트림 상태를 포함한 JSON-RPCcode: -32603으로 버블업됩니다. 4xx 오류는 변경 없이 통과됩니다(클라이언트 유효성 검사 오류는 이미 업스트림 측에서 JSON 봉투 형태로 구성됨).
관련 항목
manamurah-mcp-2026 — 동일한 10개 도구를 다루는 Python stdio MCP 서버입니다. 로컬 전용 MCP 바이너리를 원할 경우(Cloudflare나 Worker 홉 없음) 이 버전을 사용하세요.
manamurah_20240322 — manamurah.com의 SvelteKit 사이트입니다. 공개 웹사이트와 이 Worker가 호출하는
/api/v2/mcp/*프록시 엔드포인트를 모두 호스팅합니다.manamurah-data-2026 — 다른 모든 항목의 기반이 되는 인덱스를 채우는 Python ETL입니다. 야간 파이프라인이며, data.gov.my PriceCatcher가 진실의 원천입니다.
라이선스
MIT. LICENSE를 참조하세요.
This server cannot be deployed
Maintenance
Related MCP Connectors
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Unlock the power of food transparency with our Open Food Facts MCP server. Easily look up any food
Price benchmarks, alternatives & daily price history across 17,000+ AI agents and MCP servers.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Related MCP Servers
- AlicenseCqualityCmaintenanceA Model Context Protocol server enabling product searches across e-commerce platforms, price history tracking, and product specification-based searches using natural language prompts.218MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables programmatic querying of Azure resource pricing information from the Azure Retail Prices API through a structured four-step workflow.8-
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides real-time cryptocurrency price fetching capabilities using the CoinGecko API. It enables LLMs to retrieve and process the latest price for any coin by its name or symbol.2-
- AlicenseAqualityCmaintenanceA Model Context Protocol server for real-time Swiss grocery shopping that searches and compares products across 8 major Swiss retailers (Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, Otto’s), normalizes per-unit prices, surfaces promotions, computes optimal multi-store shopping plans, and works with any MCP-compatible client without API keys or accounts.782 npm30AGPL 3.0