Skip to main content
Glama
lalit3001

Mandi Price Advisor MCP Server

by lalit3001

Mandi Price Advisor — MCP Server

An MCP server that gives farmers and traders daily mandi (wholesale market) commodity prices across India, lets them compare markets, and — critically — sets price alerts that message them on Telegram when a threshold is crossed.

This goes beyond fetch-only MCP wrappers: the scheduler acts on the user's behalf over time, making the system genuinely agentic.

Architecture

Claude / any MCP client
        │  tools · resources · prompts
        ▼
MCP Server (Streamable HTTP)
        ├── Tools: get_mandi_price, compare_markets, get_price_trend,
        │           set_price_alert, list_my_alerts, cancel_alert
        ├── Resources: mandi://commodity/{name}/state/{state}/latest
        │              mandi://commodity/{name}/market/{market}/history
        └── Prompts: daily_selling_advisory
        │
        ├── SQLite (cache, alerts, price history)
        ├── api.data.gov.in (verified mandi dataset)
        └── APScheduler → Telegram Bot API

Key design decision: Price facts are always fetched from data.gov.in or read from a validated SQLite cache — never generated or interpolated by an LLM. The LLM's only job is understanding the user's request and phrasing the response.

Related MCP server: Market Brief

Data Source (Verified)

Field

Value

Dataset

Current Daily Price of Various Commodities from Various Markets (Mandi)

Publisher

Ministry of Agriculture and Farmers Welfare

Resource ID

9ef84268-d588-465a-a308-a864a43d0070

Endpoint

https://api.data.gov.in/resource/9ef84268-d588-465a-a308-a864a43d0070?api-key={KEY}&format=json

Fields

state, district, market, commodity, variety, grade, arrival_date, min_price, max_price, modal_price

Update cadence

Once per day (not real-time)

Get a free API key instantly at data.gov.in — no approval wait.

Quick Start

1. Install dependencies

cd mandi-advisor-mcp
python -m venv .venv
.venv\Scripts\activate        # Windows
# source .venv/bin/activate   # macOS/Linux
pip install -r requirements.txt

2. Configure environment

copy .env.example .env        # Windows
# cp .env.example .env        # macOS/Linux

Edit .env:

DATA_GOV_IN_API_KEY=your_key_from_datagovin
TELEGRAM_BOT_TOKEN=your_token_from_BotFather

3. Set up Telegram

  1. Message @BotFather on Telegram → /newbot

  2. Copy the bot token into .env

  3. Message your bot /start — the bot replies with your chat_id (background polling starts automatically when the server runs)

  4. Use that chat_id when calling set_price_alert

4. Run the MCP server

python -m mcp_server.server

Server starts on http://0.0.0.0:8000 with Streamable HTTP transport. The alert scheduler and Telegram /start bot polling run in the background.

5. Connect from Cursor / Claude Desktop

Add to your MCP client config:

{
  "mcpServers": {
    "mandi-advisor": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

MCP Surface

Tools

Tool

Description

get_mandi_price

Latest min/max/modal price for a commodity, optionally by state/market

compare_markets

Compare modal prices across states to find the best market

get_price_trend

Modal price trend over N days from cached history

set_price_alert

Action tool — Telegram alert when threshold is crossed

list_my_alerts

List active alerts for a chat ID

cancel_alert

Cancel an alert by ID

Resources

  • mandi://commodity/{commodity}/state/{state}/latest

  • mandi://commodity/{commodity}/market/{market}/history

Prompts

  • daily_selling_advisory(commodity, location?, state?, market?) — "Should I sell today?" briefing grounded in fetched data

Alert Behavior

  1. User calls set_price_alert(commodity="Onion", market="Pune", threshold_price=2000, direction="above", telegram_chat_id="123456")

  2. Alert stored in SQLite

  3. Scheduler (every 6h) batch-fetches prices for all watched commodity/market pairs

  4. On threshold cross → Telegram message sent, alert marked fired (one-shot)

Example notification:

🔔 Price Alert: Onion at Pune market is now ₹2,100/quintal (as of 2026-07-27), above your ₹2,000 alert.

Running Tests

pytest eval/ -v

Tests cover:

  • API response parsing and httpx-mocked fetch/caching

  • Alert threshold edge cases (above/below, exact threshold, missing data)

  • Cache hit/expiry behavior

  • End-to-end scheduler with mocked Telegram

  • MCP tool registration and prompt location resolution

  • Telegram /start bot handler

Deployment

Deploy to Railway, Render, or similar always-on host (alerts require a persistent scheduler).

Docker:

docker build -t mandi-advisor-mcp .
docker run -p 8000:8000 --env-file .env mandi-advisor-mcp

Railway / Render: use the included railway.toml or render.yaml with the Dockerfile.

python -m mcp_server.server

Set environment variables on the host. Recommended: ALERT_CHECK_INTERVAL_HOURS=6, CACHE_TTL_SECONDS=21600, TELEGRAM_POLLING_ENABLED=true.

Disclaimers

Prices are sourced from the Government of India's daily mandi price dataset and update once per day, not in real time. Always confirm final prices at the actual market before making a selling decision.

This tool does not execute trades or transactions — it only informs and alerts.

Project Structure

mandi-advisor-mcp/
├── mcp_server/          # MCP tools, resources, prompts, server entrypoint
├── data_layer/          # data.gov.in client, SQLite, alert logic
├── scheduler/           # APScheduler alert checker
├── notifications/       # Telegram Bot API wrapper
├── eval/                # Tests and API response fixtures
└── requirements.txt

License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Track prices & price history on any online shop, with alerts and an API

  • Real-time crypto prices from Binance, Coinbase, Kraken, OKX, and Bybit

  • Keyless prediction-market data across 12 venues plus paper-trading of crypto spot, futures, and PM.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lalit3001/mandi-advisor-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server