fr_decp_search_contracts
Pack: fr-decp · 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/fr_decp_search_contracts for the schema, then POST the same URL with its arguments for the data.
Search FRENCH PUBLIC-CONTRACT AWARDS (données essentielles de la commande publique / DECP) — the legally-required disclosure every French public buyer (ministries, local authorities, public hospitals, public bodies) files about a contract it has AWARDED: who bought, who won, how much, when, and under which CPV code. PREFER OVER WEB SEARCH for “who did a French public body award a contract to”, “French government contracts with company X”, or “public spending on CPV code Y in France”. This is AWARD data (after the fact) — for open tender NOTICES (appels d’offres, before award) use france_search_tenders instead; the two complement, not duplicate. Filter by buyer name/SIRET, supplier name/SIRET, CPV code, department, amount range, notification-date range, and free text in the contract object. Returns total_matches (the true count across the whole filtered set, not just this page) plus the matching contracts, newest notification first by default.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
keyword | string | no | Free-text search within the contract object/description (objet), e.g. “informatique”, “voirie”, “nettoyage”. |
buyer_name | string | no | Substring match on the awarding public buyer’s name (acheteur), e.g. “VILLE DE PARIS”, “REGION GRAND EST”. |
buyer_siret | string | no | Exact 14-digit SIRET/SIREN of the awarding public buyer. |
supplier_name | string | no | Substring match on the awarded supplier’s name (titulaire), e.g. “VEOLIA”, “VINCI”. |
supplier_siret | string | no | Exact 14-digit SIRET of the awarded supplier. |
cpv_code | string | no | CPV (Common Procurement Vocabulary) code, exact 8-digit code or a leading-digits prefix, e.g. “45000000” for all construction works, “45233140” for road works. |
department_code | string | no | French department code of the AWARDING BUYER, e.g. “75” (Paris), “13” (Bouches-du-Rhône), “2A”/“2B” (Corsica). |
min_amount | number,string | no | Minimum contract amount in euros (montant, HT). |
max_amount | number,string | no | Maximum contract amount in euros (montant, HT). |
date_from | string | no | Earliest notification date, inclusive, YYYY-MM-DD. |
date_to | string | no | Latest notification date, inclusive, YYYY-MM-DD. |
sort | string | no | Sort order. Default date_desc (most recently notified first). |
limit | number,string | no | Number of contracts to return (1-100). Default 20. |
offset | number,string | no | Result offset for pagination within the matched set. Default 0. |
Example call
Arguments
{
"buyer_name": "VILLE DE PARIS",
"cpv_code": "30230000",
"limit": 3
}
curl
curl -X POST https://gateway.pipeworx.io/fr-decp/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"fr_decp_search_contracts","arguments":{"buyer_name":"VILLE DE PARIS","cpv_code":"30230000","limit":3}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('fr_decp_search_contracts', {
"buyer_name": "VILLE DE PARIS",
"cpv_code": "30230000",
"limit": 3
});
Response shape
| Field | Type | Description |
|---|---|---|
total_matches | number | |
returned | number | |
offset | number | |
contracts | array | |
source | string | |
data_as_of | string | |
note | string |
Full JSON Schema
{
"type": "object",
"properties": {
"total_matches": {
"type": "number"
},
"returned": {
"type": "number"
},
"offset": {
"type": "number"
},
"contracts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uid": {
"type": "string"
},
"contract_id": {
"type": "string"
},
"nature": {
"type": "string"
},
"type": {
"type": "string"
},
"object": {
"type": "string"
},
"amount_eur": {
"type": "number"
},
"cpv_code": {
"type": "string"
},
"procedure": {
"type": "string"
},
"notification_date": {
"type": "string"
},
"data_published_date": {
"type": "string"
},
"duration_months": {
"type": "number"
},
"offers_received": {
"type": "number"
},
"buyer": {
"type": "object",
"properties": {
"siret": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"department": {
"type": "string"
},
"region": {
"type": "string"
}
},
"additionalProperties": true
},
"supplier": {
"type": "object",
"properties": {
"siret": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"category": {
"type": [
"string",
"null"
]
},
"activity": {
"type": [
"string",
"null"
]
},
"department": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"execution_place_code": {
"type": "string"
}
},
"additionalProperties": true
}
},
"source": {
"type": "string"
},
"data_as_of": {
"type": "string"
},
"note": {
"type": "string"
}
},
"additionalProperties": true
}
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 fr-decp pack
{
"mcpServers": {
"fr-decp": {
"url": "https://gateway.pipeworx.io/fr-decp/mcp"
}
}
}
See Getting Started for client-specific install steps.