Skip to main content
Glama
Sree1959GIT

GeM MCP Server

by Sree1959GIT

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_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

πŸ“„ MCP Resources (4 resources)

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

πŸ’¬ MCP Prompts (3 prompts)

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


Related MCP server: tenderapi-mcp

Quick Start

1. Clone and Install

git clone <your-repo-url>
cd gem_mcp
pip install -r requirements.txt

2. 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_mcp

3. Run Locally

python server.py

Server starts at http://localhost:8000:

  • MCP endpoint: http://localhost:8000/mcp

  • Health check: http://localhost:8000/health

4. Connect a Client

Claude Code:

claude mcp add --transport http gem-server http://localhost:8000/mcp

MCP Inspector:

npx -y @modelcontextprotocol/inspector
# Connect to: http://localhost:8000/mcp

Deploy to Render

Option A: Blueprint (one-click)

  1. Push this repo to GitHub

  2. Go to Render Dashboard β†’ New β†’ Blueprint

  3. Connect your repo β€” Render reads render.yaml automatically

  4. Set the MONGODB_URI environment variable in the Render dashboard

Option B: Manual Docker Deploy

  1. New β†’ Web Service β†’ Docker

  2. Point to your repo

  3. Set environment variables:

    • MONGODB_URI = your Atlas connection string

    • MONGODB_DB = gem_mcp

  4. Health check path: /health

After Deploy

# Add to Claude Code
claude mcp add --transport http gem-server https://your-app.onrender.com/mcp

Architecture

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

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


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_to

Rate Limiting

  • Default: 1.5s between requests (configurable via REQUEST_DELAY_SEC env 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 file

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    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.
    3
    -
  • A
    license
    A
    quality
    B
    maintenance
    Exposes 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.
    4
    115 PyPI
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables access to Chile's government procurement data (Mercado PΓΊblico / ChileCompra) via MCP, allowing AI agents to query public procurement information.
    21 npm
    MIT