com.mambabuilt/mcp-open-tender-rfp-finder

Open public tenders and RFPs from UK, EU TED, and Canadian portals, one row per notice.

OtherTypeScriptv1.0.0

Open Tender and RFP Finder MCP Server

Smithery Glama score MCP Registry npm version npm downloads license mcpservers.org

An MCP server for the Mamba Labs Open Tender and RFP Finder actor on Apify. Give it keywords, CPV codes, or buyer countries. Each run reads four official public notice portals and returns one row per open tender or RFP notice.

What's Inside

What it does

The actor reads UK Contracts Finder, UK Find a Tender, EU TED (Tenders Electronic Daily), and the CanadaBuys open tender file, all official open data with no key. It keeps the notices that match your keywords and filters and returns one flat row per notice: buyer, buyer country, publication day, response deadline, days to deadline, estimated value and currency, CPV or UNSPSC codes, contract type, procedure, the buyer contact email the notice publishes, and a link. Filtered notices are never billed, and when nothing matches one free row says why.

All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:

{
  "mcpServers": {
    "mamba-open-tender-rfp-finder": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-open-tender-rfp-finder"
      ],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Restart the client. The find_open_tenders tool appears.

Prerequisites

Example prompts

  • "Find open UK and Irish public tenders for software published this week."
  • "Which German and Dutch public bodies are buying IT services worth more than 100,000 EUR right now?"
  • "List open CanadaBuys RFPs for marketing services with their deadlines."

Tool

find_open_tenders. One tool. Example arguments:

{
  "keywords": [
    "software"
  ],
  "countries": [
    "GB"
  ],
  "published_within_days": "7"
}

Inputs

Every buyer facing input of the actor, unchanged. Omitted inputs take the actor's own defaults. Numbers and booleans are sent as strings.

InputTypeDescription
keywordsarrayWords or phrases to find in the notice title or description, any case. A notice matches any of them. EU TED matches over the full notice text in every language. Empty: every open notice in the window. Up to 25.
exclude_keywordsarrayDrop a notice whose title or description contains any of these.
cpv_prefixesarrayKeep notices with a CPV code that starts with one of these, for example 72 or 48000000. CanadaBuys uses UNSPSC codes, so a CPV filter leaves it out.
countriesarrayTwo letter buyer country codes, for example GB, DE, CA. A portal that covers none of them is skipped.
portalsarrayPortals to read. Default all four.
published_within_daysstringPublication window in days, 1 to 90, today included. Default 14.
only_openstringDrop notices whose deadline has passed. Default true.
min_valuestringDrop notices valued below this number, in the notice currency. Notices with no value are kept.
max_noticesstringNotice rows per run, newest first, up to 5000. Each notice row is billed. Default 100.
only_newstringSkip notices an earlier run with the same state_key returned. Default false.
state_keystringNames the seen list for only_new.
max_charge_usdstringOptional. The run stops before any row that would take its charges over this amount.

Pricing

Pay per event on Apify, billed to your Apify account. Prices in USD.

EventFree planBronzeSilverGold
notice-row, per notice row$0.003$0.00285$0.0027$0.00255
apify-actor-start, per run start$0.002$0.002$0.002$0.002

The no results row and notices skipped by only_new are free.

Your keys

The actor needs no key. Every portal is an official open data API or file, read directly, and the actor holds no key of any kind. Mamba Labs pays the platform and proxy costs of the run.

Full actor documentation

apify.com/mambalabs/open-tender-rfp-finder

License

MIT. See LICENSE.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @mambalabsdev/mcp-open-tender-rfp-finder

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "com-mambabuilt-mcp-open-tender-rfp-finder": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-open-tender-rfp-finder"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@mambalabsdev/mcp-open-tender-rfp-findernpm

Compatible MCP Clients

com.mambabuilt/mcp-open-tender-rfp-finder works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More