discover_l0g
Discover l0g
Point d’entrée compact : capacités, versions, fraîcheur, contrats, règles de preuve et chemins MCP complet/compact.
latestLimit
io.github.bluetouff由 GitHub 账号 bluetouff 发布v1.24.8更新于 Oct 26, 2026
Read-only macro risk analysis, evidence, signals, and source-backed research from l0g.fr.
只读的远程 MCP 服务器,向 AI 助手提供 l0g.fr 的宏观风险分析、证据图谱、论断、来源与按时间点回放的风险状态。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.bluetouff%2Fl0g/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"l0g-fr-risk-intelligence": {
"type": "http",
"url": "https://l0g.fr/api/mcp/compact"
}
}
}Serveur Model Context Protocol en lecture seule, qui expose les données de l0g.fr (Agent Surface, OpenAPI, Risk Diff, Black Box Recorder, NDJSON, evidence graph, claims, sources, fraîcheur, intégrité, changefeed, historique des signaux, analyses, guides) à des agents IA via resources, prompts, resource templates et tools, avec le transport Streamable HTTP (spec 2025-11-25, le transport SSE est déprécié).
Endpoints publics visés :
https://l0g.fr/api/mcp/compact : façade recommandée à six tools ;https://l0g.fr/api/mcp : surface complète conservée pour compatibilité et usages experts.get_risk_state est le produit principal de la façade compacte. Son contrat
regroupe l’état courant, le diff 1/7/30 jours, l’historique par instrument et le
replay point-in-time avec date de référence, source, méthode et limites.
Le contrat anti-dérive est publié sur https://l0g.fr/api/v1/toolset-manifest.json.
La version active, son SHA source et son statut d'attestation ne sont pas figés
dans cette documentation. Ils sont publiés par la ressource
l0g://mcp/server et vérifiables avec scripts/verify-public-mcp-release.mjs.
Le daemon de production est servi depuis le runtime atomique
/opt/l0g-mcp-runtime/releases/.
Tout client compatible MCP peut utiliser le service distant public sans compte
ni clé API. Une nouvelle intégration doit commencer par
https://l0g.fr/api/mcp/compact; https://l0g.fr/api/mcp conserve la surface
complète pour la compatibilité et les usages experts. Les deux sont en lecture
seule et consacrés aux données de l0g.fr.
Le code du serveur, ses tests et ses scripts de déploiement sont réutilisables
sous licence MIT. Les textes, données et artefacts éditoriaux renvoyés par le
service sont sous licence CC BY 4.0 avec attribution, dans la limite des droits
détenus par leur auteur. Les éléments tiers conservent leurs propres droits.
Consulter LICENSE et NOTICE.md dans l'archive de release.
L'archive Linux/Node publiée est le runtime de production de l0g.fr : elle est auditable et redistribuable selon ces licences, mais elle n'est pas présentée comme un paquet npm générique prêt à héberger un autre corpus ou domaine.
agents.json, catalog.json,
search-index.json, claims.json, evidence-graph.json, sources.json, freshness.json, integrity.json,
changes.json, risk-diff.json, black-box.json, leurs variantes NDJSON, openapi.json, risk.json, debt-risk.json,
risk-events.json et confluence.json. Le service ne fait que lire ces fichiers.
Le cache est lié au répertoire réel de la release atomique : il est conservé tant que le
symlink current pointe sur la même release, puis rechargé après la bascule.tools/list, appels, succès/erreurs, latences p50/p95, tailles de réponse,
tools, resources, prompts et familles stables issues de clientInfo.
Les user-agents internes l0g sont exclus avant agrégation. Aucune IP, session,
empreinte, chaîne user-agent, requête ou réponse n’est conservée. Les libellés
normalisés classés other restent sept jours dans le fichier privé afin de
corriger la taxonomie ; seuls ceux atteignant k=5 sont visibles dans le
diagnostic local /_l0g/mcp-client-taxonomy. Rapport public : /api/mcp/usage.Le rapport /api/mcp/usage conserve les compteurs de succès et d’erreurs. Un succès
technique indique seulement une réponse MCP sans erreur déclarée ; il ne valide
ni l’analyse économique, ni la source, ni la fraîcheur du résultat.
Chaque ligne tools expose désormais error_reasons, des catégories fixes
agrégées sur la même fenêtre que le compteur d’erreurs. Chaque catégorie publiée
atteint k=5. errors_without_detailed_reason inclut les anciennes erreurs sans
cause enregistrée et les catégories sous ce seuil. Le fichier de schéma 2 reste
lisible sans le nouveau champ interne errorReasons. Aucun nom d’outil inconnu,
argument, slug, texte de réponse ou identifiant réseau n’est enregistré.
Les causes des 30 erreurs get_document et 32 erreurs build_research_pack
mentionnées dans le rapport du 8 octobre 2026 ne peuvent pas être reconstruites à
partir de ces seuls agrégats. Les correctifs locaux de pagination et de validation
ont des tests de régression ; ils ne démontrent pas la cause de ces événements
historiques. Pour comparer une nouvelle release, relever sa version et son SHA
avec les dates des captures avant/après, puis calculer les erreurs sur les seuls
résultats connus. Ne pas mélanger deux fenêtres glissantes comme s’il s’agissait
d’un flux exact entre deux dates.
La catégorie client other reste inconnue tant que le diagnostic local ne fournit
pas d’éléments suffisants. Ne pas l’attribuer à un fournisseur par supposition.
Les familles déclarées et les jours actifs ne comptent ni personnes ni
installations uniques.
Les documents et datasets stables sont exposés comme resources MCP. Les tools restent réservés aux opérations de recherche, filtrage et synthèse.
resources/list est volontairement borné aux dix resources statiques afin de ne pas injecter le
catalogue entier dans le contexte des clients. Les articles, guides,
claims, sources, signaux et méthodologies restent lisibles par URI via les templates ;
resources/templates/list les découvre et les variables principales conservent leurs callbacks
de complétion. Les tools de recherche et de filtrage fournissent la découverte ciblée. Le service
est stateless en requête/réponse et
n’annonce pas resources.subscribe ni resources.listChanged : pour surveiller le corpus, lire
l0g://changes/latest ou appeler get_changefeed.
Les prompts MCP sont des workflows sélectionnés explicitement par l'utilisateur. Le serveur
annonce la capability prompts, sans listChanged, et valide chaque argument avant de rendre le
message. Leur définition unique vit dans src/lib/agent-prompts.mjs, également utilisée par la
page /agents/.
Tous les tools renvoient désormais :
content;structuredContent;outputSchema déclaré et validé par le SDK.title et les hints readOnlyHint: true, destructiveHint: false,
idempotentHint: true, openWorldHint: false ;resource_link natifs lorsque la réponse référence des documents, claims ou sources.Le JSON n'est donc plus caché dans un bloc texte à reparser.
Le workflow publié exécute agent-bench.mjs contre ce serveur après le test de protocole. Les 44 cas FR/EN n’appellent aucun LLM et couvrent le top 3 documentaire, les sources primaires, la parité des traductions, asOf, le refus sans preuve, la fraîcheur et le typage des claims. Le résultat versionné et attesté est publié sur /api/v1/agent-bench.json et présenté sur /agent-bench/.
Les documents longs exposent section, offset, limit, nextOffset et nextCursor. Exemple :
l0g://articles/economie-des-intentions?section=sources&offset=0&limit=12000.
Les références structurées sont aussi renvoyées séparément dans references, afin de ne pas dépendre
du chunk de texte courant.
get_risk_diff est le chemin court pour répondre à une question de type "qu'est-ce qui a changé
dans le risque depuis hier, 7 jours ou 30 jours". get_black_box sert au replay : avec date, le
tool sélectionne la dernière frame publiée avant ou le jour demandé ; si aucune frame n'existe, la
réponse marque la date comme non rejouable plutôt que de recalculer après coup.
get_claims regroupe les anciens chemins unitaires, par article, par source et par preuve. Les identifiants inconnus sont marqués avec isError: true.
Les resources inexistantes renvoient une erreur protocolaire MCP, pas un document JSON avec champ error.
StateDirectory systemd reçoit un agrégat sur 91 jours,
sans IP, cookie, session, empreinte ou user-agent. Les familles client sous cinq
initialisations sont masquées dans le rapport public.X-Forwarded-For posé par Apache).LimitRequestBody aligné à 1 Mo, entêtes de sécurité sur réponse,
timeout applicatif 30 s, keepalive proxy désactivé sur l’endpoint.DynamicUser, TimeoutStartSec=45, TimeoutStopSec=15, UMask=0077,
PrivateIPC, LimitCORE=0, ProtectSystem=strict, capacités vidées, ReadOnlyPaths,
MemoryMax, filtre d'appels système.Hypothèses : Apache sert déjà l0g.fr en HTTPS, le site est déployé dans
/var/www/html/l0g/current. Node 22+ requis.
Le script installe le binaire officiel Node.js 24.18.1 sous /opt, vérifie son SHA-256
figé, ne remplace pas le paquet Debian et bascule uniquement les services MCP via des
drop-ins systemd. Il conserve l'identité du daemon actif et restaure la configuration
précédente si le contrôle de santé échoue.
Le runbook complet, le bloc de migration avec sauvegardes et la procédure de release sont dans
docs/MCP-RELEASE.md.
Après cette migration, le serveur ne lance plus
git pull ni npm ci : il poll les GitHub Releases publiques, vérifie SHA-256 et l'attestation
GitHub/Sigstore, teste le candidat, puis bascule un symlink atomiquement avec rollback automatique.
Prérequis supplémentaires : GitHub CLI doit fournir gh attestation verify. Le timer et le
daemon n'ouvrent aucun port entrant de déploiement et n'utilisent aucun token GitHub permanent.
Le vhost complet maintenu dans le dépôt est ../deploy/l0g.fr.apache.conf. En
production, il doit être installé transactionnellement dans
/etc/apache2/sites-available/l0g.fr-hardened.conf, après sauvegarde du fichier
actif. Le fragment deploy/apache-l0g-mcp.conf reste une référence isolée pour
les deux routes MCP, pas la source du vhost de production. Puis :
Après reload :
Cycle MCP minimal en JSON-RPC brut sur la façade compacte recommandée :
Ou pointer un client compatible (Claude Desktop via mcp-remote, l'inspecteur MCP, etc.)
sur https://l0g.fr/api/mcp/compact. Remplacer l'URL par https://l0g.fr/api/mcp
uniquement pour les outils spécialisés de la surface complète.
Après sept jours de collecte, l’opérateur peut lire les libellés normalisés qui
composent encore other. Le chemin n’est pas proxifié par Apache et refuse toute
requête non locale :
mcp-vX.Y.Z. Le workflow construit une
archive versionnée avec SBOM, l'atteste par OIDC, la publie en GitHub Release, attend le
déploiement atomique de zen, puis publie le manifeste dans le MCP Registry par OIDC.来源:mcp-server/README.md,提交 754ee96
Discover l0g
Point d’entrée compact : capacités, versions, fraîcheur, contrats, règles de preuve et chemins MCP complet/compact.
latestLimitSearch l0g
Recherche filtrée bilingue dans articles, guides, glossaire, méthodologies et sources. Renvoie des URL canoniques et des extraits bornés.
modelimitquery必填languageGet document
Lit un article ou guide l0g par slug, avec pagination opaque, troncature explicite, références et URL canonique.
slug必填limitcursorlengthoffsetsectionlanguageGet evidence
Interroge les claims et leurs sources, un sous-graphe de preuve ou le registre de sources avec une seule primitive compacte.
kindmodelimitqueryclaimIdlanguagesourceIdarticleSlugincludeEvidenceBuild research pack
Compose en un appel un paquet de recherche déterministe : documents classés, claims canoniques, sources primaires, liens claim -> preuve, fraîcheur, Risk Diff, éléments adverses, limites et URLs citables. Ne produit aucune opinion d’investissement.
asOflimitquery必填language必填riskWindowGet l0g risk state (primary)
Produit agentique principal de l0g. Renvoie un contrat stable et sourcé pour l’état courant, le diff 1/7/30 jours, l’historique d’un instrument ou un replay Black Box point-in-time. Commencer ici pour toute question sur le risque.
datemodelimitwindowinstrument已满足适用检查项的 90%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
请在仓库或注册中心条目中声明许可证。
agent / client MCP | HTTPS (Streamable HTTP, POST JSON-RPC) v Apache (443, l0g.fr) ──reverse proxy──> 127.0.0.1:8848 (service Node, systemd) | | lit (lecture seule) v /var/www/html/l0g/current/agents.json /var/www/html/l0g/current/openapi.json /var/www/html/l0g/current/api/v1/*.json|*.ndjson /var/www/html/l0g/current/risk-events.json /var/www/html/l0g/current/confluence.json /var/www/html/l0g/current/posts|guides/<slug>/index.html /var/www/html/l0g/current/en/analysis|guides/<slug>/index.htmlsudo deploy/install-node24-runtime.shL0G_DATA_DIR=/var/www/html/l0g/current \MCP_USAGE_PATH=/tmp/l0g-mcp-usage-test.json node server.mjs &curl -s http://127.0.0.1:8848/healthz # -> versions MCP/Agent Surface, SHA et fraîcheur chargéenode test-client.mjs # liste les tools et teste chaque appel# le script force l'en-tête Accept requis par le Streamable HTTP :# application/json, text/event-streamkill %1systemctl status l0g-mcp l0g-mcp-deploy.timer --no-pagerjournalctl -u l0g-mcp-deploy.service -n 100 --no-pagercurl -s http://127.0.0.1:8848/healthz # -> versions MCP/Agent Surface, SHA et fraîcheur chargéesudo a2enmod proxy proxy_http headerssudo apache2ctl configtest # Syntax OKsudo systemctl reload apache2sudo apache2ctl -M | rg -e "proxy_module|proxy_http_module|headers_module|rewrite_module"curl -s -I https://l0g.fr/api/mcp/compact | sed -n '1,20p'curl -s -I https://l0g.fr/api/mcp | sed -n '1,20p'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":{}}' | head -c 400curl -fsS http://127.0.0.1:8848/_l0g/mcp-client-taxonomy