MCP server for Dutch & European legal search — 14 sources, citation-verified answers
LegalMike's Model Context Protocol (MCP) server gives your AI assistant access to Dutch and European legal sources. Ask a legal question and receive a grounded, citation-backed answer in seconds.
You can connect LegalMike to Claude on Claude.ai, the Claude desktop app, and Claude Code.
loading...
Available on Free (1 integration), Pro, Max, Team, and Enterprise plans. See the Anthropic documentation for more details.
Run this command to add the server:
claude mcp add --transport http lmcp loading...
Add to .vscode/mcp.json in your project:
loading...
Then open Copilot Chat in Agent mode. Copilot will prompt you to authenticate with your LegalMike account via OAuth.
If OAuth isn't available, pass an API key in the
Authorization header as a Bearer token.
You can add MCP apps to ChatGPT if you have a Pro, Plus, Team, Enterprise, or Edu account.
loading...
See the OpenAI documentation for more details.
Work in progress. Contact info@legalmike.ai for early access.
Use server URL loading... with
"OAuth" as the connection mechanism. Your client
handles the authorization flow automatically.
loading...
For backend services, automated pipelines, or clients that don't
support OAuth, pass an API key as a Bearer token in the
Authorization header. No OAuth flow or client
registration is needed.
{
"mcpServers": {
"lmcp": {
"url": "loading...",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
API tokens are issued per organization with a configurable expiry. Contact info@legalmike.ai to request one for your organization.
Each ask call passes through six stages before returning
a response.
legal_question, follow_up,
possibly_legal, meta_question,
off_topic), the task type
(onderzoek, opzoeken,
samenvatten, vergelijken,
casusbegeleiding, schrijven), and the
research depth (direct, kort_aanbod,
diepgaand — overridable via the
length parameter). It also detects language (27
supported), checks completeness, flags legal misconceptions, and
marks whether the answer needs current information. Non-Dutch
questions are translated to Dutch for retrieval. Skipped entirely
when smart_intake=false.
direct gives a concise, free-form answer;
kort_aanbod adds a short judgment on whether deeper
research is worthwhile; diepgaand produces the full
structured analysis. Every legal claim must cite a source
identifier (ECLI, CELEX, BWB, etc.) with a link to the original
document.
high / medium / low)
via SSE notification:
CONFIDENCE:{level}|{cited}/{provided}|{utilization}%.
length parameter
(short / medium / long).
conversation_history is provided, the server
detects follow-up questions and reconstructs the full context from
prior turns. Topic switches are treated as new questions.
"Zoeken in jurisprudentie..."). Long
synthesis runs include periodic heartbeat messages.
LMCP requires authentication for all tool calls. Two methods are supported.
| Method | For | How |
|---|---|---|
| OAuth 2.1 | Individual users with a LegalMike account | Your AI client handles the flow automatically (Authorization Code + PKCE). No keys to manage. |
| API Key (Bearer Token) | System-to-system integrations, backend services |
LegalMike generates a long-lived token for your organization.
Pass it as a Bearer token in the
Authorization header. Contact
info@legalmike.ai to
request one.
|
Pass the token as a Bearer token in the
Authorization header. No OAuth flow or client
registration is needed.
curl -X POST https://mcp.legalmike.ai/mcp \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"my-app","version":"1.0"}},"id":1}'
Contact info@legalmike.ai to request an API key for your organization.
| Client | OAuth 2.1 | API Key |
|---|---|---|
| ChatGPT | supported | — |
| Claude | supported | — |
| Microsoft 365 Copilot | supported | supported |
| GitHub Copilot | supported | supported |
| Custom backend / API | — | supported |
LegalMike's MCP server provides tools to search Dutch and European legal sources and synthesize grounded answers. Your AI assistant can call these tools directly — every claim in the response is backed by a citation to the original source. You don't need to learn the tools yourself; your AI client discovers and invokes them automatically based on your questions.
ask searches all sources. To restrict it, pass the
restrict_to_sources parameter with one or more source ids (see the
ask tool schema below for the full list and what each
covers):
{"name": "ask", "arguments": {
"question": "Wat is de Haviltex-norm?",
"restrict_to_sources": ["caselaw_nl", "legislation_nl"]
}}
Unknown ids are ignored; selection stays within the sources your
profile allows.
Smart intake behavior: With
smart_intake=true (the default),
restrict_to_sources is a voorkeur (preference) —
the server may also search other sources when omitting them would
hurt answer quality. When it does, the answer includes a footnote
listing the added sources and a sources_added_beyond_request
field in the response. With smart_intake=false,
restrict_to_sources becomes a strikt (strict) filter
— only the listed sources are searched.
Loading tools...
Every answer is grounded in text chunks retrieved from these authoritative sources. Citations link directly to the original documents on their official platforms.
caselaw_nl
Dutch case law from all courts — Hoge Raad, Gerechtshoven,
Rechtbanken (ECLI, via rechtspraak.nl)
legislation_nl
Dutch legislation, AMvBs, ministerial regulations (BWB, via
wetten.overheid.nl)
disciplinary_law_nl
Disciplinary law — medical, legal, notary, accounting
(tuchtrecht.nl)
local_law_nl
Municipal & provincial rules, spatial filtering by postcode
or gemeente (CVDR)
eurlex
EU directives, regulations, decisions (CELEX, via EUR-Lex)
eurlex
Court of Justice & General Court judgments (CELEX, via
EUR-Lex)
echr_eu
European Court of Human Rights cases and practice guides
(HUDOC)
adr_decisions_nl
ADR decisions: Kifid, SKGZ, Geschillencommissie Bouw (RAB)
open_access_literature_nl
Open-access scholarly articles, legal research, and doctrine
parliamentary_nl
Kamerstukken, Memorie van Toelichting & legislative
history
tuchtraad_verzekeraars_nl
Insurance industry disciplinary board decisions
cvt_nl
Detention oversight committee decisions on prisoner
complaints
rsj_nl
Appeals on detention, TBS, and youth protection decisions
huurcommissie_nl
Dutch rent tribunal decisions on residential lease disputes
onderwijsgeschillen
Education sector dispute resolution and arbitration decisions
The Model Context Protocol is an open standard for connecting AI clients to external tools and data. LMCP implements Streamable HTTP transport with SSE for progress notifications.
Streamable HTTP. The endpoint is /mcp. The server
returns a session ID on initialization. Progress updates and
confidence scores are sent as SSE notifications during tool
execution.
After each answer, the server sends
CONFIDENCE:{level}|{cited}/{provided}|{utilization}%.
level is high, medium, or
low. cited/provided shows how many source
chunks were referenced vs. retrieved. utilization% is
the ratio. Low confidence typically means a hallucinated citation
was detected.
Pass conversation_history (array of
{role, content} objects) to enable follow-up detection
and context reconstruction. The server detects topic switches and
treats them as new questions automatically.
No. Questions and answers are not persisted and are not used for model training.
GET /status returns
{"status": "ok", "server": "LMCP"}.