Click on "Install 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 Serverfind latest drone procurement bids from the Ministry of Defence"
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 |
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 installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.