GeM MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GeM MCP Serversearch for open drone procurement bids this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GeM MCP Server ā Government e-Marketplace Intelligence
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.
Features
š§ MCP Tools (9 tools)
Tool | Description |
| Search the live GeM portal by keyword, date, ministry, org |
| Crawl latest N pages of bid listings |
| Find all drone/UAV procurement opportunities |
| Query stored bids with filters (status, ministry, type, etc.) |
| Fetch extended info from a bid detail page |
| Look up a specific bid by number from the database |
| Database statistics (counts, top ministries, etc.) |
| Delete bids older than N days |
| Export all stored bids as JSON |
š MCP Resources (4 resources)
URI | Description |
| Monitored drone/UAV keywords list |
| Server configuration (non-sensitive) |
| Live database statistics |
| GeM portal URL structure and endpoints |
š¬ MCP Prompts (3 prompts)
Prompt | Description |
| Sector-specific procurement analysis workflow |
| Comprehensive drone/UAV opportunity report |
| Detailed analysis of a specific bid |
Related MCP server: tenderapi-mcp
Quick Start
1. Clone and Install
git clone <your-repo-url>
cd gem_mcp
pip install -r requirements.txt2. Configure MongoDB
Copy .env.example to .env and set your MongoDB connection string:
cp .env.example .env# MongoDB Atlas free tier
MONGODB_URI=mongodb+srv://user:password@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority
MONGODB_DB=gem_mcp3. Run Locally
python server.pyServer starts at http://localhost:8000:
MCP endpoint:
http://localhost:8000/mcpHealth check:
http://localhost:8000/health
4. Connect a Client
Claude Code:
claude mcp add --transport http gem-server http://localhost:8000/mcpMCP Inspector:
npx -y @modelcontextprotocol/inspector
# Connect to: http://localhost:8000/mcpDeploy to Render
Option A: Blueprint (one-click)
Push this repo to GitHub
Go to Render Dashboard ā New ā Blueprint
Connect your repo ā Render reads
render.yamlautomaticallySet the
MONGODB_URIenvironment variable in the Render dashboard
Option B: Manual Docker Deploy
New ā Web Service ā Docker
Point to your repo
Set environment variables:
MONGODB_URI= your Atlas connection stringMONGODB_DB=gem_mcp
Health check path:
/health
After Deploy
# Add to Claude Code
claude mcp add --transport http gem-server https://your-app.onrender.com/mcpArchitecture
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)Data Fields
Field | Description |
| Unique bid number (e.g. |
| Bid title / product description |
| Number of units required |
| Unit of measurement |
| Bid opening date |
| Bid closing deadline |
| Procuring ministry/department |
| Buying organization |
| BID / RA (Reverse Auction) / Service BID |
| open / closed / awarded |
| Full URL to bid detail page |
| Auto-tagged if matches drone/UAV keywords |
GeM Portal URLs (Reverse-Engineered)
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_toRate Limiting
Default: 1.5s between requests (configurable via
REQUEST_DELAY_SECenv var)GeM is a public portal ā public bid data is freely accessible
Don't run concurrent crawls to avoid IP blocking
Files
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 fileThis server cannot be deployed
Maintenance
Related MCP Connectors
Government tenders, awards and pre-tender pipelines from 21 official sources as MCP tools.
MCP access to the U.S. federal procurement graph: contracts, opportunities, entities, and more.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
UK public procurement data for AI agents: tenders, contracts, buyer and supplier profiles.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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.3-
- AlicenseAqualityBmaintenanceExposes French and EU public procurement data (BOAMP + TED) as MCP tools for AI agents, enabling search for tenders, awards, and winner intelligence via typed filters.4141 PyPIMIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to search and analyze federal government contract opportunities and awards from SAM.gov and USASpending.gov, with tools for contract search, detail, agency spending, and trending sectors.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query South Africa government tender data from National Treasury eTenders via a keyless MCP gateway.16 npmMIT