mcp-server

manamurah/mcp-server

3.2

If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

ManaMurah MCP Server provides Malaysian price data from KPDN Pricecatcher, enabling integration with AI tools for querying consumer goods prices.

Tools
4
Resources
0
Prompts
0

ManaMurah MCP Server

A Model Context Protocol (MCP) server for Malaysian price data from KPDN Pricecatcher. This server enables direct integration with Claude Desktop and other MCP-compatible AI tools for querying Malaysian consumer goods prices.

Features

šŸ‡²šŸ‡¾ Official Malaysian Price Data - KPDN Pricecatcher data via OpenDOSM
šŸ¤– AI-Optimized - Natural language queries with intelligent parsing
⚔ Serverless - Deployed on Cloudflare Workers for global performance
šŸ”’ Rate Limited - Built-in abuse protection and fair usage
šŸ“Š Rich Analytics - Price comparisons, trends, and market insights
šŸŽÆ Claude Desktop Ready - One-click setup for Claude Desktop integration

Live Demo

The MCP server is deployed and accessible at:

Quick Start

Deploy to Cloudflare Workers

# Clone or create from template
npm create cloudflare@latest manamurah-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless

# Replace src/ contents with ManaMurah implementation
# (Copy files from this directory)

# Install dependencies
npm install

# Deploy to Cloudflare Workers
npm run deploy

Connect to Claude Desktop

  1. Get your deployed Workers URL (e.g., https://mcp.manamurah.com)
  2. Add to Claude Desktop MCP configuration:
{
  "manamurah": {
    "command": "node",
    "args": ["/path/to/mcp-client.js"],
    "env": {
      "MCP_SERVER_URL": "https://mcp.manamurah.com/sse"
    }
  }
}
  1. Restart Claude Desktop
  2. Start asking about Malaysian prices!

Available Tools

šŸ” get_malaysian_prices

Search for current prices with natural language queries.

Examples:

  • "rice prices in Kuala Lumpur"
  • "cheapest chicken in Penang hypermarkets"
  • "cooking oil under RM20 in Selangor"

šŸ“Š compare_prices

Compare prices across different regions or retail chains.

Examples:

  • Compare rice prices between KL and Penang
  • Find price differences across retail chains
  • Regional price analysis for specific items

šŸ“ˆ analyze_price_trends

Analyze price trends and market patterns over time.

Examples:

  • Price volatility analysis
  • Seasonal price patterns
  • Regional market trends

šŸ’” get_market_insights

Get market intelligence and insights about price anomalies.

Examples:

  • Recent price changes
  • Market anomaly detection
  • Regional price differences

Example Usage

Basic Price Search

User: "What are rice prices in Kuala Lumpur?"

MCP Response:
šŸ“Š Summary: Rice prices in Kuala Lumpur range from RM15.20-RM25.80 per 5kg

šŸ’” Key Insights:
• Hypermarkets offer 18% lower prices than convenience stores
• Significant price variation exists across different retailers

šŸ“ˆ Price Statistics:
• Average: RM18.50
• Range: RM15.20 - RM25.80
• Price Variation: 32%

[Detailed price listings follow...]

Price Comparison

User: "Compare chicken prices between Penang and Johor"

MCP Response:
šŸ“Š Summary: Penang has lower average chicken prices (RM8.20) compared to Johor (RM9.10)

## Regional Comparison

### 1. Penang
• Average Price: RM8.20
• Price Range: RM7.50 - RM9.80
• Sample Size: 15 price points

### 2. Johor
• Average Price: RM9.10
• Price Range: RM8.20 - RM11.50
• Sample Size: 12 price points

šŸ’” Comparison Insights:
• Most Affordable: Penang (RM8.20 average)
• Potential Savings: RM0.90 (9.9%) by choosing Penang

Development

Local Development

# Install dependencies
npm install

# Start development server
npm run dev

# Type checking
npm run type-check

# Linting
npm run lint

Project Structure

src/
ā”œā”€ā”€ index.ts                 # Main MCP server implementation
ā”œā”€ā”€ utils/
│   ā”œā”€ā”€ api-client.ts        # ManaMurah API client
│   ā”œā”€ā”€ query-parser.ts      # Natural language query parsing
│   ā”œā”€ā”€ response-formatter.ts # MCP response formatting
│   └── rate-limiter.ts      # Rate limiting implementation
└── types/
    └── manamurah.ts         # TypeScript type definitions

Configuration

Environment variables in wrangler.toml:

[vars]
MANAMURAH_API_BASE = "https://api.manamurah.com"
RATE_LIMIT_ENABLED = "true"
CACHE_TTL = "300"
MAX_QUERIES_PER_MINUTE = "10"
MAX_QUERIES_PER_HOUR = "100"

Rate Limits

  • Per Minute: 10 requests
  • Per Hour: 100 requests
  • Automatic Cleanup: Old request data is cleaned up automatically

Rate limits help ensure fair usage and prevent abuse while allowing genuine research and analysis.

Features

Natural Language Processing

  • Intelligent extraction of items, locations, and price constraints
  • Support for Malaysian terms (e.g., "beras" for rice, "ayam" for chicken)
  • Price range detection ("under RM20", "between RM10 and RM15")
  • Location recognition for all Malaysian states and major cities

Rich Response Formatting

  • Markdown-formatted responses optimized for Claude Desktop
  • Statistical analysis with averages, ranges, and insights
  • Suggested follow-up questions for continued exploration
  • Data source attribution and freshness indicators

Error Handling

  • User-friendly error messages with helpful suggestions
  • Graceful degradation when data is unavailable
  • Query improvement recommendations
  • Comprehensive error logging for debugging

Data Source

Official Government Data: KPDN Pricecatcher program via OpenDOSM

  • Daily data updates (subject to government publication schedules)
  • Comprehensive coverage of Malaysian retail prices
  • Data includes hypermarkets, supermarkets, convenience stores, and grocery shops
  • Covers all Malaysian states and major urban centers

Support

Getting Help

Contact

License

MIT License - see LICENSE file for details.

Contributing

Contributions welcome! Please read our contributing guidelines and submit pull requests for any improvements.


Built with ā¤ļø for the Malaysian data community

Making Malaysian price data accessible to AI tools and researchers worldwide.