Licita
Server Details
Spanish/EU procurement intelligence for agents; x402 or prepaid credits.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
11 toolsbilling_get_balanceARead-onlyIdempotentInspect
[GET /v1/billing — $0.00] Check the prepaid credit balance for a client key (in cents and USD). Always free. Returns not_found when no account exists yet — buy credits via billing_purchase_credits to create one.
| Name | Required | Description | Default |
|---|---|---|---|
| client_key | Yes | prepaid credit account key (must match the key used when buying credits) | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive safety, so the description only needs to add extra behavior. It does so by disclosing the not_found response for missing accounts and the cost implication ('Always free'). No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the endpoint, cost, and purpose, then adds the key fallback behavior. Every phrase adds information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only balance check with rich annotations and 100% schema coverage, the description is complete. It covers the return concept, failure mode, cost, and how to handle a missing account, so an agent can invoke it correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description adds little beyond the schema. It clarifies the balance is returned 'in cents and USD', but client_key and payment_token semantics are already documented in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Check the prepaid credit balance for a client key (in cents and USD).' It differentiates itself from the sibling billing_purchase_credits by explicitly routing account creation there. The scope and output unit are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when the tool is appropriate, notes it is 'Always free', and gives an explicit fallback: when no account exists, 'buy credits via billing_purchase_credits to create one.' This provides clear tool-selection guidance for the main edge case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
billing_purchase_creditsAInspect
[POST /v1/billing/credits/5 — $5.00] Buy a prepaid credit bundle (5, 10 or 25 USD) paid per-endpoint via x402 (mirrors REST POST /v1/billing/credits/:amount). Set amount to the bundle you pay for with payment_token; the proof is verified against that exact bundle, then the account is credited and the balance returned. Afterwards send client_key on every paid tool to pay from balance instead of per-call proofs.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | bundle amount in USD: 5, 10 or 25 | |
| client_key | Yes | prepaid credit account key to credit | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the sequence: proof is verified against the exact bundle, account is credited, balance is returned, and future paid calls can use the balance. It could add failure or duplicate-attempt behavior, but the main post-conditions are clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, purposeful sentences that front-load the action and endpoint and then cover the payment flow and follow-up behavior. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description still states that the balance is returned and explains how to use the purchased credits afterward. It is sufficient for correct invocation, though it does not specify response structure, failure modes, or resolve the payment_token optionality ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning by tying amount to the bundle paid for with payment_token and clarifying that proof is verified against that exact bundle. It also notes client_key's continuing role, though it leaves some ambiguity because payment_token is not required in the schema despite seemingly being central to the purchase.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific action ('Buy a prepaid credit bundle') and clearly scopes the resource to 5/10/25 USD bundles, including the endpoint path. This is readily distinguishable from sibling tools like billing_get_balance, which only reads a balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear operational context: purchase is paid per-endpoint via x402, and after purchase the client_key should be sent on paid tools to switch from per-call proofs to balance. It does not explicitly name when-not-to-use or alternatives, but the post-purchase workflow gives practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_historyARead-onlyIdempotentInspect
[GET /v1/buyers/:id/history — $0.05] Buyer profile by id: award history, supplier concentration (top-supplier share) and per-CPV-division recurrence (median months between awards).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | numeric id from search results | |
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is covered. The description adds the GET method, cost, and output topics, which is useful context, but it does not disclose pagination, data freshness, or rate-limit behavior; these are minor given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence containing the method, path, price, and the three returned data components. Every phrase earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully names what the response covers and even defines the recurrence metric's units. It omits possible time-range/freshness caveats and response-shape details, but for a focused read-only profile tool the definition is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents id, client_key, and payment_token meaningfully. The description only restates 'by id' and describes output fields, so it does not materially improve parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact endpoint, HTTP method, price, and the specific resource: a buyer profile by id. It names the three concrete outputs — award history, supplier concentration, and per-CPV-division recurrence — which clearly differentiates it from sibling company-focused tools like get_company and get_company_awards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or comparisons to alternatives are provided. An agent is left to infer when buyer history is the right tool versus a company-level tool, and no exclusion conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companyARead-onlyIdempotentInspect
[GET /v1/companies/:id — $0.05] Company profile by id: name, country, NIF, aliases and source identifiers (cross-source identity), plus aggregate stats (wins, total awarded value, top CPVs, top buyers).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | numeric id from search results | |
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds genuine context beyond annotations: the HTTP method and endpoint (GET /v1/companies/:id), the per-call cost ($0.05), and the cross-source identity semantics. No description-annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence with the method, endpoint, and cost front-loaded, followed by a scannable field enumeration. The 'plus aggregate stats' grouping cleanly separates profile fields from statistical fields. No filler, though each clause earns its place rather than being minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex read tool with one required parameter, strong annotations, and no output schema, the description covers the essentials: what is returned (profile fields and aggregate stats), how it is keyed, and what it costs. The remaining gap is response structure detail, but the explicit enumeration of return groups mitigates the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — id ('numeric id from search results', exclusiveMinimum 0), client_key, and payment_token are all documented in the schema. The description only reinforces that id is the lookup key ('by id') and adds no syntax, format, or default detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Company profile by id') and enumerates the payload contents: name, country, NIF, aliases, source identifiers, and aggregate stats. This is clear and specific, and the content list implicitly separates it from siblings like get_company_awards and get_company_opportunities, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied ('by id' — you need a company id to fetch its profile), and the id parameter notes ids come from search results. However, there is no explicit when-to-use versus alternatives: nothing says to prefer get_company_awards for award lists or get_company_opportunities for opportunity feeds, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_awardsARead-onlyIdempotentInspect
[GET /v1/companies/:id/awards — $0.05] Paginated award history for a company: dates, lots, values, tender + buyer context.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | numeric id from search results | |
| page | No | ||
| size | No | ||
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, open-world, idempotent, non-destructive behavior. The description adds useful extra behavioral context: results are paginated and the call carries a $0.05 cost, plus a preview of the returned fields. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence conveys endpoint, cost, pagination, resource, and return content with no filler. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description still names the key return areas (dates, lots, values, tender + buyer context) and indicates pagination. It does not specify response shape or ordering, but the required call parameters are documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and the described params already carry good descriptions; page and size are self-explanatory with constraints. The description supports them by calling the result 'paginated' but does not deepen their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource ('award history for a company'), an HTTP verb/path, and the content of the payload ('dates, lots, values, tender + buyer context'). This clearly separates it from siblings such as get_company_opportunities and get_tender.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'award history for a company' gives a clear selection context: use this when the agent needs a company's past awards. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_opportunitiesARead-onlyIdempotentInspect
[GET /v1/companies/:id/opportunities — $0.10] Active/recent tenders matching a company's historical CPV/buyer profile, with a deterministic similarity score (explained in score_explanation).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | numeric id from search results | |
| page | No | ||
| size | No | ||
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (read-only, idempotent, non-destructive), so the bar is lower. The description adds valuable behavioral context beyond annotations: the HTTP method, a deterministic similarity score, the fact that a score_explanation is present, the cost, and the temporal scope ('active/recent'). This goes beyond what annotations or schema alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the endpoint, cost, and primary data scope, then adds the differentiating scoring mechanism. Every clause contributes new information with no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the core purpose and mentions the score_explanation field, which helps an agent know what to expect in the response. Pagination is handled by schema defaults, and payment/auth by parameter descriptions. The only minor gap is whether score_explanation is per-item or top-level, but this is not critical for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (id, client_key, payment_token are described; page and size are not). The description indirectly explains id by referencing a company's profile and clarifies the conceptual output, but it adds little direct parameter-level meaning. Page/size remain only semantically inferable from defaults, and the payment parameters are fully described in the schema. The description partially compensates, but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('opportunities' for a company) and a concrete action (retrieving active/recent tenders), plus a distinctive matching mechanism ('historical CPV/buyer profile' with a 'deterministic similarity score'). This clearly separates it from siblings like search_tenders, get_company_awards, and get_buyer_history without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need tenders matching a particular company's profile. However, it does not explicitly state when not to use it, nor does it name any alternative tools or conditions for choosing them. The usage context is clear from the phrasing but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingARead-onlyIdempotentInspect
[GET /v1/pricing — $0.00] Machine-readable price ladder for all endpoints/tools plus the payment flow. Always free.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds that the tool is always free and that the response is machine-readable, which are useful runtime traits beyond the structured metadata. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact line with the method, cost, and output scope front-loaded. 'Always free' is slightly redundant with '$0.00', but it is still short and reinforces an important calling behavior with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, optional-parameter GET annotated as safe and idempotent, the description provides the essential selection facts: endpoint, scope, output form, and cost. The absence of an output schema is partially mitigated by characterizing the result as a machine-readable price ladder, though exact response structure is not specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the optional payment_token, including dev-mode token vs x402 base64 payload, and the description adds no parameter-specific meaning. With 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the operation as GET /v1/pricing and the output as a machine-readable price ladder. It clearly scopes the resource to all endpoints/tools plus the payment flow, which distinguishes it from sibling billing tools such as billing_get_balance and billing_purchase_credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does not explicitly name sibling alternatives or state when to avoid this tool. The phrase 'for all endpoints/tools plus the payment flow' and 'Always free' imply it is the go-to source for price information, but the when/when-not guidance is left mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_renewalsARead-onlyIdempotentInspect
[GET /v1/renewals — $0.25] Forecast signals for likely re-tenders: contracts/frameworks approaching renewal. Filters: cpv (prefix), buyer, window_months (default 12, max 36), min_confidence=low|medium|high.
| Name | Required | Description | Default |
|---|---|---|---|
| cpv | No | ||
| page | No | ||
| size | No | ||
| buyer | No | ||
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) | |
| window_months | No | ||
| min_confidence | No | low |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful context beyond annotations: the GET endpoint, the $0.25 cost, the forecasting nature of the result, and filter behavior such as cpv prefix matching. It does not describe output format or pagination, but the annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the endpoint and cost, states the purpose, and packs the relevant filters and defaults. No words are wasted, and every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with eight optional parameters, no required parameters, and no output schema, the description covers the core forecast purpose, key filters, defaults, and cost. It does not explain the response payload or how this differs from research/search tools, but the schema and annotations fill most of the remaining invocation gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 25%, so the description needed to compensate. It explains that cpv is a prefix, identifies which parameters act as filters, and states defaults for window_months and min_confidence. However, it omits page, size, and payment-related parameters, and for buyer it only repeats the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation—forecasting signals for likely re-tenders—and identifies the resource as contracts/frameworks approaching renewal. The purpose is clear and distinct, though it does not explicitly contrast it with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use this when you need renewal/forecast signals for contracts or frameworks approaching renewal. It lists filters and defaults, but does not mention when to prefer an alternative tool such as get_company_opportunities or research.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tenderARead-onlyIdempotentInspect
[GET /v1/tenders/:id — $0.02] Full tender detail by id: buyer, CPVs, deadline, estimated value, all awards/lots with winners, plus provenance (source + TED url).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | numeric id from search results | |
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context beyond annotations: it is a paid call ($0.02) and it enumerates the provenance and award fields, giving agents a clear picture of the returned data without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence packs endpoint, pricing, core function, and a detailed field list without redundant words. The HTTP verb and cost are placed at the very start for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description compensates by listing the major response groups (buyer, CPVs, deadline, value, awards/lots, winners, provenance source/TED URL). With parameters documented in the schema and safety covered by annotations, nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents id, client_key, and payment_token. The description only restates that the tool fetches 'by id' and does not deepen meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the endpoint and 'Full tender detail by id', then enumerates the payload (buyer, CPVs, deadline, estimated value, awards/lots, provenance). This clearly names a specific verb/resource and distinguishes it from sibling list/search tools like search_tenders and get_company_awards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by id' makes the precondition explicit and implies this tool is for retrieving complete records once an identifier is known, rather than for discovery or search. It does not explicitly name alternatives or exclusion rules, so it lacks the full when-not-to guidance of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
researchARead-onlyIdempotentInspect
[POST /v1/research — $0.50] High-level EU public procurement intelligence for a topic: recent tenders, relevant renewal signals, company opportunities and active buyers, each with evidence and an evidence-strength confidence label. Deterministic over the licita database (no LLM). Costs $0.50 USDC per call (x402). Use when an agent needs a research brief on a topic rather than raw rows from search_tenders/get_renewals.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | max findings to return | |
| query | Yes | topic to research (matches tender full-text, company/buyer names, renewal signals) | |
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/idempotent/non-destructive. The description adds valuable behavioral context: deterministic over the licita database (no LLM), a $0.50 USDC cost, and that each finding carries an evidence-strength confidence label. It does not discuss rate limits or billing flow, but the cost and determinism disclosures go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded: endpoint/cost, core purpose, output composition, determinism, and usage guidance are all covered in a few sentences. Minor redundancy exists between the '[POST /v1/research — $0.50]' prefix and the later cost sentence, but the structure remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains the return shape at a useful level: tenders, renewal signals, opportunities, buyers, evidence, and confidence label. It also communicates cost and determinism. It doesn't spell out exact response fields or the full payment flow, but the schema covers payment parameters and the description is otherwise sufficient for a read-only research tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query, limit, client_key, and payment_token. The description's topic-related wording aligns with query semantics but adds no new parameter-level detail beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('research'), resource ('EU public procurement intelligence'), and the exact output categories (tenders, renewal signals, opportunities, buyers with evidence and confidence labels). It explicitly contrasts with search_tenders/get_renewals, so an agent can disambiguate it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 'Use when...' condition ('research brief on a topic') and names the alternatives it should not replace ('rather than raw rows from search_tenders/get_renewals'). This gives clear context for selection over related read tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tendersARead-onlyIdempotentInspect
[GET /v1/search — $0.02] Search Spanish public-sector IT/software/cyber procurement: awards, tenders and contracts. Filters: q (full-text), cpv (prefix), buyer, company, region (NUTS), from/to (YYYY-MM-DD), type=award|tender|contract. Returns compact rows with ids for the other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| to | No | YYYY-MM-DD | |
| cpv | No | CPV code or prefix, e.g. "72" | |
| from | No | YYYY-MM-DD | |
| page | No | ||
| size | No | ||
| type | No | award | |
| buyer | No | ||
| region | No | NUTS code or prefix, e.g. "ES61" | |
| company | No | ||
| client_key | No | Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof. | |
| payment_token | No | Payment proof: dev mode → single-use token from POST /v1/dev-faucet; x402 mode → base64 payment payload (the PAYMENT-SIGNATURE / X-PAYMENT header value) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and open-world behavior. The description adds useful behavioral context: the HTTP method, per-call cost, and that results are compact rows meant to feed other tools. It does not go into pagination or response limits, but annotations lower the burder needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one focused sentence with a front-loadead method, cost, domain, and resource, followed by a compact parenthetical filter list. Every element earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-param tool with no output schema, the description covers scope, core filter semantic, cost, and return shape ('compact rows with ids') well enough for an agent to decide and invoke it. It does not spell out exact response fields or pagination behavior, but page/size exist in the schema with defaults, so this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description compensates well for the main filters: it adds full-text semantics for q, prefix semantics for cpv and region, NUTS codes, and the type enum values. It omits page, size, and payment-related params, but those are reasonably covered by schema defaults and descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's job with a specific verb ('Search'), a defined resource ('Spanish public-sector IT/software/cyber procurement'), and a scope ('awards, tenders and contracts'). It also distinguishes itself from sibling detail tools by saying it returns compact rows with ids for the other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the list/search entry point and that other tools consume the returned ids, but it never explicitly says when to use search_tenders versus get_tender, get_company_awards, or research. This is adequate context but not explicit routing 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. Dates show when Glama detected each change.
10 tool updates
- Added
billing_get_balance - Added
billing_purchase_credits - Changed
get_buyer_history1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
get_company1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
get_company_awards1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
get_company_opportunities1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
get_renewals1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
get_tender1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
research1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
- Changed
search_tenders1 field changed- added
Input schema / properties / client_keyAdded value: +{ + "description": "Prepaid credit balance key: when set, paid calls first try to debit this account instead of requiring a per-call proof.", + "type": "string" +}
1 tool update
- Added
research
8 tool updates
- First observed
get_buyer_history - First observed
get_company - First observed
get_company_awards - First observed
get_company_opportunities - First observed
get_pricing - First observed
get_renewals - First observed
get_tender - First observed
search_tenders
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
UK public-procurement qualification for agents, paid via x402 USDC on Base.
Made-to-order data for AI agents: company intel, B2B contacts, scraping. Pay per call via x402.
Normalized search over public-sector tenders in TED (EU official procurement notices) -- Spain + EU
x402-paid tools: EU company & sanctions data, web search, LLM chat, crypto intel, x402 monitoring.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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
- FlicenseNot gradedqualityCmaintenanceProvides 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.-
- AlicenseNot gradedqualityDmaintenanceExposes deadline-driven Japanese public-sector business opportunity data (tenders, subsidies, sanctions) to AI agents, with per-call payment via the x402 protocol.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Spanish public procurement intelligence, providing tools to query tenders, awards, prices, and renewal forecasts from TED and PLACSP data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool maps to a distinct resource or action: billing balance, credit purchase, company profile/awards/opportunities, tender search/detail, renewals, buyer history, and research brief. The only possible overlap is research versus raw query tools, but the descriptions clearly separate a high-level brief from raw rows.
Most tools follow a readable get_<resource> pattern, but billing_get_balance, billing_purchase_credits, search_tenders, and research deviate with namespace prefixes, a different verb, and a bare noun. The naming is not chaotic, but the conventions are mixed.
With 11 tools, the server is well-scoped for a procurement-intelligence API: search, detail views, company and buyer analytics, renewal signals, research, pricing, and billing support. Each tool has a clear place and there are no obvious redundant tools.
The tool set covers the full core workflow: search for tenders, get full tender detail, explore company and buyer profiles, retrieve opportunities and renewals, generate research briefs, and manage billing. Ids returned by searh feed into detail tools, and no exposed data type appears to be a dead end.