Skip to main content
Glama

sled-feed β€” Government procurement feeds with change tracking (MCP)

Search live US (Mississippi) and UK (Contracts Finder) government bids, RFPs and tenders β€” and get the one thing the official portals won't push you: what CHANGED. Deadline extensions, new awards, and posted addenda, exposed as Model Context Protocol (MCP) tools so an AI agent can query procurement data directly.

  • πŸ‡ΊπŸ‡Έ Mississippi state government solicitations (official DFA Contract Bid Search)

  • πŸ‡¬πŸ‡§ UK Contracts Finder tenders (official Cabinet Office OCDS API, Open Government Licence v3.0)

Both feeds expose the same three MCP tools. The standalone server (mcp_server.py) is a thin client that runs the live Apify Actors on demand, so a fresh clone returns real data with no local database to seed.

Tools

Tool

What it does

search_opportunities

Filter live tenders/bids by category, keyword, status, posted/due dates.

get_opportunity

Full record by id, including all document links + the official notice URL.

list_recent_changes

The differentiator β€” deadline changes, new awards (Open β†’ Awarded), added documents over time.

Related MCP server: tenderapi-mcp

Quickstart (standalone MCP server, stdio)

The server is pure Python standard library β€” no pip install required. You only need an Apify API token (free tier works); each call runs the live Actor on your own account.

git clone https://github.com/tobyrichmond12-max/sled-feed.git
cd sled-feed
export APIFY_TOKEN=<your Apify API token>      # required β€” get one at apify.com (free)
export SLED_SOURCE=mississippi                  # or: uk_contracts_finder
python3 mcp_server.py                           # speaks MCP over stdio (JSON-RPC 2.0)

# sanity check without a client:
python3 mcp_server.py --selftest

MCP client config (Claude Desktop / VS Code / Cursor)

{
  "mcpServers": {
    "sled-feed-mississippi": {
      "command": "python3",
      "args": ["/absolute/path/to/sled-feed/mcp_server.py"],
      "env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN", "SLED_SOURCE": "mississippi" }
    },
    "sled-feed-uk": {
      "command": "python3",
      "args": ["/absolute/path/to/sled-feed/mcp_server.py"],
      "env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN", "SLED_SOURCE": "uk_contracts_finder" }
    }
  }
}

No-install alternative: Apify hosted MCP

Both feeds are also callable through Apify's hosted MCP server β€” no clone, no local process:

{
  "mcpServers": {
    "apify-gov-feeds": {
      "url": "https://mcp.apify.com/?tools=toby_richmond/mississippi-procurement-feed,toby_richmond/uk-contracts-finder-feed",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}

Example usage

// search open IT bids
{ "name": "search_opportunities",
  "arguments": { "status": "Open", "keyword": "information", "limit": 5 } }

// the change feed (the differentiator)
{ "name": "list_recent_changes",
  "arguments": { "since": "2026-06-01T00:00:00" } }

Example record (Mississippi):

{
  "solicitation_id": "1601-26-R-RFIN-00066",
  "title": "SPIRIT Management Information System ...",
  "agency": "Mississippi Department of Health",
  "category": "INFORMATION TECHNOLOGY (IT)",
  "status": "Open",
  "due_date": "2026-06-30T15:00:00-05:00",
  "due_timezone": "America/Chicago",
  "document_links": [{ "label": "Solicitation PDF", "url": "https://.../FORM.PDF" }],
  "source_url": "https://www.ms.gov/dfa/contract_bid_search/Bid/Details/45668"
}

Example change event (list_recent_changes):

{ "event": "deadline_changed", "solicitation_id": "1601-26-R-RFIN-00066",
  "old_due_date": "2026-06-30T15:00:00-05:00", "new_due_date": "2026-07-07T15:00:00-05:00" }

Data, schema & privacy

Per solicitation: solicitation_id, title, agency (buying organisation only), category, bid_type, posted_date / due_date (ISO-8601 with explicit timezone and closing time), status (Open / Closed / Awarded / Archived), document_links, source / source_url. The UK feed also carries estimated_value + value_currency.

No personal data. Buyer contact names/emails/phones in the source are stripped at ingestion and re-checked at storage; only solicitation data and the buying organisation name are served. A built-in monitor watches for upstream breakage (renamed fields, response-shape changes, record-count crashes, new status values, or PII drifting toward output) and returns "temporarily unavailable" rather than serving stale or wrong data.

How it works

MCP client ──stdio──> mcp_server.py ──HTTPS──> Apify Actor (run-sync) ──> official gov API
                       (thin client)            (ingest β†’ diff β†’ change-log β†’ serve)

The Actors persist a SQLite snapshot in a named Apify key-value store between runs, so the change history (list_recent_changes) accumulates run over run. Source code for the pipeline, monitor, and storage layer is all in this repo.

License

Code: MIT (see LICENSE). UK Contracts Finder data is provided under the Open Government Licence v3.0 (commercial reuse permitted). Mississippi data is public-record government information.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    The most comprehensive keyless federal-data MCP server. 36 tools for SAM.gov + USAspending + Federal Register + eCFR + Grants.gov. No API key, no registration, no signup. Works in Claude Desktop, Claude Code, Codex CLI, Cursor, Continue, Gemini CLI, and any MCP-aware host.
    6
    152
    93 npm
    8
    MIT
  • 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
    141 PyPI
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Ukrainian public procurement (Prozorro) that exposes tools to search tenders, retrieve tender details and cards, list and read tender documents.
    -
  • F
    license
    A
    quality
    C
    maintenance
    MCP server for querying SAM.gov federal contract opportunities, providing precise search, retrieval, and attachment tools with full source traceability and explicit abstention when data is absent.
    5
    -