eulaw.ai MCP Server 是官方的吗?
是的。它由 eulaw.ai 运营,地址为 `https://eulaw.ai/api/mcp`,并在 eulaw.ai 自己的 MCP 页面上有说明。
@eulaw.ai
基本信息
传输方式
streamable-http
认证方式
OAuth
作者
eulaw.ai
eulaw.ai MCP Server 是 eulaw.ai 托管的 MCP 端点。eulaw.ai 是面向欧盟法和各国法律的 AI 法律工作台。登录 eulaw.ai 后,AI 助手可以对欧洲立法和判例法进行语义检索,读取匹配文档的全文,并查看覆盖了哪些法域。
https://eulaw.ai/api/mcpclaude mcp add eulaw --transport http https://eulaw.ai/api/mcpSemantic search over eulaw.ai's corpus of European legislation and case law. Use it whenever a question turns on what a European or national European law actually says, or on how a court has applied it, and you need the authoritative text rather than recollection. Returns one entry per matching document: title, jurisdiction, document type, publication date, the identifiers that document carries (CELEX, ELI, ECLI where they apply), a source URL, an opaque document_id, and a passage from the document. It returns passages, not whole documents - call get_document with the document_id when the surrounding text matters. It cannot answer about jurisdictions outside the covered set: call list_jurisdictions first if you do not already know which codes are covered. It is not a general web search and holds no material outside the legal corpus.
Fetch the text of a single document from the eulaw.ai corpus by the document_id and jurisdiction that search_legal_sources returned for it. Use it when a passage from search is not enough to answer accurately - to read the provision around a quoted fragment, to check a definition, or to confirm wording before relying on it. Documents can be long, so it returns a slice: the response states the total length and whether more remains, and offset pages through the rest. It takes only identifiers this server issued; it cannot fetch a document from a URL or a citation.
List the jurisdiction codes this server can search, with their names. Call it before the first search of a conversation, or whenever a question names a country whose coverage you have not confirmed, so the search is scoped to codes that exist rather than guessed ones. Coverage changes as jurisdictions are added, so treat the returned list as current and do not assume a code is covered because it was covered before.
Exact lookup in the metadata of one or more jurisdictions, for documents you can name rather than describe: an identifier or number as written (CELEX, ELI, ECLI, a case or act number), words of the title, the issuing body, a document family, a publication period. Returns metadata rows: document_id, title, family, dates, whether it is recorded as in force, identifiers and URL. Read a row's text with get_document. Use search_legal_sources instead for a topic. The in-force flag is not reliable for bills, proposals and decisions, and not in every jurisdiction: confirm validity from get_relations.
The recorded relations of one document: the acts it amends, consolidates, repeals or is based on, and the acts that amend, consolidate or repeal it, each with its title, publication date and in-force flag. Use it to establish which text is in force today, to find the current consolidated version or the successor of a repealed act, and to list the amendments to check before relying on a provision. A consolidated text may not yet include every amending act: read the consolidation's opening note with get_document.
ALWAYS call this tool (never answer from your own knowledge) when the user asks how a parliament, the Council, a member state, an individual MEP, or a Danish MP voted — these are structured records that change and must be grounded. Query STRUCTURED voting records covering FOUR things: (1) EUROPEAN PARLIAMENT plenary roll-call votes with the position of each INDIVIDUAL MEP; (2) EUROPEAN PARLIAMENT COMMITTEE votes; (3) COUNCIL OF THE EU votes with the position of each INDIVIDUAL MEMBER STATE — so "how did Denmark vote on X" is answered properly, per country, not just as a Council total; and (4) DANISH FOLKETINGET votes on national Danish law, with per-MP positions. Also: vote outcomes (ADOPTED/REJECTED/LAPSED), tallies (for/against/abstain), and roll-call decisions. Use this for: "how did Parliament vote on <named act or dossier>", "which votes were rejected", "how did <MEP name> vote", "how did <MEP name> vote in the latest session", member-state Council votes like "how did <country> vote on <named act>", "hvad har Danmark stemt til X", "what did <country> vote on procedure <YYYY/NNNN>", AND Danish national votes like "hvem stemte for lov nr. <number>", "hvordan stemte Folketinget om X", "how did the Danish parliament vote on X" (for these set `body`: "folketinget", and put the topic in `query` IN DANISH). Danish votes can be looked up by case number (a letter L/B/V/F/S/R followed by a number) or by the enacted law in the form "Lov nr. <number> af <date>" — pass either in `procedure`. The law number needs BOTH its number and its year: a bare number cannot be resolved, because the same number is reused in different years, so ask the user for the date rather than guessing which one they mean. This is exact structured data (a relational voting database), NOT semantic text search — so prefer it over search_legal_sources and get_document whenever the user asks about VOTING, VOTE RESULTS, or how someone/some country voted. Set `mep` for an individual member (an MEP, or a Danish MP when combined with body:"folketinget"), with `latest: true` for their most recent session; set `memberState` to a country's English name for its Council vote, with the topic in `query`; set `body` to "council" for Council votes generally or "folketinget" for Danish national votes; set `committee` (e.g. "ENVI", "LIBE") for a parliamentary committee's votes, optionally with `mep` for how a member voted in that committee; otherwise pass topic/outcome/date/procedure filters. Council vote topics are matched via the legislative procedure, so a procedure number in the form YYYY/NNNN(TYPE) also works. IMPORTANT for Danish votes: Folketinget's printed tally counts party mandates (Danish parties may have a group's votes cast as a block) while the individual positions count only members who personally registered one — the two are NOT comparable, a member with no recorded position did NOT necessarily fail to vote, and a minority of Danish votes carry no individual positions at all (for those, only the party-mandate tally exists). Do not quote a proportion for this from your own knowledge. Never present a missing Danish position as evidence that someone abstained or was absent. COVERAGE: never state a date range for any chamber from your own knowledge. The tool reports the range it actually holds when a search finds nothing — quote THAT and nothing else. A corpus that is still loading holds less than the source offers, so asserting the source's full range would tell the user a gap is a period of legislative silence. Does NOT cover the legal text of laws (use search_legal_sources and get_document) or court judgments (use search_legal_sources and get_document), and does NOT list who currently sits in a parliament (use eu_official_lookup).
ALWAYS call this tool (never answer from your own knowledge) when the user asks who the rapporteur is, which committee is responsible, what stage a procedure has reached, or which dossiers a committee is handling — this is live dossier data that changes and must be grounded. Look up an EU LEGISLATIVE PROCEDURE / dossier in the European Parliament's Legislative Observatory (OEIL) — the responsible COMMITTEE, the RAPPORTEUR(s), the current STAGE/status, key dates, and the adopted act (CELEX). Use this for "who is the rapporteur on X", "hvem er rapporteur på X", "which committee is responsible for X", "hvilket udvalg er ansvarligt for X", "what stage is the X procedure at", "hvilken fase/stage er X nået til", AND "what was Parliament's or the Council's position on X", "hvad var parlamentets/rådets position til X" (the tool returns the procedure's reading-stage events — Parliament/Council 1st/2nd-reading decisions — with their document refs; for the position TEXT combine with search_legal_sources and get_document). ALSO handles WHOLE-FILE STATUS via request="status": give it an act by NAME (`topic`) or by reference (`procedure`) and it resolves the file ONCE and returns its dated timeline - the key events with their document refs, the responsible committee, the rapporteur, and how many committee amendment documents are on record. Use it for "what is the status of <act>", "hvad er status paa <lov>", and any request for a TIMELINE of where a file has got to. It reports PROCESS ONLY and holds no legislative text, so it cannot say what an act requires. For a question that names an act, search_legal_sources and get_document are PRIMARY and this lane is COMPLEMENTARY: call search_legal_sources and get_document for what the act says and this one alongside it for where the act stands, and lead the reply with the law, not with the file progress. This lane becomes the whole answer only when the act has not been adopted and so has no text to lead with. Prefer it over request="dossier" when the user wants the whole picture rather than one field. It is the only lane that can answer for an act the Commission has ANNOUNCED but not yet tabled: such an act has no procedure file, so it reports that it is not yet tabled and that no rapporteur, committee or reading stage exists yet - report that as the answer, never as a failed lookup. It also refuses to guess between editions of an act: when the name carries an ordinal (II, III) it will not return a different edition, and when several files match equally it returns them and asks which is meant - put that question to the user rather than choosing one. ALSO handles two committee-record requests via `request`: request="agenda" returns a committee's latest or next MEETING AGENDA with its items ("hvad var dagsordenen til seneste møde i ENVI-udvalget", "what is on the agenda of the next ITRE meeting" — set `committee`, and `when`="next" for upcoming meetings); request="amendments" returns the COMMITTEE-STAGE AMENDMENT documents (ændringsforslag) tabled on a dossier ("hvilke ændringsforslag kom der til X fra ENVI-udvalget" — set `topic` or `procedure`, optionally `committee` to narrow). This is the DOSSIER and committee record (who is steering a law, how far it has progressed, what committees put on their agendas and tabled), NOT how anyone voted (use parliamentary_votes) and NOT the law's text (use search_legal_sources and get_document). ALSO handles FORTHCOMING legislation via request="initiatives": the European Commission's published-initiatives / Have Your Say pipeline, i.e. laws it has ANNOUNCED but not yet tabled. Use it for "what legislation is coming on <policy area>", "hvilken lovgivning er paa vej paa <omraade>", "what is the Commission planning on <policy area>", and with openForFeedback=true for "what can I comment on right now". Set `topic` to the policy area. It holds the PIPELINE of announced acts, one row per planned initiative, and contains the TEXT of no document: asked for the contents o…
ALWAYS call this tool (never answer from your own knowledge) when the user asks who currently holds an EU or Danish institutional role — a Commissioner, the College, a Commission department/DG, a Danish minister, a sitting MEP, or a sitting member of the DANISH FOLKETINGET — because these change and must be grounded in the reference directory. ROUTING RULE, APPLY THIS FIRST: if the question names the FOLKETINGET, a folketingsmedlem, an MF, or a DANISH political party (Venstre, Socialdemokratiet, SF, Dansk Folkeparti, Liberal Alliance, Moderaterne, Enhedslisten, Radikale Venstre, Det Konservative Folkeparti, Danmarksdemokraterne, Alternativet, Borgernes Parti), you MUST use kind:"ft_mp". Do NOT use kind:"mep" for those. The MEP roster is the EUROPEAN Parliament and does not contain Folketinget members, so answering a Folketinget question from it produces a confident answer about the wrong body — which is what happened before this rule existed: asked "hvem sidder i Folketinget for Venstre", the MEP roster was queried, it returned Denmark's 15 MEPs, and the user was told the Folketinget roster does not exist. ALSO covers WHO RUNS A COMMISSION DEPARTMENT: `kind: "dg"` is the DIRECTOR-GENERAL of a department and `kind: "deputy_dg"` its Deputy Director-General(s) - the ADMINISTRATIVE head, distinct from the politically appointed Commissioner, and usually the more useful contact. Use for "who is the Director-General for <policy area>", "hvem er generaldirektoer for <omraade>", "who runs <DG abbreviation>". Combine with `org` to name the department. A department can have SEVERAL deputies, so report all of them rather than the first. Not every body has a Director-General: executive agencies and offices are headed by a Director or a Head of Service and simply return nothing here - say the department has no Director-General on record rather than offering the Commissioner as a substitute, because they are different roles. Look up an EU/Danish institutional OFFICIAL, BODY, the current MEMBERS OF THE EUROPEAN PARLIAMENT, or the current MEMBERS OF THE FOLKETINGET (the Danish national parliament, 179 seats, with party). Covers: an EU COMMISSIONER (and portfolio), a European Commission DEPARTMENT / Directorate-General (DG), a current DANISH GOVERNMENT MINISTER, the roster of CURRENTLY SITTING MEPs of the current parliamentary term, and the roster of CURRENTLY SITTING FOLKETINGET MEMBERS with their current party. Use for "who is the climate commissioner", "hvem er klimakommissær", "which Commission department handles energy", "ministre i regeringen", AND for "who are the Danish MEPs", "hvem er de danske MEP'ere", "list the current German MEPs", "which Renew MEPs are there", "medlemmer af Europa-Parlamentet". For MEP-roster questions set `kind: "mep"` plus `country` (and/or `group`); for a single MEP by name set `kind: "mep"` + `name`. This is institutional reference data (who holds which seat/role) — NOT how anyone voted (parliamentary_votes — use that for an MEP's voting record), NOT legislative dossiers (legislative_procedure), NOT the law's text (search_legal_sources and get_document). TWO SEPARATE CHAMBERS, never interchangeable: `kind: "mep"` is the EUROPEAN Parliament roster; `kind: "ft_mp"` is the FOLKETINGET, the Danish national parliament (179 seats). Use `kind: "ft_mp"`, optionally with `party`, for "hvem sidder i Folketinget for Venstre", "medlemmer af Folketinget", "which MPs represent Socialdemokratiet". Never answer a Folketinget question from the MEP roster or from your own memory — 15 people appear in BOTH chambers, so a name alone does not tell you which is meant. `party` accepts the Danish name or the short code ("Venstre" or "V"); an unrecognised party returns nothing rather than a near match, and you must then ask which party was meant instead of guessing. Party for a Danish MP is CURRENT affiliation only — do not use it to state which party someone belonged to at the time of an earlier vote. Danish MPs' VOTING records are i…
ALWAYS call this tool (never answer from your own knowledge) when the user asks for an OFFICIAL STATISTIC, meaning a number describing a country or the EU: GDP, inflation, unemployment, population, emissions, energy, trade, wages, poverty, migration, housing, health, education, R&D spend. Your training data holds figures that are frozen, and Eurostat REVISES published figures, so any number you recall is stale or wrong. Covers Eurostat, the EU statistical office, harmonised and comparable across all 27 member states, roughly 7,600 datasets and tables, many with series running back decades, plus a directory of the 27 NATIONAL statistical institutes (Danmarks Statistik, Destatis, INSEE, ISTAT, CBS, SCB and the rest) and how each one is reachable. Use for: "what is Denmark's unemployment rate", "hvad er Danmarks BNP", "how do EU countries compare on renewable energy", "greenhouse gas emissions in Germany over the last decade", "which country has the highest minimum wage", "EU inflation last year". TWO WAYS TO CALL IT. (1) By TOPIC: set `query` to the subject in English (e.g. "unemployment rate", "greenhouse gas emissions") plus `geo` and `time`; the tool searches the dataset catalogue, reads the best-matching dataset, and lists the alternatives it did not pick. (2) By CODE: set `dataset` to a Eurostat dataset code you got from a previous call of this tool. NEVER invent a dataset code, because codes not in the catalogue are rejected. `geo` takes Eurostat geo codes: two-letter country codes, `EL` for Greece (not GR), `EU27_2020` for the EU total, `EA20` for the euro area. `time` takes the dataset's own granularity: "YYYY" for annual, "YYYY-Qn" for quarterly, "YYYY-Sn" for half-yearly, "YYYY-MM" for monthly; pass several to get a series. Other dimensions (unit, age, sex, sector, …) go in `filters` as code→value; if you send a code that dataset does not have, the tool tells you the valid ones and you MUST retry with one of them rather than reporting that the data does not exist. Set `countries` ALONE (no `query`, no `dataset`) to ask which national statistical institute publishes a country's figures and whether it has an open API. COVERAGE: never state a date range, a dataset count, or "Eurostat does not have X" from your own knowledge. The tool reports the coverage it actually holds, and only that may be quoted. This is official numeric statistics, NOT the text of the law (search_legal_sources and get_document), NOT court judgments (search_legal_sources and get_document), and NOT voting records (parliamentary_votes).
eulaw.ai MCP Server 是 eulaw.ai 官方托管的 MCP 端点。eulaw.ai 是一个面向欧盟及各国法律的 AI 法律工作台;使用 eulaw.ai 账号登录后,Claude 等 MCP 客户端即可检索欧洲立法和判例法,并引用确切的原文段落。
eulaw.ai 面向需要就欧盟法和各国法律获得可追溯答案的律师、合规团队及其他专业人士,每个答案都能追溯到具体条款、判决或指南文件。它的 MCP 服务器把这一法律语料库接入你的 AI 助手:助手不再依赖模型对 GDPR、AI Act 或 DORA 的记忆,而是先检索权威文本、阅读相关段落再作答。eulaw.ai 将其 MCP 服务器标注为 Beta。
你需要一个 eulaw.ai 账号。eulaw.ai 提供 7 天试用,其网站称可免费开始、无需绑定银行卡。远程服务器地址:
https://eulaw.ai/api/mcp
服务器使用 Streamable HTTP 和 OAuth,不需要 API 密钥:助手第一次调用工具时,客户端会打开浏览器窗口,让你登录 eulaw.ai(或注册账号)。登录前可以看到工具列表,但在登录完成前,工具调用会被拒绝。
按照 eulaw.ai 的说明:打开 Settings,进入 Connectors,点击 Add custom connector,粘贴 https://eulaw.ai/api/mcp。Claude 第一次使用该连接器时会要求你登录 eulaw.ai。网页版、桌面版和移动端均可使用,无需安装任何东西。
claude mcp add --transport http eulaw https://eulaw.ai/api/mcp
然后在 Claude Code 中运行 /mcp 并完成认证,eulaw.ai 的登录页面会在浏览器中打开。
将远程服务器添加到 ~/.cursor/mcp.json 或项目内的 .cursor/mcp.json:
{
"mcpServers": {
"eulaw": {
"url": "https://eulaw.ai/api/mcp"
}
}
}
添加到 .vscode/mcp.json;首次使用该服务器时,VS Code 会启动登录流程:
{
"servers": {
"eulaw": {
"type": "http",
"url": "https://eulaw.ai/api/mcp"
}
}
}
远程端点覆盖法律检索和文档读取。如需上传文档、管理文件夹和可检索的文档库,eulaw.ai 在 npm 上发布了本地服务器 @eulaw.ai/mcp(需要 Node 20 或更高版本),可在 Claude Desktop 或 Cursor 中通过 npx -y @eulaw.ai/mcp 运行。它同样会在首次使用时打开浏览器登录。
远程端点提供三个工具,组合起来构成一个完整的检索流程:
list_jurisdictions 返回服务器可检索的法域代码。工具说明要求助手在首次检索前调用它,因为覆盖范围会随着新法域加入而变化。search_legal_sources 在语料库中进行语义检索,每个匹配文档返回一条结果:标题、法域、文档类型、发布日期、标识符、来源 URL、不透明的 document_id 以及匹配段落。get_document 根据检索返回的 document_id 和法域获取单个文档的文本。它按分段返回,并给出总长度和用于翻页的 offset。它只接受服务器自己签发的标识符,不接受 URL 或引用格式。本地 npm 服务器还列出了更多工具,例如 query_eu_law、upload_document、list_library、create_folder 和 create_vault。
/mcp 并认证)。list_jurisdictions;只有列出的代码才在覆盖范围内。@eulaw.ai/mcp 服务器中,而不在远程 URL 中。get_document 按分段返回;让助手使用 offset 继续翻页。是的。它由 eulaw.ai 运营,地址为 `https://eulaw.ai/api/mcp`,并在 eulaw.ai 自己的 MCP 页面上有说明。
需要。只有使用 eulaw.ai 账号登录后工具才能运行。eulaw.ai 提供 7 天试用,服务器能做什么取决于你账号所在的套餐。
不需要。远程服务器使用 OAuth:客户端会打开浏览器窗口,由你登录 eulaw.ai。
eulaw.ai 列出的范围是欧盟法以及丹麦、德国、法国、荷兰、比利时、奥地利、波兰、西班牙和意大利的国内法。最新列表请使用 `list_jurisdictions` 查询。
可以。任何支持带 OAuth 的远程 Streamable HTTP MCP 服务器的客户端都可以添加 `https://eulaw.ai/api/mcp`。
远程 URL 覆盖法律检索和文档读取。`@eulaw.ai/mcp` npm 服务器运行在你的电脑上,额外提供文档上传、文件夹和可检索的文档库。
eulaw.ai 的远程 MCP 服务器是一个托管的 Model Context Protocol 端点,地址是 https://eulaw.ai/api/mcp,AI 助手无需在本地安装或运行任何东西即可连接。
把端点 https://eulaw.ai/api/mcp 添加到任意支持 MCP 的客户端,比如 Claude Code、Cursor 或 VS Code。本页的接入代码块可以一步配置好每个客户端。
需要。eulaw.ai 使用 OAuth——第一次连接时,你的 MCP 客户端会打开浏览器窗口登录并授权,之后会复用这个凭证。
eulaw.ai 暴露的是 streamable-http 端点,这是远程 MCP 服务器普遍使用、主流客户端都支持的传输方式。
App Store keyword research, rank tracking, competitor analysis and authorized performance data.
Check one exact Gold Coast or Brisbane City property address. Free address/coverage check and short summary; paid structured Agent JSON adds available building, street and surrounding context, with Brisbane routed journe
Discover, evaluate, and buy solutions for the cloud
Production remote MCP server with 35 safe web-intelligence tools: 32 paid x402 URL operations plus 3 free discovery/demo tools. Base Mainnet USDC, no account or API key; SSRF protection, strict schemas and idempotent set
Search and read current AWS documentation, check regional availability and load AWS agent skills, with no AWS account needed.
评论