loading…
Search for a command to run...
loading…
Enables users to search, track, and analyze procurement data from India's Government e-Marketplace (GeM) for live and stored bid listings. It provides specializ
Enables users to search, track, and analyze procurement data from India's Government e-Marketplace (GeM) for live and stored bid listings. It provides specialized tools for monitoring drone-related procurement opportunities and generating detailed bid analysis reports.
A fully-featured, Claude-compatible Model Context Protocol (MCP) server for interacting with India's Government e-Marketplace (GeM) bid data.
Deploy on Render and connect from Claude Code, Claude Web, or any MCP-compatible agent.
| Tool | Description |
|---|---|
search_bids |
Search the live GeM portal by keyword, date, ministry, org |
get_latest_bids |
Crawl latest N pages of bid listings |
search_drone_bids |
Find all drone/UAV procurement opportunities |
get_stored_bids |
Query stored bids with filters (status, ministry, type, etc.) |
get_bid_detail |
Fetch extended info from a bid detail page |
lookup_bid |
Look up a specific bid by number from the database |
get_bid_stats |
Database statistics (counts, top ministries, etc.) |
cleanup_old_bids |
Delete bids older than N days |
export_bids |
Export all stored bids as JSON |
| URI | Description |
|---|---|
gem://keywords |
Monitored drone/UAV keywords list |
gem://config |
Server configuration (non-sensitive) |
gem://stats |
Live database statistics |
gem://urls |
GeM portal URL structure and endpoints |
| Prompt | Description |
|---|---|
analyze_procurement |
Sector-specific procurement analysis workflow |
drone_opportunity_report |
Comprehensive drone/UAV opportunity report |
bid_deep_dive |
Detailed analysis of a specific bid |
git clone <your-repo-url>
cd gem_mcp
pip install -r requirements.txt
Copy .env.example to .env and set your MongoDB connection string:
cp .env.example .env
# MongoDB Atlas free tier
MONGODB_URI=mongodb+srv://user:[email protected]/?retryWrites=true&w=majority
MONGODB_DB=gem_mcp
python server.py
Server starts at http://localhost:8000:
http://localhost:8000/mcphttp://localhost:8000/healthClaude Code:
claude mcp add --transport http gem-server http://localhost:8000/mcp
MCP Inspector:
npx -y @modelcontextprotocol/inspector
# Connect to: http://localhost:8000/mcp
render.yaml automaticallyMONGODB_URI environment variable in the Render dashboardMONGODB_URI = your Atlas connection stringMONGODB_DB = gem_mcp/health# Add to Claude Code
claude mcp add --transport http gem-server https://your-app.onrender.com/mcp
Client (Claude Code / Claude Web / Any MCP Agent)
│
│ MCP Protocol (Streamable HTTP)
▼
┌─────────────────────────────────┐
│ server.py (FastMCP + Starlette)│ ← Render Web Service
│ POST /mcp — MCP endpoint │
│ GET /health — health check │
├─────────────────────────────────┤
│ gem_scraper.py │ ← Scraping + parsing logic
│ (requests + BeautifulSoup) │
└─────────┬───────────────────────┘
│ │
▼ ▼
MongoDB Atlas bidplus.gem.gov.in
(persistent (live scraping)
storage)
| Field | Description |
|---|---|
bid_no |
Unique bid number (e.g. GEM/2024/B/123456) |
title |
Bid title / product description |
quantity |
Number of units required |
uom |
Unit of measurement |
start_date |
Bid opening date |
end_date |
Bid closing deadline |
ministry |
Procuring ministry/department |
buyer_org |
Buying organization |
bid_type |
BID / RA (Reverse Auction) / Service BID |
status |
open / closed / awarded |
detail_url |
Full URL to bid detail page |
is_relevant |
Auto-tagged if matches drone/UAV keywords |
BASE: https://bidplus.gem.gov.in
Listings:
/all-bids → All bids (paginated)
/bidlists → Ongoing bids
/bidresultlists → Completed bids
/advance-search → Search (POST)
Detail:
/bidding/bid/getBidResultView/{id}
Search POST params:
search_bid, ministry, org_name, bid_no, date_from, date_to
REQUEST_DELAY_SEC env var)gem_mcp/
├── server.py ← MCP server (main entry point)
├── gem_scraper.py ← Scraping logic + MongoDB operations
├── requirements.txt ← Python dependencies
├── Dockerfile ← Container for Render
├── render.yaml ← Render blueprint
├── .env.example ← Environment variable template
├── .gitignore ← Git ignore rules
└── README.md ← This file
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"gem-mcp-server": {
"command": "npx",
"args": []
}
}
}