Serveur MCP pour les appels d'offres publics : cherchez des marchés depuis Claude, Cursor et tout assistant IA
Le serveur MCP de Scoutee laisse Claude, Cursor, VS Code ou tout client MCP chercher des appels d'offres publics et lire un avis, avec votre clé API.
Mis à jour le 9 septembre 2026
Scoutee expose sa base d'appels d'offres sous forme de serveur MCP. Branchez-le une fois, et votre assistant répond à des questions comme « quels appels d'offres de voirie ont ouvert en France cette semaine ? » ou « quelle est la date limite sur cet avis de marché ? » en cherchant dans le même catalogue que l'application : des dizaines de journaux officiels et de plateformes d'acheteurs en Europe et en Amérique du Nord, rafraîchis chaque matin.
MCP, le Model Context Protocol, est le standard ouvert qui permet à un assistant IA d'appeler des outils extérieurs. Claude Code, Claude Desktop, Cursor, VS Code, Windsurf et la plupart des frameworks d'agents le parlent. Le serveur de Scoutee leur donne deux outils : chercher les appels d'offres, lire un avis de marché.
Ce que vous pouvez demander
- « Trouve les appels d'offres ouverts sur la restauration scolaire en Belgique et au Luxembourg, du plus récent au plus ancien. »
- « Liste les appels d'offres au montant estimé compris entre 100 000 et 500 000 euros en Espagne, dont la date limite tombe après le 1er octobre. »
- « Lis l'appel d'offres 417558 et résume les critères de sélection. »
- « Quels appels d'offres correspondant à mes mots-clés sont apparus depuis mon dernier passage, lundi ? »
L'assistant traduit la question en recherche, lit les résultats et vous répond dans votre langue. Il voit l'acheteur, l'intitulé, le lieu d'exécution, la date limite, le montant estimé et le lien vers la source : exactement ce qu'affiche l'application.
Détails de connexion
- URL :
https://scoutee.org/api/mcp - Transport : Streamable HTTP, sans session, réponses JSON. Aucun flux à maintenir ouvert, donc compatible avec n'importe quel proxy.
- Authentification : une clé API d'espace de travail Scoutee, dans l'en-tête
X-API-Keyou dansAuthorization: Bearer. La clé est obligatoire : un appel sans clé revient en erreur d'outil réclamant une clé. - Quotas : ceux de l'offre de l'espace de travail, 100 recherches par heure sur Pro et 300 sur Team. Une recherche coûte une unité, lire un avis de marché ne coûte rien, et le seau est partagé avec l'API REST.
Une clé API se crée depuis la page de votre espace de travail, sur n'importe quelle offre payante. La documentation de l'API décrit les paramètres de recherche en détail : les outils MCP prennent exactement les mêmes.
Claude Code
claude mcp add --transport http scoutee https://scoutee.org/api/mcp \
--header "X-API-Key: sct_1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b"
Claude Desktop, Cursor, VS Code, Windsurf et les autres clients
La plupart des clients lisent un fichier de configuration contenant un objet mcpServers : .cursor/mcp.json, .vscode/mcp.json, ~/.codeium/windsurf/mcp_config.json, les réglages de Claude Desktop. L'entrée est la même partout :
{
"mcpServers": {
"scoutee": {
"url": "https://scoutee.org/api/mcp",
"headers": {
"X-API-Key": "sct_1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b"
}
}
}
}
Les deux outils
search_tenders reprend les paramètres de la recherche REST, avec la même sémantique : q, keyword (tableau), country (tableau, noms de pays en anglais), source_id, min_value, max_value, sort (newest, oldest, deadline), include_closed, seen_after, page et page_size. Tous facultatifs. page_size vaut 20 par défaut, un appel d'offres étant un objet volumineux à donner à un modèle. Le résultat est une page d'appels d'offres, augmentée de trois champs qui disent à l'assistant où en est le quota : quota_plan, quota_limit et quota_remaining.
get_tender prend un seul tender_id et renvoie l'avis de marché complet, le même objet que le point d'entrée REST. Il ne consomme pas de quota.
Les deux outils sont déclarés en lecture seule : par leur intermédiaire, un assistant ne peut jamais créer, modifier ni supprimer quoi que ce soit sur Scoutee.
Depuis votre propre code
Avec le paquet Python mcp (pip install mcp) :
import asyncio
import os
import httpx
from mcp.client import Client
from mcp.client.streamable_http import streamable_http_client
URL = "https://scoutee.org/api/mcp"
async def main():
headers = {"X-API-Key": os.environ["SCOUTEE_API_KEY"]}
async with httpx.AsyncClient(headers=headers) as http:
async with Client(streamable_http_client(URL, http_client=http)) as client:
result = await client.call_tool(
"search_tenders",
{"keyword": ["travaux de voirie"], "country": ["France"], "page_size": 10},
)
page = result.structured_content
print(page["total"], "notices |", page["quota_remaining"], "searches left")
for tender in page["items"]:
print(tender["id"], tender["deadline_at"], tender["title"])
asyncio.run(main())
Erreurs
Un appel en échec revient avec is_error positionné et un message en anglais, suivi de son code stable entre crochets : Invalid API key [invalid_api_key], un quota épuisé, un identifiant introuvable. Les codes sont ceux de la documentation de l'API.
Où le serveur est référencé
Le serveur est publié dans le MCP Registry officiel sous le nom org.scoutee/scoutee, et sa fiche de serveur est à l'adresse https://scoutee.org/.well-known/mcp/server-card.json. Des annuaires comme Smithery et Glama le référencent aussi, et chacun d'eux renvoie ici.