// mcp

MCP finance & risque

l0g expose ses données aux agents IA via le Model Context Protocol, en lecture seule. Un agent peut interroger l'Agent Surface, le contrat OpenAPI, les flux NDJSON, Risk Diff, Black Box Recorder, les claims, l'evidence graph, les sources, la fraîcheur, l'intégrité, le changefeed, l'historique des signaux ou récupérer le texte complet d'un article, sans scraper le site. Le graphe de preuve devient interrogeable directement : article, affirmation, type, source, date et profondeur de preuve. Aucune clé ni authentification. La mesure d’usage reste agrégée, sans IP, cookie, session, empreinte ni user-agent dans la télémétrie MCP.

Contrat du dépôt :1.24.3, avec outils claims/sources consolidés, sélection de trois claims structurants typés maximum par article et statistiques anonymisées. La version et le SHA réellement actifs restent publiés par la ressource l0g://mcp/server ; le dépôt et le runtime ne sont considérés alignés qu’après publication de la release attestée.
Entrée compacte recommandée : https://l0g.fr/api/mcp/compact expose six primitives :discover_l0g, search_l0g, get_document, get_evidence,build_research_pack et get_risk_state. Le MCP complet reste disponible à https://l0g.fr/api/mcp. Les empreintes des contrats sont publiées dans toolset-manifest.json.
Produit agentique principal : get_risk_state regroupe l’état courant, le diff sur 1, 7 ou 30 jours, l’historique par instrument et le replay Black Box. Chaque réponse conserve une date de référence, la source canonique, la méthodologie, la couverture et les limites de lecture. Commencer par ce tool pour toute question sur le risque.

English MCP documentation →

// exemple en une minute

Un endpoint, un tool, cinq champs à conserver.

  1. Connecterhttps://l0g.fr/api/mcp/compact
  2. Appelerget_risk_state({ "mode": "current", "window": "7d" })
  3. LireasOf · freshness · variation · canonical · attribution
{
  "name": "get_risk_state",
  "arguments": { "mode": "current", "window": "7d" }
}

La réponse regroupe les niveaux courants, leur fraîcheur instrument par instrument, la variation sur sept jours, l’URL JSON canonique et l’attributionSource : l0g.fr. Les sources amont HTTPS restent attachées aux instruments.

// pourquoi

Les agents IA lisent de plus en plus le web à la place des humains, et ils le font mal : ils aplatissent le HTML, perdent le contexte et citent de travers. Pour un site dont toute la valeur tient à la rigueur du sourcing, c'est un risque. Plutôt que de subir un scraping approximatif, l0g publie des surfaces lisibles par machine, propres et attribuables, pour que les données soient reprises exactement.

Le choix du Model Context Protocol prolonge la philosophie du site : statique, auto-hébergé, sans CDN ni proxy tiers, sans pistage. L'accès machine est ouvert, en lecture seule, sous licence CC BY 4.0. Un agent obtient la donnée juste, avec sa source et son URL canonique, plutôt qu'une approximation extraite d'une page.

// ce que nous avons construit

Six couches d'accès machine, de la plus simple à la plus riche, toutes générées à partir des mêmes contenus et des mêmes données vérifiées :

  • une API JSON publique pour les indices de risque, Risk Diff, Black Box, le snapshot canonique Dette US et le flux Atom des changements de niveau ;
  • un catalogue machine des articles, guides et sujets ;
  • une Agent Surface avec claims, evidence graph, Risk Diff, Black Box, intégrité, changefeed et flux NDJSON ;
  • un contrat OpenAPI et des flux NDJSON exposés directement comme tools MCP ;
  • deux fichiers llms.txt et llms-full.txt, carte concise et corpus intégral, pour les agents qui les recherchent ;
  • ce serveur MCP, qui transforme tout cela en resources lisibles et tools appelables par un agent, sans scraping. Les opérations fines sur claims, sources, preuves, changements, Risk Diff, Black Box et intégrité sont exposées comme tools structurés.

// endpoint

Transport Streamable HTTP (spec MCP 2025-11-25), mode requête/réponse JSON.

https://l0g.fr/api/mcp/compact

Entrée recommandée pour les nouvelles intégrations. Surface complète experte : https://l0g.fr/api/mcp.

Rapport public agrégé : /api/mcp/usage. La méthode et ses limites sont visibles sur la page agents.

Lecture seule. Le code et la procédure de déploiement sont publics sur le dépôt GitHub.

// resources

Les documents et datasets sont exposés comme ressources MCP. Les agents peuvent les lister avec resources/list, lire leur contenu avec resources/read, et découvrir les URI paramétrées avec resources/templates/list. La liste est bornée aux dix ressources statiques afin de ne pas charger tout le catalogue dans le contexte.

URIContenu
l0g://agent-manifestManifeste Agent Surface
l0g://openapiContrat OpenAPI complet
l0g://freshnessFraîcheur du corpus et des signaux
l0g://integrityEmpreintes SHA-256 canoniques
l0g://changes/latestDerniers changements éditoriaux et publications
l0g://risk-diffDiff du risque sur 1, 7 et 30 jours
l0g://black-boxFrames point-in-time hashées du risque
l0g://signals/currentÉtat courant des signaux
l0g://signals/historyHistorique point-in-time des signaux
l0g://mcp/serverVersion MCP, SHA actif et capacités serveur

// resource templates

TemplateContenu
l0g://articles/{slug}Première page article avec métadonnées, références et texte
l0g://articles/{slug}{?section,offset,limit}Page ciblée article par section, offset et limit
l0g://articles/{slug}{?cursor}Continuation article via nextCursor
l0g://en/articles/{slug}Première page analyse anglaise, reliée aux preuves françaises
l0g://en/articles/{slug}{?section,offset,limit}Page ciblée analyse anglaise
l0g://en/articles/{slug}{?cursor}Continuation analyse anglaise via nextCursor
l0g://guides/{slug}Première page guide avec métadonnées et texte
l0g://guides/{slug}{?section,offset,limit}Page ciblée guide par section, offset et limit
l0g://guides/{slug}{?cursor}Continuation guide via nextCursor
l0g://en/guides/{slug}Première page guide anglais
l0g://en/guides/{slug}{?section,offset,limit}Page ciblée guide anglais
l0g://en/guides/{slug}{?cursor}Continuation guide anglais via nextCursor
l0g://claims/{claim_id}Relation affirmation-source
l0g://sources/{source_id}Source primaire ou hôte cité
l0g://signals/{instrument}/currentSignal courant et historique
l0g://methodologies/{instrument}Fiche méthodologique

Les templates décrivent les familles de ressources et proposent des complétions de variables. Les instances se découvrent de façon ciblée avec les tools de recherche et de filtrage. Le service public actuel reste stateless et n'annonce pas de souscriptions live : la veille opérationnelle passe par l0g://changes/latest ouget_changefeed.

// prompts

Quatre workflows sont exposés avec prompts/list et rendus avecprompts/get. Ils sont déclenchés explicitement par l'utilisateur et partagent exactement leur définition avec les cartes de la page Agent Surface. Le serveur valide les arguments et n'annonce pas de notification listChanged.

PromptArgumentsWorkflow
audit_financial_narrativetopic, language?Audite un récit financier en séparant claims, preuves primaires, inférences, scénarios et limites.
explain_risk_changewindow?, language?Explique ce qui a changé dans les signaux de risque sur une fenêtre publiée, sans extrapolation.
verify_claimclaim, language?Vérifie une affirmation contre les claims canoniques, leurs preuves et leurs sources primaires.
replay_as_ofdate, question?, language?Rejoue uniquement un état réellement archivé avant une date donnée, sans reconstruction rétroactive.

// tools

get_risk_state est le chemin normal pour lire le risque. Le catalogue complet ci-dessous sert aux workflows experts de recherche, filtrage, preuve, diff, replay, historique, extraction de sous-graphe ou lecture ciblée. La recherche plein texte reste locale et déterministe, sans base vectorielle ni fournisseur externe. Les articles longs sont paginables, avec curseur de continuation, accès direct aux sources et références séparées. Chaque réponse expose un résumé humain danscontent et les données exploitables dans structuredContent, avec un outputSchema déclaré. Les identifiants inconnus sont marqués parisError: true côté tools ; les resources inexistantes renvoient une erreur protocolaire MCP.

ToolArgumentsRenvoie
get_agent_manifestaucunManifeste Agent Surface : capacités, endpoints, règles d'usage, politiques de preuve et compteurs.
get_risk_indicesaucunSignaux de risque normalisés par instrument (US Macro, EU Macro, Yen Carry, Énergie, Dette US) et synthèse de confluence 13F.
get_signal_historykey, limitHistorique des franchissements de niveau, état courant des signaux et confluence 13FLOW.
get_risk_diffwindowDiff du risque sur 1, 7 ou 30 jours : signaux, sources, claims, modèles, articles et confiance.
get_black_boxdate, limitFramesReplay point-in-time des frames de risque hashées, avec refus explicite des dates non rejouables.
get_openapi_schemamode, pathContrat OpenAPI résumé, ciblé par endpoint ou complet pour générer un client.
get_ndjson_feedfeed, recordType, limitFlux NDJSON allowlistés : catalogue, claims, evidence graph, changefeed et historique des signaux.
get_freshnesslimitFraîcheur du corpus et des signaux : observedAt, computedAt, expiration, couverture et politique de fraîcheur.
search_contentquery, language, mode, limitRecherche bilingue sur l'index canonique partagé avec l'Agent Surface et WebMCP.
get_claimsclaimId, articleSlug, language, sourceId, kind, query, includeEvidence, limitRecherche, claim précise, article, source et voisinage de preuve dans un contrat unique.
get_evidence_grapharticleSlug, language, nodeType, limitSous-graphe canonique ; un slug anglais pointe vers le graphe français sans duplication.
list_sourcessourceId, mode, includeClaims, limitListe ou source précise, avec claims associées sur demande.
get_integritypathEmpreintes SHA-256 canoniques des surfaces Agent Surface, JSON et NDJSON.
verify_artifactpath, sha256Vérification allowlistée d'un artefact via le manifeste d'intégrité.
get_changefeedcontentType, limitDerniers changements avec objectId, version/hash courant, statut de diff et changement sémantique.
get_changescontentType, slug, since, limitChangefeed filtrable par type, slug et date minimale, avec métadonnées de version.
list_recent_analyseslanguage, limitDernières analyses publiées, filtrables en français ou en anglais.
list_guideslanguageGuides de référence français ou anglais.
search_by_topictopic, language, limitAnalyses rattachées à un sujet, filtrables par langue.
get_articleslug, language, offset, cursor, limit, length, sectionTexte paginé français ou anglais, avec nextCursor et références canoniques séparées.

// se connecter

Inspecter les tools avec l'outil officiel, en renseignant l'endpoint :

npx @modelcontextprotocol/inspector

Brancher un client de bureau via le pont local :

npx mcp-remote https://l0g.fr/api/mcp/compact

Exemple de configuration pour un client compatible :

{
  "mcpServers": {
    "l0g": {
      "command": "npx",
      "args": ["mcp-remote", "https://l0g.fr/api/mcp/compact"]
    }
  }
}

Cycle MCP minimal en JSON-RPC brut : initialisation, notification initialized, puis appel ordinaire. Pour une session complète, préférer l'inspecteur ou mcp-remote.

curl -s -X POST https://l0g.fr/api/mcp/compact \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"0.1"}}}'

curl -s -X POST https://l0g.fr/api/mcp/compact \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

curl -s -X POST https://l0g.fr/api/mcp/compact \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

curl -s -X POST https://l0g.fr/api/mcp/compact \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_risk_state","arguments":{"mode":"current"}}}'

// sécurité et conception

  • Lecture seule. Aucun tool n'écrit quoi que ce soit, et l'accès aux articles passe par une liste blanche de slugs, sans récupération d'URL arbitraire.
  • Jamais exposé en direct. Le service n'écoute qu'en local, derrière Apache qui assure le TLS et le proxy.
  • Anti détournement. Validation des en-têtes Host et Origin à chaque requête, contre les attaques par DNS rebinding, comme l'exige la spec.
  • Bridé. Limitation de débit par IP, taille de requête bornée, et un service système durci (utilisateur éphémère, système de fichiers en lecture seule, capacités vidées).
  • Sans donnée sensible. Tout est public, donc ni clé ni authentification, et aucun pistage.

En toute honnêteté, peu de clients grand public consomment encore nativement les serveurs MCP distants : le protocole est récent. Cet accès est donc autant un pari sur l'usage à venir qu'un outil immédiat, dans la continuité de l'API et des fichiers pour agents.

// autres accès machine