MCP Server · For AI Agents

Connect your AI to Fontvera

Give Claude — or any MCP client — direct access to verified EU regulatory data: obligations, cross-regulation conflicts, member-state transposition, compliance deadlines, enforcement decisions, and a 400,000-document corpus.

Endpoint https://fontvera.eu/mcp

Model Context Protocol, Streamable HTTP transport. Stateless, read-only. No account required to try it — anonymous access is rate-limited to 20 requests per minute.

Add it in Claude

  1. Open Settings → Connectors in Claude (web or desktop).
  2. Click Add custom connector.
  3. Enter the URL https://fontvera.eu/mcp and confirm.
  4. Ask a question — e.g. "What are the verified conflicts between DORA and NIS2?" — and Claude will call Fontvera's tools with cited, primary-source data.

Other clients

Claude Code (terminal):

claude mcp add --transport http fontvera https://fontvera.eu/mcp

Claude Desktop via config file (if you prefer claude_desktop_config.json over the Connectors UI; uses the mcp-remote bridge, requires Node.js):

{
  "mcpServers": {
    "fontvera": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://fontvera.eu/mcp"]
    }
  }
}

Any other MCP client that speaks Streamable HTTP can point straight at the endpoint. Quick check from a shell:

curl -s https://fontvera.eu/mcp -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"compliance_deadlines","arguments":{"regulation":"AI Act","upcoming_only":true}}}'

The seven tools

search_obligationsread-only
Search 3,000+ structured obligations across 9 EU regulations by regulation, article, entity type, sector, or keywords.
Try: "What must AI system deployers in healthcare do under the AI Act?"
get_article_obligationsread-only
Every obligation stored for one article of one regulation, plus verified conflicts and unreviewed overlaps/gaps touching it.
Try: "GDPR Article 28 — processor obligations and cross-regulation issues."
check_conflictsread-only
Human-verified conflicts between EU regulations, with the lex specialis resolution where one exists.
Try: "Does DORA conflict with NIS2 on incident reporting?"
transpositionread-only
How member states transposed EU directives — verified national acts, divergences, penalties, and authorities, per country and axis.
Try: "How did Germany implement NIS2 management liability?"
compliance_deadlinesread-only
Verified compliance dates for 11 EU laws with primary sources — AI Act dates as amended by the Digital Omnibus (Reg. (EU) 2026/1744, in force 27 July 2026), superseded dates kept alongside.
Try: "When do AI Act high-risk obligations actually apply?"
enforcement_searchread-only
Enforcement decision metadata — authority, country, sector, fine amount, violation type — with links to the primary documents.
Try: "Largest GDPR fines in France for insufficient legal basis."
search_corpusread-only
Full-text search over 400,000+ documents: EUR-Lex, court decisions, DPA enforcement, and regulator guidance. Raw passages with source URLs.
Try: "EDPB guidance on legitimate interest for AI training data."

Verification, not vibes

Fontvera separates verified from unreviewed data at the API level. Cross-regulation conflicts are served only after human audit against the legal provisions. Transposition rows render only with an authoritative national source. Deadlines carry their primary source and, where an amendment moved them (e.g. the Digital Omnibus on AI, Regulation (EU) 2026/1744), the superseded date as well. Overlaps and gaps that have not yet been audited are explicitly flagged unreviewed in every response.

Every tool response carries the disclaimer: "Not legal advice. Primary-source regulatory data from fontvera.eu." The connector returns raw data and source URLs — your AI does the reasoning; the citations stay checkable.

Higher limits

Anonymous corpus search returns up to 3 passages per query. API-key holders get up to 8 passages and no rate cap. Contact hello@fontvera.eu for a key, then send it as a Bearer token: Authorization: Bearer <key>.