Skip to content

eu.tendfeed/tendfeed

by tendfeed.eu · remote · no sign-in to list tools · v1.0.1 · published by eu.tendfeed

Bid/no-bid verdicts for open EU tenders, from 592,000 real TED contract awards.

Changes · 1

4 tools: 1 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http tendfeed https://tendfeed.eu/api/mcp/tendfeed

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "search_tenders" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "search_tenders" says "search": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

4 tools

Changes things 1Claude Code: ask
  • search_tendersOpen EU tenders with a bid/no-bid verdict (Worth-It score, reason, competition density, price corridor where robust, deadline, SME-fit).1 finding

    Why it is in this group

    • The name "search_tenders" says "search": a word for reading.
    • The description's first verb is "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "search_tenders" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "search_tenders" says "search": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Open EU tenders with a bid/no-bid verdict (Worth-It score, reason, competition density, price corridor where robust, deadline, SME-fit). Filter by sector (CPV division), country (NUTS), SME-only, min score. Guests (no key) get the expired-tender board plus a live_matched count; an API key (Authorization: Bearer cfm_live_…) with an active TendFeed subscription unlocks the live, still-biddable board. Data/research tool over TED (Tenders Electronic Daily, CC BY 4.0). No guarantee of award.

    Annotations the server declares

    • title: Search open tenders
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
Only reads 3Claude Code: allow
  • find_low_competition_lanesRank CPV sector "lanes" by OBSERVED competition density from the full corpus of 530,000 real EU awards: median bidders, single-bidder share, bid-rate, median value, beachhead score…No findings

    Why it is in this group

    • The name "find_low_competition_lanes" says "find": a word for reading.
    Description, as the server wrote it
    Rank CPV sector "lanes" by OBSERVED competition density from the full corpus of 530,000 real EU awards: median bidders, single-bidder share, bid-rate, median value, beachhead score. Answers "where is competition thinnest right now". It does NOT estimate the user's probability of winning — thin competition is a selection signal, not a win forecast. Returns the top-ranked lanes only (see "limit"); the total count is in coverage.lanes_ranked. Data/research tool over TED (Tenders Electronic Daily, CC BY 4.0). No guarantee of award.

    Annotations the server declares

    • title: Find low-competition lanes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • find_winnable_lanesDEPRECATED — use find_low_competition_lanes instead; this alias behaves identically and stays available for existing clients.No findings

    Why it is in this group

    • The name "find_winnable_lanes" says "find": a word for reading.
    Description, as the server wrote it
    DEPRECATED — use find_low_competition_lanes instead; this alias behaves identically and stays available for existing clients. The old name wrongly implied a win forecast: TendFeed measures observed competition density, not the probability that you win. Data/research tool over TED (Tenders Electronic Daily, CC BY 4.0). No guarantee of award.

    Annotations the server declares

    • title: Find low-competition lanes (deprecated name)
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_verdictPull one versioned verdict object by tender id (decision, score, per-channel evidence, price status, reason).No findings

    Why it is in this group

    • The name "get_verdict" says "get": a word for reading.
    Description, as the server wrote it
    Pull one versioned verdict object by tender id (decision, score, per-channel evidence, price status, reason). Requires an API key (Authorization: Bearer cfm_live_…) with an active TendFeed subscription; without one you get a machine-readable key-required or subscription-required answer. Data/research tool over TED (Tenders Electronic Daily, CC BY 4.0). No guarantee of award.

    Annotations the server declares

    • title: Get one verdict
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http tendfeed https://tendfeed.eu/api/mcp/tendfeed

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__tendfeed__find_low_competition_lanes",
      "mcp__tendfeed__find_winnable_lanes",
      "mcp__tendfeed__get_verdict"
    ],
    "ask": [
      "mcp__tendfeed__search_tenders"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tendfeed. Review it before you use it.