Skip to main content
Glama
mambalabsdev

Open Tender and RFP Finder MCP Server

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

Related MCP server: EU Tender MCP

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.

Input

Type

Description

keywords

array

Words 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_keywords

array

Drop a notice whose title or description contains any of these.

cpv_prefixes

array

Keep 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.

countries

array

Two letter buyer country codes, for example GB, DE, CA. A portal that covers none of them is skipped.

portals

array

Portals to read. Default all four.

published_within_days

string

Publication window in days, 1 to 90, today included. Default 14.

only_open

string

Drop notices whose deadline has passed. Default true.

min_value

string

Drop notices valued below this number, in the notice currency. Notices with no value are kept.

max_notices

string

Notice rows per run, newest first, up to 5000. Each notice row is billed. Default 100.

only_new

string

Skip notices an earlier run with the same state_key returned. Default false.

state_key

string

Names the seen list for only_new.

max_charge_usd

string

Optional. 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.

Event

Free plan

Bronze

Silver

Gold

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.

Available Tools

1 tool
find_open_tendersFind open tenders and RFPsA
Read-only

Find open public tender and RFP notices that match keywords, CPV codes, and buyer countries, read from four official portals with no key: UK Contracts Finder, UK Find a Tender, EU TED (Tenders Electronic Daily), and CanadaBuys. Returns one row per notice with portal, notice_id, notice_url, title, description_excerpt, buyer_name, buyer_country, published_at, deadline_at, days_to_deadline, estimated_value, currency, category_codes (CPV or UNSPSC), contract_type, procedure, sme_suitable (UK), buyer_contact_email, matched_keywords, and match_source. Filters run before billing. When nothing matches, one free no_results row says why. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN; Apify charges per notice row returned plus a run start.

ParametersJSON Schema
NameRequiredDescriptionDefault
portalsNoPortals to read. Default all four.
keywordsNoWords 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.
only_newNoSkip notices an earlier run with the same state_key returned. Default false.
countriesNoTwo letter buyer country codes, for example GB, DE, CA. A portal that covers none of them is skipped.
min_valueNoDrop notices valued below this number, in the notice currency. Notices with no value are kept.
only_openNoDrop notices whose deadline has passed. Default true.
state_keyNoNames the seen list for only_new.
max_noticesNoNotice rows per run, newest first, up to 5000. Each notice row is billed. Default 100.
cpv_prefixesNoKeep 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.
max_charge_usdNoOptional. The run stops before any row that would take its charges over this amount.
exclude_keywordsNoDrop a notice whose title or description contains any of these.
published_within_daysNoPublication window in days, 1 to 90, today included. Default 14.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only and open-world, but the description adds substantial value beyond them: per-notice-row billing plus a run start charge, filters executing pre-billing, a free no_results row, and failures returned as errors carrying a run ID. This is a genuinely rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then the return columns, then billing, error, and auth facts. The column enumeration is long but earns its place given there is no output schema; only minor density could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned fields, and it covers auth, billing model, edge cases, and error semantics. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 12 parameters are already well documented in the schema itself. The description references keyword/CPV/country filtering but adds no syntax or format detail beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find open public tender and RFP notices') and immediately names the exact scope: keywords, CPV codes, buyer countries across four named portals. An agent knows precisely what it retrieves without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Notes the APIFY_TOKEN requirement, that filters run before billing, and how no-match and failure cases resolve, giving clear operational context. There are no siblings to differentiate against, and it stops short of explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedfind_open_tenders

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables search and analysis of European public procurement tenders, including EU above-threshold (TED) and below-threshold from 11 national sources, with hybrid search and filtering.
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Enables searching for EU public-procurement tenders, analyzing cross-border risk, and understanding tender details through tools for CPV code lookup, EU threshold checks, red-flag scanning, and SME fit scoring.
    7
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides normalized search over public-sector tender notices from TED, covering Spain and the rest of the EU. Supports filtering by country, keyword, CPV prefix, and publication recency, returning tender details and related links.
    1
    -