使用说明
manamurah mcp服务器
远程 模型上下文协议 (MCP) 马来西亚PriceCatcher消费者价格数据服务器。部署于 Cloudflare员工。15个用于AI代理的强类型工具。
实时端点: https://mcp.manamurah.com/mcp (帖子,JSON-RPC 2.0)
数据来源: data.gov.my 价格捕捉器-- 马来西亚16个州/地区约3800处房产×约756件物品, 每日收集并作为每周平均值发布。100%公共政府 数据。堆栈中的任何地方都不需要凭据。
安装
服务器在以下位置使用可流式传输的HTTP https://mcp.manamurah.com/mcp.
为您的客户选择区块:
克劳德桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json
在macOS上(或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
{
"mcpServers": {
"manamurah": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.manamurah.com/mcp"]
}
}
}
Claude Desktop只会说stdio,所以 mcp-remote
垫片是桥梁。重新启动应用程序——您将在下面看到15个工具
这🔌 偶像。问 “香蕉的价格?” 或 “那是什么
本周吉隆坡最便宜的鸡肉?" 克劳德会被锁住
search_items → find_cheapest 自动。
克劳德代码(CLI)
一个命令,原生流式HTTP——无填充:
claude mcp add manamurah --transport http https://mcp.manamurah.com/mcp
确认 claude mcp list。下次工具可用
您启动了一个Claude Code会话。添加 --scope user 成功
适用于每个项目。
光标
用户级别(每个项目):创建或编辑 ~/.cursor/mcp.json.
项目级别: <project-root>/.cursor/mcp.json.
{
"mcpServers": {
"manamurah": {
"url": "https://mcp.manamurah.com/mcp"
}
}
}
光标0.46+支持远程MCP url 直接。重新加载
窗户(Cmd-Shift-P → 开发者:重新加载窗口)以及
manamurah 行显示在“设置”下→ 配备所有15个工具的MCP
上市的。
Cline(VS代码扩展)
打开Cline的侧边栏→ ⚙️ → MCP服务器 → 添加服务器 →
选择 远程 → paste https://mcp.manamurah.com/mcp → 命名它
manamurah.Cline将配置写入其VS Code全局存储
自身;不需要JSON编辑。
对于无头设置,Claude Desktop也使用相同的JSON形状
作品在Cline cline_mcp_settings.json.
ChatGPT(自定义连接器)
对于ChatGPT Pro/团队/企业: chatgpt.com/connectors →
添加自定义连接器 → MCP服务器URL
https://mcp.manamurah.com/mcp → 无需身份验证(公共只读)。
批准后,连接器显示在消息输入⊕菜单中。
对于OpenAI Apps SDK/程序化使用( codex_apps.manamurah_*
Codex中的工具系列):应用程序清单中的服务器URL字段位于
platform.openai.com/apps 必须精确
https://mcp.manamurah.com/mcp — 不 https://manamurah.com (其中
将使HTTP 403的流式传输探测失败,因为
消费者站点而不是MCP端点)。
其他MCP客户端
任何支持流式HTTP MCP传输点的客户端
直接在 https://mcp.manamurah.com/mcp.Stdio专用客户端垫片
通过 mcp-remote 使用
与上面的Claude Desktop相同的配方。
任何外壳的快速烟雾测试:
curl -sS -X POST https://mcp.manamurah.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools[].name'
您应该看到14个工具名称——11个KPDN PriceCatcher工具 (每周节奏)加上三个FAMA Panduan Harga Harian工具(每日 节奏、三个价格水平)。越富有 自我描述清单 (完整输入 模式+版本控制策略)也是一个简单的GET。
工具
所有15个工具都是只读的、公开的,并且对响应大小有限制 保持LLM上下文紧凑。每个工具都有详细的描述
- JSON模式输入,以便LLM在不猜测的情况下选择正确的模式。
KPDN价格捕捉器(每周平均值)
仅零售价。约3800处房产×约756件物品,每天收集 以每周平均值的形式发布 data.gov.my价格捕捉器数据集.
| 工具 | 目的 |
|---|---|
search_items |
按马来语/英语/中文/泰米尔语名称查找项目 |
find_cheapest |
本周一件商品最多10个最便宜的场所 |
price_history |
全国/州/地区/连锁店/城市的每周价格趋势 |
nearby_premises |
坐标地理半径内的房屋 |
compare_prices |
全国+州+地区+更多商品价格 |
list_chains |
零售连锁目录+店铺数量+覆盖范围 |
price_change |
本周与1/3/6/12个月前的差值 |
top_movers |
每周最大的上升者+下降者 |
category_trends |
在窗口上按类别移动 |
basket_watch |
1-20件篮子随时间变化的总成本 |
region_gap |
Semenanjung vs Borneo top-N价格差距,双向 |
FAMA每日价格(Panduan Harga Harian)
三个价格水平-- 运行 (零售), 硼 (批发),
拉丹 (农场大门)——每天独立跟踪。~46个项目
(新鲜农产品、鸡蛋、家禽)。FAMA的目录独立于
价格捕捉器: item_id 这是FAMA自己的1..46,而不是KPDN
item_code.
| 工具 | 目的 |
|---|---|
fama_price_history |
所选级别的一个项目的每日系列+地理谷物 |
fama_margin |
拉丹→ 硼→ RUNCIT价值链每日价差 |
fama_top_movers |
每个级别的每日移动者,以最新指数日期为基准 |
fama_margin 和 fama_top_movers 拒绝 grain='daerah' 因为
LADONG/BORONG对县粮食的报道太少,不适合诚实的人
切。 fama_price_history 接受daerah仅限零售呼叫者。
除上述MCP配置外,所有工具都需要零设置。无API 钥匙。客户端没有速率限制(上游有12小时KV 边缘缓存,因此重复查询基本上是免费的)。
示例对话
你: 这个星期在雪兰没有种子的红瓜价格是多少?
克劳德 (电话
search_items(query="tembikai")→ 获取项目代码21 → callsfind_cheapest(item_code=21, state="Selangor")):2026-04-20周雪兰无无种红瓜: 只有 1 家商店报告了 PriceCatcher 数据 — Jaya Grocer D'Pulze 网络 在 Sepang 地区 5.20马来西亚令吉/公斤. 其他数据显示NSK Seputeh/Cheras/Kepong出售陶器 类似于 RM 1.69/kg — 如果您在 雪兰莪州雪兰莪。
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是一个精简的协议填充程序——它在一个上面讲MCP JSON-RPC
侧面和标准 fetch() 另一方面。没有商业逻辑,没有
凭据,无数据库绑定。每次工具调用都会精确到
一个上游 /api/v2/mcp/<tool> 端点并传递JSON
通过响应。
保持垫片薄意味着:
- 这里的~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
指向上游的暂存副本(在以下情况下有用
马纳穆拉赫_20240322
新船 /api/v2/mcp/* endpoints),覆盖中的基本URL
wrangler.toml:
[vars]
MANAMURAH_API_BASE = "https://staging.manamurah.com"
协议说明
- 运输: HTTP POST在
/mcp,JSON-RPC 2.0。CORS打开 基于浏览器的MCP客户端无需代理即可工作。 - 支持的方法:
initialize,tools/list,tools/call,prompts/list,prompts/get,resources/list,resources/read,resources/templates/list,completion/complete,ping. - 工具响应形状: 主控程序
content: [{ type: "text", text: ... }]还附加了原始JSON有效负载的块structuredContent对于喜欢它的客户。 - 错误处理: 业务级别问题(参数无效,无数据
本周)回来作为
{ "status": "no_data", "reason": ... }在HTTP 200中,LLM可以叙述它们。仅交通/基础设施 失败会引发JSON-RPC错误。 - 上游错误: 5xx上
/api/v2/mcp/*以JSON-RPC的形式出现code: -32603上游状态为data.4x传球 通过未更改(客户端验证错误已形成为 上游侧的JSON信封)。
相关
- 马纳穆拉-mcp-2026 --Python stdio MCP服务器涵盖了相同的15个工具。使用此 相反,如果你想要一个仅本地的MCP二进制文件(没有Cloudflare,没有 工人跳)。
- 马纳穆拉赫_20240322
--SvelteKit网站manamurah.com。同时面向公众
网站和
/api/v2/mcp/*此Worker调用的代理端点。 - 马纳穆拉-2026年 --填充所有内容背后的索引的Python ETL 其他。每晚管道,data.gov.my PriceCatcher真相来源。
许可证
MIT。看 许可证.