// mcp
Finance MCP & risk
l0g exposes its data to AI agents through the Model Context Protocol, read-only. An agent can query Agent Surface, the OpenAPI contract, NDJSON feeds, Risk Diff, Black Box Recorder, claims, the evidence graph, sources, freshness, integrity, changefeed, signal history or full article text without scraping the site. No key or authentication. Usage measurement is aggregated without IP addresses, cookies, sessions, fingerprints or user-agent strings in MCP telemetry.
1.24.3, with consolidated claims/source tools, at most three structural typed claims per article and anonymous usage statistics. The version and SHA actually running remain available through l0g://mcp/server; repository and runtime are only considered aligned after the attested release is published.https://l0g.fr/api/mcp/compact exposes six primitives:discover_l0g, search_l0g, get_document, get_evidence,build_research_pack and get_risk_state. The full MCP remains available at https://l0g.fr/api/mcp. Contract fingerprints are published in toolset-manifest.json.get_risk_state unifies current risk, 1/7/30-day changes, instrument history and Black Box replay. Every response preserves its reference date, canonical source, methodology, coverage and interpretation limits. Start here for any risk question.// why
AI agents increasingly read the web on behalf of humans, and they often do it badly: flattening HTML, losing context and mangling citations. For a site whose value depends on sourcing discipline, that is a risk. l0g publishes clean, attributable machine surfaces so the data can be reused exactly.
The Model Context Protocol extends the site philosophy: static-first, self-hosted, no tracking, no opaque proxy, read-only access and CC BY 4.0 reuse with attribution.
// endpoint
Streamable HTTP transport, request/response JSON mode.
https://l0g.fr/api/mcp/compactRecommended entry point for new integrations. Expert full surface: https://l0g.fr/api/mcp.
Aggregated public report: /api/mcp/usage. Definitions and limitations are documented on the agents page.
Read-only. The code and deployment procedure are public in the GitHub repository.
// resources
Documents and datasets are exposed as MCP resources. Agents can list resources with resources/list, read them with resources/read, and discover parameterized URIs with resources/templates/list. The list is capped at ten static resources so clients do not load the entire catalog into context.
| URI | Content |
|---|---|
l0g://agent-manifest | Agent Surface manifest |
l0g://openapi | Complete OpenAPI contract |
l0g://freshness | Corpus and signal freshness |
l0g://integrity | Canonical SHA-256 fingerprints |
l0g://changes/latest | Latest editorial changes and publications |
l0g://risk-diff | Risk diff over 1, 7 and 30 days |
l0g://black-box | Hashed point-in-time risk frames |
l0g://signals/current | Current signal state |
l0g://signals/history | Point-in-time signal history |
l0g://mcp/server | MCP version, active SHA and server capabilities |
// resource templates
| Template | Content |
|---|---|
l0g://articles/{slug} | First article page with metadata, references and text |
l0g://articles/{slug}{?section,offset,limit} | Targeted article page by section, offset and limit |
l0g://articles/{slug}{?cursor} | Article continuation through nextCursor |
l0g://en/articles/{slug} | First English analysis page with canonical French evidence references |
l0g://en/articles/{slug}{?section,offset,limit} | Targeted English analysis page |
l0g://en/articles/{slug}{?cursor} | English analysis continuation through nextCursor |
l0g://guides/{slug} | First guide page with metadata and text |
l0g://guides/{slug}{?section,offset,limit} | Targeted guide page by section, offset and limit |
l0g://guides/{slug}{?cursor} | Guide continuation through nextCursor |
l0g://en/guides/{slug} | First English guide page |
l0g://en/guides/{slug}{?section,offset,limit} | Targeted English guide page |
l0g://en/guides/{slug}{?cursor} | English guide continuation through nextCursor |
l0g://claims/{claim_id} | Claim-source relationship |
l0g://sources/{source_id} | Primary source or cited host |
l0g://signals/{instrument}/current | Current signal and history |
l0g://methodologies/{instrument} | Methodology note |
Templates describe resource families and propose variable completions. Targeted search and filtering tools discover individual instances. The public service is stateless and does not advertise live subscriptions; monitoring goes through l0g://changes/latest or get_changefeed.
// prompts
Four user-controlled workflows are discoverable through prompts/list and rendered through prompts/get. They share their definitions with the Agent Surface guide. Arguments are validated and the stateless server does not advertise listChanged.
| Prompt | Arguments | Workflow |
|---|---|---|
audit_financial_narrative | topic, language? | Audits a financial narrative by separating claims, primary evidence, inferences, scenarios and limitations. |
explain_risk_change | window?, language? | Explains what changed in published risk signals over a selected window, without extrapolation. |
verify_claim | claim, language? | Checks a statement against canonical claims, their evidence and primary sources. |
replay_as_of | date, question?, language? | Replays only a state actually archived by a given date, without retrospective reconstruction. |
// tools
get_risk_state is the normal path for risk. The full catalog below supports expert research, filtering, evidence, replay, history, subgraph extraction and targeted reading. Full-text search remains local and deterministic, with no vector database or external provider.
| Tool | Arguments | Returns |
|---|---|---|
get_agent_manifest | none | Agent Surface manifest: capabilities, endpoints, usage rules, proof policies and counters. |
get_risk_indices | none | Normalized risk signals by instrument and 13FLOW confluence synthesis. |
get_signal_history | key, limit | Level-change history, current signal state and 13FLOW confluence. |
get_risk_diff | window | Risk diff over 1, 7 or 30 days: signals, sources, claims, models, articles and confidence. |
get_black_box | date, limitFrames | Point-in-time replay of hashed risk frames, with explicit refusal for non-replayable dates. |
get_openapi_schema | mode, path | Summarized, endpoint-targeted or complete OpenAPI contract. |
get_ndjson_feed | feed, recordType, limit | Allowlisted NDJSON feeds: catalog, claims, evidence graph, changefeed and signal history. |
get_freshness | limit | Corpus and signal freshness: observedAt, computedAt, expiration, coverage and policy. |
search_content | query, language, mode, limit | Bilingual search over the canonical index shared by Agent Surface, MCP and WebMCP. |
get_claims | claimId, articleSlug, language, sourceId, kind, query, includeEvidence, limit | Search, exact claim, article, source and evidence neighbourhood in one contract. |
get_evidence_graph | articleSlug, language, nodeType, limit | Canonical graph: an English slug points to the French graph without duplication. |
list_sources | sourceId, mode, includeClaims, limit | List or resolve one source, with linked claims on demand. |
get_integrity | path | Canonical SHA-256 fingerprints for Agent Surface, JSON and NDJSON surfaces. |
verify_artifact | path, sha256 | Allowlisted artifact verification through the integrity manifest. |
get_changefeed | contentType, limit | Latest changes with objectId, current version/hash, diff status and semantic change. |
get_changes | contentType, slug, since, limit | Changefeed filtered by type, slug and minimum date. |
list_recent_analyses | language, limit | Latest French or English analyses, newest first. |
list_guides | language | French or English reference guides. |
search_by_topic | topic, language, limit | Analyses attached to a topic hub, filterable by language. |
get_article | slug, language, offset, cursor, limit, length, section | Paginated French or English text with canonical references. |
// connect
Inspect tools with the official inspector:
npx @modelcontextprotocol/inspectorConnect a desktop client through the local bridge:
npx mcp-remote https://l0g.fr/api/mcp/compactExample compatible-client configuration:
{
"mcpServers": {
"l0g": {
"command": "npx",
"args": ["mcp-remote", "https://l0g.fr/api/mcp/compact"]
}
}
}Minimal raw JSON-RPC cycle:
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"}}}'// security and design
- Read-only. No tool writes anything, and article access goes through a slug allowlist, with no arbitrary URL fetch.
- Not exposed directly. The service listens locally, behind Apache TLS and proxying.
- Anti-hijacking. Host and Origin validation on each request, against DNS rebinding attacks.
- Bounded. Per-IP rate limiting, bounded request size and hardened system service.
- No sensitive data. Everything is public: no key, no authentication and no tracking.
// other machine access
- Agent Surface: manifest, OpenAPI, claims, evidence graph, integrity, changefeed and NDJSON.
- Public API: risk indices, canonical Debt Risk snapshot and level-change feed.
- llms.txt and llms-full.txt: concise map and full corpus.