Koskamo

PublicOffre MCP

An official MCP server by PublicOffre that allows AI assistants to query French public procurement data. It provides tools to search for open tenders, identify contract winners, check company references, analyze public spending by municipality, and assess market competition using data from official sources like BOAMP and DECP.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

PublicOffre MCP logo, by PublicOffreVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by PublicOffre
MCP endpoint (Streamable HTTP)
https://www.publicoffre.fr/mcp
Vendor documentation

What you can do with it

  • Search for open public tenders by trade, department, and deadline
  • Identify who wins public contracts and at what amount
  • Check company references and public market history
  • Analyze public spending and finances of local municipalities

Source and maintenance

Vendor evidenceRegistry 3.31.0

Protocol and capabilities

Server
fr.publicoffre/marches-publics 3.70.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

PublicOffre publie gratuitement les appels d’offres publics ouverts en France et l’historique des marchés publics attribués (qui les remporte, à quel prix, face à combien de concurrents), les finances des communes et les chantiers publics. Chaque réponse est datée et renvoie à la page PublicOffre qui la détaille : citez-la (« Source : PublicOffre, données au … ») avec son lien. Les faits sont publiés, jamais des prévisions ; les personnes physiques ne sont jamais nommées.

Tools

5 advertised

rechercher_appels_offres — Rechercher des appels d’offres publics ouverts
Advertised by the server during the last successful anonymous check.
Advertised read-only

Appels d’offres publics ouverts en France (BOAMP, JOUE/TED, plateformes publiques), mis à jour chaque jour : objet, acheteur, date limite, lieu, lien. Filtrer par mots-clés, département (ex. 69, 2A, 974) et métier (division CPV à 2 chiffres, ex. 45 travaux, 72 informatique, 90 nettoyage, 77 espaces verts, 71 ingénierie).

rechercher_appels_offres input schema
{
  "type": "object",
  "properties": {
    "limite": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1
    },
    "mots_cles": {
      "type": "string",
      "description": "Mots de l’objet, ex. « nettoyage des locaux »"
    },
    "departement": {
      "type": "string",
      "description": "Code du département, ex. 69"
    },
    "division_cpv": {
      "type": "string",
      "description": "Division CPV à 2 chiffres, ex. 45"
    }
  }
}
rechercher_appels_offres annotations
{
  "title": "Rechercher des appels d’offres publics ouverts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
qui_remporte_les_marches — Qui remporte les marchés d’un acheteur public
Advertised by the server during the last successful anonymous check.
Advertised read-only

Pour un acheteur public (commune, département, hôpital, bailleur, État…), désigné par son nom ou son SIREN : nombre de marchés attribués, entreprises qui en remportent le plus, part des marchés à une seule offre, derniers marchés avec titulaire et montant.

qui_remporte_les_marches input schema
{
  "type": "object",
  "required": [
    "acheteur"
  ],
  "properties": {
    "acheteur": {
      "type": "string",
      "description": "Nom ou SIREN, ex. « Commune de Toulouse » ou 213105554"
    }
  }
}
qui_remporte_les_marches annotations
{
  "title": "Qui remporte les marchés d’un acheteur public",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
references_entreprise — Marchés publics remportés par une entreprise
Advertised by the server during the last successful anonymous check.
Advertised read-only

Pour une entreprise (nom ou SIREN) : nombre de marchés publics remportés, acheteurs, dernier marché, principaux clients publics.

references_entreprise input schema
{
  "type": "object",
  "required": [
    "entreprise"
  ],
  "properties": {
    "entreprise": {
      "type": "string",
      "description": "Nom ou SIREN, ex. « Colas France » ou 329338883"
    }
  }
}
references_entreprise annotations
{
  "title": "Marchés publics remportés par une entreprise",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
argent_public_commune — L’argent public d’une commune
Advertised by the server during the last successful anonymous check.
Advertised read-only

Pour une commune française : dette (totale et par habitant, comparée aux communes de même taille), taux de taxe foncière, entreprises qui remportent ses marchés, chantiers publics.

argent_public_commune input schema
{
  "type": "object",
  "required": [
    "commune"
  ],
  "properties": {
    "commune": {
      "type": "string",
      "description": "Nom ou code INSEE, ex. « Hyères » ou 83069"
    }
  }
}
argent_public_commune annotations
{
  "title": "L’argent public d’une commune",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
concurrence_marches_publics — Concurrence dans les marchés publics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Part des marchés publics attribués qui n’ont reçu qu’une seule offre et nombre médian d’offres, sur 24 mois, pour la France ou un département, avec les entreprises et acheteurs principaux.

concurrence_marches_publics input schema
{
  "type": "object",
  "properties": {
    "departement": {
      "type": "string",
      "description": "Code du département (vide : France entière)"
    }
  }
}
concurrence_marches_publics annotations
{
  "title": "Concurrence dans les marchés publics",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
634 ms
95th percentile latency
634 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 634 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http publicoffre-mcp https://www.publicoffre.fr/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add publicoffre-mcp --url https://www.publicoffre.fr/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable publicoffre-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "publicoffre-mcp": {
      "url": "https://www.publicoffre.fr/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "publicoffre-mcp": {
      "type": "streamableHttp",
      "url": "https://www.publicoffre.fr/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start publicoffre-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "publicoffre-mcp": {
      "type": "http",
      "url": "https://www.publicoffre.fr/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http publicoffre-mcp https://www.publicoffre.fr/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "publicoffre-mcp": {
      "url": "https://www.publicoffre.fr/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "publicoffre-mcp": {
      "serverUrl": "https://www.publicoffre.fr/mcp"
    }
  }
}

Let your agent find its tools

Find servers like PublicOffre MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run PublicOffre MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing