Vérifier une entreprise
verifier_entreprise("Doctolib")DOCTOLIB — SIREN 794598813, active,
créée le 2013-07-15, NAF 62.01Z,
siège Levallois-Perret.
+ désambiguïsation si homonymes.↳ Annuaire des Entreprises (data.gouv)
Y accéder est facile. La comprendre en contexte, non. Nyambot est la couche d'intelligence qui rend la donnée de l'État exploitable par votre agent : des réponses sourcées, pas des rows bruts.
// Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"nyambot": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.nyambot.ai/mcp"]
}
}
}Sur Claude.ai : Paramètres → Connecteurs → Ajouter un connecteur personnalisé → collez l'URL du serveur.
Des outils prêts à l'emploi qui transforment la donnée publique française en réponses structurées, sourcées, exploitables par votre agent.
verifier_entreprise("Doctolib")DOCTOLIB — SIREN 794598813, active,
créée le 2013-07-15, NAF 62.01Z,
siège Levallois-Perret.
+ désambiguïsation si homonymes.↳ Annuaire des Entreprises (data.gouv)
analyser_marche_immobilier(
description="appartements 2 pièces",
zone="Vannes", annee=2024)Médiane 3 960 €/m² sur 210 ventes
réelles. Filtres distillés depuis la
description (type + nb pièces), zéro
paramètre en dur.↳ DVF — transactions réellement actées
chercher_texte_loi(
"article L221-18 code de la consommation")Texte EXACT à jour : « Le consommateur
dispose d'un délai de quatorze jours… »
+ référence et hiérarchie complètes.↳ Légifrance
+ 18 autres outils — droits & aides, santé, géospatial, établissements, rénovation énergétique, courriers administratifs…
Chaque outil renvoie une réponse structurée et sourcée — la référence, la date, le montant — avec une dégradation honnête (jamais d'erreur protocolaire qui casse votre agent). Vous n'avez ni 10 APIs gouvernementales à intégrer, ni des JSON bruts à parser et fiabiliser.
Nyambot expose les mêmes données publiques françaises par trois chemins différents. Ils ne se distinguent pas par les fonctionnalités marketing mais par qui déclenche l'appel, comment l'appelant s'authentifie et où tourne le serveur.
| Mode 1 — Hébergé OAuth 2.1 · humain dans la boucle | Mode 2 — Backend Clés machine · serveur-à-serveur | Mode 3 — Self-host Cœur open-source · local | |
|---|---|---|---|
| Qui appelle | Le client MCP de l'utilisateur | Votre serveur, sans humain | Un process sur la machine du dev |
| Authentification | OAuth 2.1, consentement navigateur | client_credentials → Bearer | Aucune — keyless |
| Où tourne le serveur | mcp.nyambot.ai | mcp.nyambot.ai | En local, chez vous |
| Catalogue d'outils | 21 outils, recherche sémantique, answer-ready | Identique au mode 1 | Jeu distinct de 4 outils keyless — pas un sous-ensemble |
| Provisionnement | Aucun — self-service | Sur demande, clés délivrées par nous | Aucun — paquet public |
| Latence / cache | Cache mutualisé côté Nyambot | Cache mutualisé côté Nyambot | Aucun cache : dépend des API amont |
| Cas typique | Un utilisateur qui pose des questions dans Claude | Enrichissement batch, agent autonome, produit tiers | Prototypage, audit du code, extension du cœur |
Le cas nominal. Un humain connecte Nyambot dans son client MCP (Claude, ChatGPT, Le Chat). Le client négocie lui-même OAuth avec notre serveur, l'utilisateur consent dans son navigateur, et le client stocke le token. Rien à héberger, rien à provisionner.
/.well-known/oauth-protected-resourceLe serveur publie ses métadonnées de ressource protégée (RFC 9728) : le client MCP y découvre seul l'adresse du serveur d'autorisation.Dynamic Client RegistrationLe serveur accepte l'enregistrement dynamique de client (RFC 7591) : le client obtient son propre client_id sans intervention humaine de notre côté. C'est ce qui rend le mode 1 self-service.required_scopes = []Aucun scope granulaire aujourd'hui : le consentement de l'utilisateur vaut pour « accès aux outils Nyambot » dans son ensemble. Ne pas promettre de permissions fines dans l'écran de consentement.Même serveur, même catalogue d'outils, mais personne pour cliquer sur « autoriser » : un cron, un pipeline, un agent autonome. On provisionne un couple client_id / client_secret ; le backend échange ces clés contre un token à durée de vie courte, puis appelle le MCP en Bearer.
tools/call envoyé directement en curl échoue. Le transport Streamable HTTP impose d'abord un initialize, dont la réponse porte un Mcp-Session-Id à renvoyer sur tous les appels suivants. Utilisez un SDK MCP : il gère la poignée de main pour vous. Seul l'échange du token est un vrai POST REST.POST $NYAMBOT_TOKEN_URLinitializetools/listtools/callcurl -X POST "$NYAMBOT_TOKEN_URL" \
-d grant_type=client_credentials \
-d client_id="$NYAMBOT_CLIENT_ID" \
-d client_secret="$NYAMBOT_CLIENT_SECRET"
# → { "access_token": "…", "expires_in": 3600 }import asyncio, httpx
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
TOKEN_URL = "…" # fourni avec vos identifiants
CLIENT_ID, CLIENT_SECRET = "…", "…"
async def main():
# 1. token machine-à-machine
tok = httpx.post(TOKEN_URL, data={
"grant_type": "client_credentials",
"client_id": CLIENT_ID, "client_secret": CLIENT_SECRET,
}).json()["access_token"]
# 2. session MCP — le SDK fait initialize + Mcp-Session-Id
async with streamablehttp_client(
"https://mcp.nyambot.ai/mcp",
headers={"Authorization": f"Bearer {tok}"},
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
outils = await session.list_tools()
res = await session.call_tool("verifier_entreprise", {"siren_ou_nom": "Doctolib"})
print(res)
asyncio.run(main())Le paquet nyambot-mcp tourne sur la machine du dev, en process local. Aucune clé, aucun compte, aucun appel à nos serveurs : il interroge directement les API publiques. Attention : ce n'est pas un sous-ensemble filtré des 21 outils mais un jeu distinct de 4 outils, avec des noms différents.
Ne passe jamais par mcp.nyambot.ai — donc pas de recherche sémantique, pas de réponses answer-ready, pas de cache mutualisé, pas de quotas gérés par nous.
# lancer le serveur local (rien à installer au préalable)
uvx nyambot-mcp
# déclaration dans un client MCP local
{ "mcpServers": { "nyambot": { "command": "uvx", "args": ["nyambot-mcp"] } } }Deux jeux d'outils distincts, et non un catalogue avec une colonne « disponible en self-host ». Les modes 1 et 2 partagent exactement les mêmes 21 outils.
analyser_bien_immobilierVerdict prix + risques + DPE + comparables DVF géolocalisésanalyser_marche_immobilierMédiane €/m² sur ventes DVF réellesrenovation_energetiqueAides et parcours France Rénovverifier_entrepriseSIREN, statut, NAF, siège (SIRENE)fiche_etablissementÉtablissement par SIRET ou SIRENchercher_texte_loiArticle de loi exact et son texte (Légifrance)rechercher_demarcheFiche Service-Public pertinentetrouver_administration_competenteLe bon guichet selon le besoingenerer_courrier_administratifCourrier rédigé + kit d'envoidelai_silence_vaut_accordDélai au terme duquel le silence vaut accordtrouver_france_servicesStructure France services la plus prochesimuler_aidesOrdre de grandeur des aides — orientation, pas calcul officieltrouver_professionnel_santePraticien via l'Annuaire Santé (ANS)chercher_emploiOffres France Travailinterroger_donnee_publiqueQuestion en langage naturel → dataset data.gouv (recherche sémantique)interroger_donnee_geospatialeRequête géospatialechercher_api_publiqueDécouverte d'API publiqueappeler_api_publiqueAppel d'une API publiqueresoudre_communeCommune → code INSEE, département, région, coordonnéeslire_page_officielleExtraction du contenu d'une page officiellelire_pdf_ressourceLecture d'un PDF ou d'une ressourceresolve_communeNom → INSEE, département, région, coordonnées, populationgeo.api.gouv.frgeocode_addressAdresse → coordonnées, code postal, commune, INSEEBase Adresse Nationalerisques_immobilierRisques naturels et technologiques d'une communeGéorisquesdpe_logementDPE des logements — étiquette A→G et GESADEMEUn token absent, expiré ou invalide renvoie un 401 accompagné de l'en-tête WWW-Authenticate. Prévoyez le renouvellement du token et un retry unique sur 401.
Pas de rate-limiting dur aujourd'hui : la consommation est mesurée mais pas plafonnée, donc aucun 429 n'est renvoyé. L'application des quotas arrivera dans une phase ultérieure — ne codez pas contre un 429 qui n'existe pas encore, mais prévoyez d'en gérer un.
Aucun scope granulaire. Le consentement OAuth couvre l'accès aux outils Nyambot dans leur ensemble, sans permission par outil ou par domaine.
Le catalogue évolue de manière additive et tout changement cassant est annoncé à l'avance. L'API n'est pas encore figée : considérez-la en bêta.