ManaMurah MCP Server
manamurah-mcp-server
Remote Model Context Protocol (MCP) Server für malaysische PriceCatcher-Verbraucherpreisdaten. Bereitgestellt auf Cloudflare Workers. 10 stark typisierte Tools für KI-Agenten.
Live-Endpunkt: https://mcp.manamurah.com/mcp (POST, JSON-RPC 2.0)
Datenquelle: data.gov.my PriceCatcher — ~3.800 Standorte × ~756 Artikel in allen 16 malaysischen Bundesstaaten/Territorien, wöchentlich aktualisiert. 100 % öffentliche Regierungsdaten. Nirgendwo im Stack sind Anmeldedaten erforderlich.
Installation — Claude Desktop
Hinzufügen zu ~/Library/Application Support/Claude/claude_desktop_config.json
unter macOS (oder %APPDATA%\Claude\claude_desktop_config.json unter Windows):
{
"mcpServers": {
"manamurah": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.manamurah.com/mcp"]
}
}
}Starten Sie Claude Desktop neu. Sie sollten die 10 Tools unter
dem 🔌-Symbol sehen. Fragen Sie etwas wie "harga tembikai di Selangor?" oder
"what's the cheapest chicken in KL this week?" — die LLM wird
automatisch search_items → find_cheapest verketten.
Related MCP server: Azure Pricing MCP Server
Installation — Claude Code / andere MCP-Clients
Jeder Client, der Remote-MCP unterstützt (JSON-RPC über HTTP POST):
# 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 .Clients, die natives Remote-MCP unterstützen, können direkt auf
https://mcp.manamurah.com/mcp verweisen. Clients, die nur stdio
unterstützen (z. B. ältere MCP-Tools), können mcp-remote
als Shim verwenden.
Tools
Alle 10 Tools sind schreibgeschützt, öffentlich und in der Antwortgröße begrenzt, um LLM-Kontexte kompakt zu halten. Jedes Tool enthält eine detaillierte Beschreibung
JSON-Schema-Eingabe, damit die LLM das richtige Tool ohne Raten auswählt.
Tool | Zweck |
| Artikel nach Namen in Malaiisch / Englisch / Chinesisch / Tamil finden |
| Bis zu 10 günstigste Standorte für einen Artikel diese Woche |
| Wöchentlicher Preistrend auf nationaler/Bundesstaats-/Distrikt-/Ketten-/städtischer Ebene |
| Standorte innerhalb eines geografischen Radius einer Koordinate |
| Preis eines Artikels über national + Bundesstaat + Distrikt + mehr |
| Verzeichnis der Einzelhandelsketten + Standortanzahl + Abdeckung |
| Delta zwischen der aktuellen Woche und vor 1 / 3 / 6 / 12 Monaten |
| Größte wöchentliche Gewinner + Verlierer |
| Bewegung pro Kategorie über einen Zeitraum |
| Gesamtkosten für einen Warenkorb mit 1–20 Artikeln im Zeitverlauf |
Alle Tools erfordern keine Einrichtung über die oben genannte MCP-Konfiguration hinaus. Keine API-Schlüssel. Kein Rate-Limiting auf Client-Seite (Upstream verfügt über einen 12-Stunden-KV-Edge-Cache, sodass wiederholte Abfragen im Wesentlichen kostenlos sind).
Beispielkonversation
Sie: Berapa harga tembikai merah tanpa biji di Selangor minggu ini?
Claude (ruft
search_items(query="tembikai")auf → erhält item_code 21 → ruftfind_cheapest(item_code=21, state="Selangor")auf):Tembikai merah tanpa biji di Selangor für die Woche 20.04.2026: Es gibt nur 1 Geschäft, das PriceCatcher-Daten meldet — Jaya Grocer D'Pulze Cyberjaya im Distrikt Sepang für RM 5,20/kg. Andere Daten in KL zeigen, dass NSK Seputeh/Cheras/Kepong ähnliche Wassermelonen für RM 1,69/kg verkaufen — es könnte sich lohnen, PJ/KL zu verlassen, wenn Sie im Süden von Selangor sind.
Die strukturierte Antwort, mit der die LLM gearbeitet hat:
{
"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": []
}Architektur
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 dataDieser Worker ist ein dünner Protokoll-Shim — er spricht MCP JSON-RPC auf der einen
Seite und Standard fetch() auf der anderen. Keine Geschäftslogik, keine
Anmeldedaten, keine Datenbankanbindung. Jeder Tool-Aufruf geht an genau
einen Upstream /api/v2/mcp/<tool>-Endpunkt und leitet die JSON-
Antwort durch.
Den Shim dünn zu halten bedeutet:
Die ~400 Zeilen hier sind fast ausschließlich Tool-Beschreibungs-JSON.
Abfrage-/Caching-/Index-Logik befindet sich Upstream, wo sie sich mit der Datenschicht befindet.
Das Aktualisieren des Verhaltens eines Tools erfordert selten eine erneute Bereitstellung des Workers.
Selbst-Hosting / Fork
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 deployUm auf eine Staging-Kopie des Upstreams zu verweisen (nützlich, wenn
manamurah_20240322
neue /api/v2/mcp/*-Endpunkte bereitstellt), überschreiben Sie die Basis-URL in
wrangler.toml:
[vars]
MANAMURAH_API_BASE = "https://staging.manamurah.com"Protokollhinweise
Transport: HTTP POST unter
/mcp, JSON-RPC 2.0. CORS-offen, damit browserbasierte MCP-Clients ohne Proxy funktionieren.Unterstützte Methoden:
initialize,tools/list,tools/call,prompts/list(leer),resources/list(leer),ping.Tool-Antwortform: MCP
content: [{ type: "text", text: ... }]Blöcke mit dem rohen JSON-Payload, der auch alsstructuredContentfür Clients angehängt ist, die dies bevorzugen.Fehlerbehandlung: Geschäftliche Probleme (ungültige Argumente, keine Daten für diese Woche) werden als
{ "status": "no_data", "reason": ... }bei HTTP 200 zurückgegeben, damit die LLM sie erläutern kann. Nur Transport-/Infrastruktur- Fehler lösen JSON-RPC-Fehler aus.Upstream-Fehler: 5xx unter
/api/v2/mcp/*werden als JSON-RPCcode: -32603mit dem Upstream-Status indataweitergegeben. 4xx werden unverändert durchgereicht (Client-Validierungsfehler sind bereits auf der Upstream-Seite als JSON-Umschlag geformt).
Verwandtes
manamurah-mcp-2026 — Python stdio MCP-Server, der dieselben 10 Tools abdeckt. Verwenden Sie diesen stattdessen, wenn Sie ein lokales MCP-Binary wünschen (kein Cloudflare, kein Worker-Hop).
manamurah_20240322 — die SvelteKit-Seite unter manamurah.com. Hostet sowohl die öffentliche Website als auch die
/api/v2/mcp/*-Proxy-Endpunkte, die dieser Worker aufruft.manamurah-data-2026 — das Python-ETL, das die Indizes hinter allem anderen füllt. Nächtliche Pipeline, data.gov.my PriceCatcher als Quelle der Wahrheit.
Lizenz
MIT. Siehe 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