// mcp
Serveur MCP
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é, aucune authentification, aucun pistage.
// 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 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.
| URI | Contenu |
|---|---|
l0g://agent-manifest | Manifeste Agent Surface |
l0g://openapi | Contrat OpenAPI complet |
l0g://freshness | Fraîcheur du corpus et des signaux |
l0g://integrity | Empreintes SHA-256 canoniques |
l0g://changes/latest | Derniers changements éditoriaux et publications |
l0g://risk-diff | Diff du risque sur 1, 7 et 30 jours |
l0g://black-box | Frames point-in-time hashées du risque |
l0g://signals/current | État courant des signaux |
l0g://signals/history | Historique point-in-time des signaux |
l0g://mcp/server | Version MCP, SHA actif et capacités serveur |
// resource templates
| Template | Contenu |
|---|---|
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://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://claims/{claim_id} | Relation affirmation-source |
l0g://sources/{source_id} | Source primaire ou hôte cité |
l0g://signals/{instrument}/current | Signal courant et historique |
l0g://methodologies/{instrument} | Fiche méthodologique |
Les templates énumèrent les instances connues et proposent des complétions de variables.
Le service public actuel reste stateless et n'annonce pas de souscriptions live :
la veille opérationnelle passe par l0g://changes/latest ou
get_changefeed.
// tools
Les tools sont réservés aux opérations : recherche, filtrage, 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 dans
content et les données exploitables dans structuredContent,
avec un outputSchema déclaré. Les identifiants inconnus sont marqués par
isError: true côté tools ; les resources inexistantes renvoient une erreur
protocolaire MCP.
| Tool | Arguments | Renvoie |
|---|---|---|
get_agent_manifest | aucun | Manifeste Agent Surface : capacités, endpoints, règles d'usage, politiques de preuve et compteurs. |
get_risk_indices | aucun | Signaux de risque normalisés par instrument (US Macro, EU Macro, Yen Carry, Énergie, Dette US) et synthèse de confluence 13F. |
get_signal_history | key, limit | Historique des franchissements de niveau, état courant des signaux et confluence 13FLOW. |
get_risk_diff | window | Diff du risque sur 1, 7 ou 30 jours : signaux, sources, claims, modèles, articles et confiance. |
get_black_box | date, limitFrames | Replay point-in-time des frames de risque hashées, avec refus explicite des dates non rejouables. |
get_openapi_schema | mode, path | Contrat OpenAPI résumé, ciblé par endpoint ou complet pour générer un client. |
get_ndjson_feed | feed, recordType, limit | Flux NDJSON allowlistés : catalogue, claims, evidence graph, changefeed et historique des signaux. |
get_freshness | limit | Fraîcheur du corpus et des signaux : observedAt, computedAt, expiration, couverture et politique de fraîcheur. |
search_content | query, mode, limit | Recherche plein texte locale sur HTML généré, avec mode catalogue disponible pour audit. |
get_claims | articleSlug, kind, query, limit | Relations affirmation-source filtrables, avec références cliquables, datées quand détectable. |
get_claim | claimId | Claim précise, liens ressource et article parent. |
get_claim_evidence | claimId, limit | Niveau de preuve prudent d'une claim, avec preuve directe seulement si revue humaine ; contenus reliés séparés par hôte/source commune. |
list_article_claims | articleSlug, kind, limit | Claims d'un article, utilisables comme points d'entrée du graphe de preuve. |
find_claims_by_source | sourceId, kind, limit | Claims liées à une source primaire, un nom ou un host cité. |
get_source | sourceId, limit | Source primaire ou hôte cité, avec claims associées. |
get_evidence_graph | articleSlug, nodeType, limit | Sous-graphe direct articles → claims → références → sources, contexte relié séparé. |
list_sources | mode, limit | Sources primaires institutionnelles et hôtes effectivement cités par les claims. |
get_integrity | path | Empreintes SHA-256 canoniques des surfaces Agent Surface, JSON et NDJSON. |
verify_artifact | path, sha256 | Vérification allowlistée d'un artefact via le manifeste d'intégrité. |
get_changefeed | contentType, limit | Derniers changements avec objectId, version/hash courant, statut de diff et changement sémantique. |
get_changes | contentType, slug, since, limit | Changefeed filtrable par type, slug et date minimale, avec métadonnées de version. |
list_recent_analyses | limit | Dernières analyses publiées, de la plus récente à la plus ancienne. |
list_guides | aucun | Guides de référence (pages piliers durables). |
search_by_topic | topic, limit | Analyses rattachées à un sujet (hub thématique). |
get_article | slug, offset, cursor, limit, length, section | Texte paginé d'une analyse ou d'un guide, avec nextCursor, références séparées et accès direct tail/sources. |
// 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 Exemple de configuration pour un client compatible :
{
"mcpServers": {
"l0g": {
"command": "npx",
"args": ["mcp-remote", "https://l0g.fr/api/mcp"]
}
}
}
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 \
-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 \
-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 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' // 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
- utiliser l0g avec un agent : prompts, ordre de lecture et règles d'attribution.
- Agent Surface : manifeste, OpenAPI, claims, evidence graph, intégrité, changefeed et NDJSON.
- API JSON : indices de risque, snapshot Dette US et flux Atom des changements de niveau.
- Risk Diff : changements de risque sur 1, 7 et 30 jours.
- Black Box Recorder : replay point-in-time des frames de risque.
- debt-risk.json : valeur Dette US calculée depuis Debt Risk Radar latest.json, avec provenance.
- catalog.json : articles, guides, sujets et atlas du glossaire.
- evidence-graph.json : relation articles, claims, sources et datasets.
- llms.txt et llms-full.txt : carte concise et corpus intégral.
- méthodologie et atlas du glossaire pour le cadre, les définitions et les concepts voisins.