pt_announcement_search
Pack: portugal-tenders · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/pt_announcement_search for the schema, then POST the same URL with its arguments for the data.
Search PORTUGUESE public-procurement tender ANNOUNCEMENTS (contract notices) published through Portal BASE (base.gov.pt), run by IMPIC (Instituto dos Mercados Públicos, do Imobiliário e da Construção). IMPIC’s own live API needs registration and a token Pipeworx does not hold yet, so this answers from a refreshed recent-window dataset (see data_as_of and the window fields in the response). Filter by free-text keyword (matched against the Portuguese notice title), CPV classification code or prefix (e.g. “45” for construction, “72000000” for IT services), contracting-authority (buyer) name substring (Portuguese spelling, e.g. “Câmara Municipal”, “Instituto”), and a publish-date range. Returns compact shaped notices: id, IMPIC notice id, buyer, title, notice type, contract type(s), base amount (EUR), CPV, publish date, and proposal deadline. Call pt_announcement_detail with the returned id for the full record.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | no | Keyword(s), case-insensitive, matched against the Portuguese notice title, e.g. “limpeza”, “software”, “obras”, “manutenção”. |
cpv | string | no | CPV classification code or numeric prefix, e.g. “45” (construction works), “72000000” (IT services). |
buyer | string | no | Contracting-authority (buyer) name, partial match, Portuguese spelling, e.g. “Câmara Municipal de Lisboa”, “Instituto”, “Universidade”. |
date_from | string | no | Earliest PUBLISH date, YYYY-MM-DD. Defaults to ${DEFAULT_WINDOW_DAYS} days before date_to. |
date_to | string | no | Latest PUBLISH date, YYYY-MM-DD. Defaults to the newest date in the loaded window (see ann_window_to in any response), which can trail today because IMPIC publishes per-year bulk files. |
limit | number,string | no | Max notices to return (default ${DEFAULT_LIMIT}, max ${MAX_LIMIT}). Newest-first. |
Example call
Arguments
{
"query": "seguros",
"date_from": "2026-01-01",
"date_to": "2026-01-31",
"limit": 5
}
curl
curl -X POST https://gateway.pipeworx.io/portugal-tenders/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"pt_announcement_search","arguments":{"query":"seguros","date_from":"2026-01-01","date_to":"2026-01-31","limit":5}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('pt_announcement_search', {
"query": "seguros",
"date_from": "2026-01-01",
"date_to": "2026-01-31",
"limit": 5
});
Connect
Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the portugal-tenders pack
{
"mcpServers": {
"portugal-tenders": {
"url": "https://gateway.pipeworx.io/portugal-tenders/mcp"
}
}
}
See Getting Started for client-specific install steps.