Skip to main content
Glama

TED tender and EU procurement monitor

uplifted_novice_vbl--ted-tender-watch

Run the Apify TED tender monitor for new or changed EU procurement notices filtered by CPV, country, keyword, value, and notice type. Supports sample mode, stateful monitoring, JSON datasets, and signed webhooks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cpvCodesNoOptional 2-8 digit CPV code prefixes such as 72 for IT or 45 for construction.
keywordsNoOptional full-text terms or phrases, OR-matched by TED.
stateKeyNoOptional advanced override for deliberately sharing monitor state across Tasks.
countriesNoOptional ISO 3166 alpha-3 buyer country codes such as DEU, FRA, or ESP.
sampleModeNoReturn a bounded free preview without writing monitor state or triggering tender charges.
webhookUrlNoOptional HTTPS endpoint that receives delivered tender records after dataset and state delivery.
minValueEurNoClient-side minimum for known procedure-level EUR values.
noticeTypesNoOfficial TED notice-type codes. Defaults to competition notices.
lookbackDaysNoMinimum overlap window for late publication and missed schedules.
maxNewPerRunNoMaximum new or changed tenders delivered and charged in one run.
webhookSecretNoRequired with webhookUrl. Used for the X-Watch-Signature HMAC-SHA256 header.
includeChangeNoticesNoInclude change and corrigendum notices alongside the selected notice types.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark the tool open-world, non-idempotent, and non-destructive; the description adds that it is stateful, can emit JSON datasets, and supports signed webhooks, which is useful behavioral context beyond the hints. It does not contradict the annotations. The main description could more directly warn about charges or state writes, but sample mode is mentioned and the schema fills in the details.

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

Conciseness5/5

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

Two sentences: the first front-loads purpose and scope, the second lists supported capabilities in a compact noun phrase list. No wasted words or repetition of schema details. Excellent density.

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

Completeness4/5

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

For a 12-parameter tool with no output schema, the description gives a high-level map of inputs and outputs ('JSON datasets', 'signed webhooks') and names the major operational modes. The absence of an output schema is partly mitigated by mentioning datasets and tender records in schema fields, but the main description does not describe the default run behavior or return shape in detail. Still, combined with the rich parameter schema, it is sufficiently complete for invocation.

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%, and every parameter has its own description, default, and constraints, so the baseline is 3. The tool description summarizes the filter categories (CPV, country, keyword, value, notice type) but adds no parameter-specific detail beyond the schema. It neither compensates for gaps nor introduces confusion.

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?

The description opens with a specific action ('Run the Apify TED tender monitor') and a concrete resource ('new or changed EU procurement notices'), then enumerates the filter dimensions (CPV, country, keyword, value, notice type). There are no sibling tools, so no differentiation is needed, and the title reinforces the domain. This is fully unambiguous.

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?

The description clearly frames the tool as a monitor for new or changed notices, which tells an agent when to reach for it, and the second sentence advertises sample mode for previews versus stateful monitoring for ongoing runs. It does not list explicit exclusions or alternatives, but with no siblings the context is sufficient. A small deduction for not stating prerequisites such as sampleMode=false for paid runs, though that is covered in the schema.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tool purposes. The single tool's description clearly defines what it does.

Naming Consistency3/5

The name follows a snake_case pattern but includes an opaque generated prefix ('uplifted_novice_vbl--') that does not align with conventional verb_noun naming. It is readable and descriptive enough, but the prefix makes it feel inconsistent with common tool naming standards.

Tool Count2/5

A single tool for a domain like EU tender monitoring is very thin. The tool bundles many features, but the server lacks separate operations for managing monitors, retrieving results, or handling datasets, making the surface feel incomplete for the scope.

Completeness2/5

The tool can start a monitoring run with filters, but there are no accompanying tools to check run status, retrieve results, manage saved monitors, or configure webhooks independently. This leaves significant gaps for an agent that needs to interact with the monitoring lifecycle beyond the initial run.