Nyambot← Retour
● Pour les développeurs

La donnée publique française, comprise — pas juste accessible.

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.

Serveur : https://mcp.nyambot.ai/mcp · Transport : Streamable HTTP · Auth : OAuth 2.1 (PKCE)

● Outils MCP

Ce que vous obtenez

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.

Entreprises · KYB

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)

Immobilier · DVF

Analyser le marché immobilier

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

Droit · Légifrance

Chercher un texte de loi

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…

Answer-ready : pas des rows, des réponses

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.

Les 3 modes d'intégration, expliqués de bout en bout

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 appelleLe client MCP de l'utilisateurVotre serveur, sans humainUn process sur la machine du dev
AuthentificationOAuth 2.1, consentement navigateurclient_credentials → BearerAucune — keyless
Où tourne le serveurmcp.nyambot.aimcp.nyambot.aiEn local, chez vous
Catalogue d'outils21 outils, recherche sémantique, answer-readyIdentique au mode 1Jeu distinct de 4 outils keyless — pas un sous-ensemble
ProvisionnementAucun — self-serviceSur demande, clés délivrées par nousAucun — paquet public
Latence / cacheCache mutualisé côté NyambotCache mutualisé côté NyambotAucun cache : dépend des API amont
Cas typiqueUn utilisateur qui pose des questions dans ClaudeEnrichissement batch, agent autonome, produit tiersPrototypage, audit du code, extension du cœur
1

Hébergé · OAuth 2.1

Disponible

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.

Pourquoi aucun provisionnement n'est nécessaire
/.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.
Ce que le dev doit faire
  • Exposer l'URL du connecteur en clair et copiable : https://mcp.nyambot.ai/mcp
  • Lier vers le guide de connexion par assistant (Claude / ChatGPT / Le Chat)
  • Rappeler que le client gère et rafraîchit le token — rien à stocker côté dev
Pièges connus
  • ChatGPT exige le mode développeur ; Claude exige une offre payante
  • Les pop-up bloquées cassent le tour OAuth silencieusement
  • Ce mode suppose un humain : inutilisable depuis un cron
2

Backend · clés machine

Sur demande

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.

MCP n'est pas une API REST. Un 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.
Séquence réelle d'un appel
  1. 1vous
    POST $NYAMBOT_TOKEN_URL
    Seul appel REST classique : grant_type=client_credentials → access_token valable 3600 s.
  2. 2le SDK
    initialize
    Ouvre la session MCP et négocie les capacités. La réponse porte l'en-tête Mcp-Session-Id à renvoyer sur tous les appels suivants.
  3. 3le SDK
    tools/list
    Récupère le catalogue et les schémas d'arguments — utile pour valider côté client avant d'appeler.
  4. 4vous
    tools/call
    L'appel métier. C'est la seule étape que votre code écrit explicitement — les étapes 2 et 3 sont faites par le SDK.
1 · Obtenir le token — vrai POST REST
curl -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 }
2 · Appeler les outils — via un SDK MCP (Python)
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())
Ce que le dev doit faire
  • Passer par un SDK MCP plutôt que par des appels HTTP écrits à la main
  • Stocker client_id / client_secret en variables d'environnement, jamais côté client
  • Mettre en cache l'access_token jusqu'à son expiration plutôt qu'un token par appel
  • Réutiliser la session MCP sur plusieurs appels au lieu d'en rouvrir une à chaque fois
Pièges connus
  • Un tools/call en curl direct échoue : il manque initialize et le Mcp-Session-Id
  • Le token expire en 3600 s : prévoir le renouvellement et le retry sur 401
  • L'URL du token n'est pas devinable — elle est transmise à l'octroi des clés
  • Un secret exposé dans un bundle front invalide l'accès
3

Self-host · cœur open-source

Open source

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.

Démarrage
# 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"] } } }
Ce que le dev doit faire
  • Lien GitHub visible et commande uvx nyambot-mcp copiable
  • Documenter le bloc de configuration mcpServers à coller
  • Nommer les 4 outils tels quels : ils ne portent pas les noms des outils hébergés
Pièges connus
  • Jeu d'outils distinct, pas un sous-ensemble filtré : aucun nom ne coïncide avec les 21
  • Les quotas des API publiques amont s'appliquent à l'IP du dev
  • Pas de recherche sémantique ni de réponses answer-ready
  • Ne pas le présenter comme équivalent au serveur hébergé
● Catalogues d'outils

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.

Serveur hébergé — 21 outilsmodes 1 et 2
Immobilier
analyser_bien_immobilierVerdict prix + risques + DPE + comparables DVF géolocalisés
analyser_marche_immobilierMédiane €/m² sur ventes DVF réelles
renovation_energetiqueAides et parcours France Rénov
Entreprises
verifier_entrepriseSIREN, statut, NAF, siège (SIRENE)
fiche_etablissementÉtablissement par SIRET ou SIREN
Droit & démarches
chercher_texte_loiArticle de loi exact et son texte (Légifrance)
rechercher_demarcheFiche Service-Public pertinente
trouver_administration_competenteLe bon guichet selon le besoin
generer_courrier_administratifCourrier rédigé + kit d'envoi
delai_silence_vaut_accordDélai au terme duquel le silence vaut accord
trouver_france_servicesStructure France services la plus proche
Aides sociales
simuler_aidesOrdre de grandeur des aides — orientation, pas calcul officiel
Santé & emploi
trouver_professionnel_santePraticien via l'Annuaire Santé (ANS)
chercher_emploiOffres France Travail
Données publiques & géo
interroger_donnee_publiqueQuestion en langage naturel → dataset data.gouv (recherche sémantique)
interroger_donnee_geospatialeRequête géospatiale
chercher_api_publiqueDécouverte d'API publique
appeler_api_publiqueAppel d'une API publique
resoudre_communeCommune → code INSEE, département, région, coordonnées
Lecture
lire_page_officielleExtraction du contenu d'une page officielle
lire_pdf_ressourceLecture d'un PDF ou d'une ressource
Cœur open-source keyless — 4 outilspaquet nyambot-mcp · mode 3
OutilCe qu'il faitSource
resolve_communeNom → INSEE, département, région, coordonnées, populationgeo.api.gouv.fr
geocode_addressAdresse → coordonnées, code postal, commune, INSEEBase Adresse Nationale
risques_immobilierRisques naturels et technologiques d'une communeGéorisques
dpe_logementDPE des logements — étiquette A→G et GESADEME
● Contrat de service

Erreurs

Un 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.

Quotas

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.

Scopes

Aucun scope granulaire. Le consentement OAuth couvre l'accès aux outils Nyambot dans leur ensemble, sans permission par outil ou par domaine.

Versionnement

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.

● Choisir en 2 questions
Un humain déclenche-t-il la requête depuis un assistant ?
Oui
Mode 1 — Hébergé
Rien à coder côté serveur. Le client MCP fait tout.
Non
Avez-vous besoin du catalogue complet ?
OUI
Mode 2
Clés machine
NON
Mode 3
Self-host keyless

Ressources