Merit — Ukrainian Law & Registers

legal.merit由 merit.legal 发布官方发布者v1.0.4更新于 Nov 7, 2026

50+ Ukrainian legal sources, 120+ tools: laws on any date, case law, courts, companies, sanctions.

已验证Streamable HTTP可网页运行金融知识与记忆商业与电商

概览

AI 生成的概览

远程只读 MCP 服务器,让助手检索乌克兰法律、判例、法院与公共登记册以及制裁名单。

可以做什么
  • 检索并阅读乌克兰立法:法规、按条文文字查找条款、目录、条款全文、版本及某日的生效状态
  • 检索法院判决、某条文的司法实践、案件查询、开庭信息、最高法院法律立场与综述,以及涉乌克兰的欧洲人权法院案件
  • 查询公司和个人企业主、债务人、执行程序、破产公告及腐败登记册
  • 按姓名或别名检索欧盟、美国 OFAC、英国和联合国制裁名单
  • 获取法律指标、乌克兰国家银行汇率、消费价格指数、诉讼费及节假日判断
  • 通过目录工具查找、描述并调用未直接列出的其他工具
适用场景
适合涉及乌克兰法律或乌克兰交易对手的法律、合规、尽职调查与研究场景,需要答案附来源和日期而非依赖模型记忆时。也适用于制裁筛查,以及“某条文在某日适用哪一版本”“诉讼费为多少”这类与日期相关的问题。
运行要求
远程 Streamable HTTP 端点,无需本地安装包。需要 Merit 账户,首次调用时通过 OAuth 2.1 登录。需能访问该托管服务。试用一周后需付费方案。
安装前请注意
只读:没有工具会修改或发送任何内容,服务方称其看不到聊天内容,只收到发往数据源的请求。空结果不能证明某人、公司或程序不存在;制裁名单按发布机构分开,某一名单无结果不代表其他名单也没有。试用期后按成功工具调用计费,费用取决于助手发起的调用次数。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Merit — Ukrainian Law & Registers,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/legal.merit%2Flaw/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "merit-ukrainian-law-registers": {
      "type": "http",
      "url": "https://law.merit.legal/mcp"
    }
  }
}

README

Merit — Ukrainian Law & Registers (MCP server)

A remote Model Context Protocol server that gives an AI assistant read-only access to Ukrainian law and public registers: legislation in its version on any date, Supreme Court practice, court hearings, the company register, professional registers, enforcement proceedings, debtors and five sanctions lists.

  • Endpoint: https://law.merit.legal/mcp (Streamable HTTP)
  • Registry name: legal.merit/law
  • Authentication: OAuth 2.1 — the client opens the Merit sign-in page, you sign in with your email
  • Website, pricing and help: https://merit.legal/en/mcp

This repository holds documentation only. The server is a hosted service; its source code is not public.

What it does

The assistant calls the server instead of answering from memory. It searches the official sources, reads the right article or record and answers with the source and its date.

  • Read only. No tool changes or sends anything.
  • It does not see your chat. The assistant sends only the request to a source (a case number, an article, a company code).
  • Stateless. Each request stands alone.

Sources

50+ sources and 120+ tools. Each source is a set of tools named source__action (for example ua_law__get_unit_in_force). The assistant sees the main tools at once and finds the others through the server's catalogue tools (catalog__search, catalog__describe, catalog__call).

GroupSources
Legislationua_law (Verkhovna Rada acts, editions on any date, comparison of editions, draft laws), ua_npa_registry, ua_ccu, ua_dstu, ua_war_territories
Case lawua_edrsr (Unified State Register of Court Decisions), ua_lpd (Supreme Court legal positions), ua_vs_digest, ua_echr
Courtsua_court_directory, ua_court_hearings, ua_court_transfer
Companies and public dataua_edr_companies (companies and sole proprietors), ua_nazk_declarations, ua_corruption_registry, ua_licenses, ua_media_registry, prozorro, ua_construction, ua_ip
Taxua_tax_registers, ua_zir
Foreign companiesgleif, uk_companies_house, icij_offshore_leaks
Person checksua_wanted_persons, ua_lustration, ua_lost_documents
Professional registersua_advocates, ua_notaries, ua_experts, ua_expert_methodics, ua_trustees, ua_auditors, ua_appraisers
Debts, enforcement, bankruptcyua_enforcement_proceedings, ua_debtors, ua_bankruptcy
Sanctionsua_sanctions, eu_sanctions, ofac_sanctions, uk_sanctions, un_sanctions
Regulatorsua_amcu_decisions, ua_amcu_offenders, ua_nbu_bank_directory, ua_nbu_financial_institutions, ua_nbu_currency_exchange
Calculations and calendarua_nbu_rate, ua_cpi_inflation, ua_legal_indicators (court fee, subsistence minimum, NBU rate), ua_holidays, ua_gp_crime_stats

Honest answers

Every source follows the same rules:

  • as_of is the publication date of the source itself, not the date of our sync. An outdated snapshot carries stale.
  • available: false with a reason means the source could not answer. It is not an empty result.
  • An empty result never means that the person, company or proceeding does not exist.
  • A shortened field always carries a flag or a character count.
  • Sanctions are split by authority. A "no" from one list says nothing about the others.

Configuration

You need a Merit account: https://merit.legal/en/mcp. On the first call the client opens the sign-in page.

VS Code (GitHub Copilot)

Add to .vscode/mcp.json or to your user MCP configuration:

json
{  "servers": {    "merit": {      "type": "http",      "url": "https://law.merit.legal/mcp"    }  }}

Cursor and other clients with mcpServers

json
{  "mcpServers": {    "merit": {      "url": "https://law.merit.legal/mcp"    }  }}

Claude, ChatGPT, Gemini

  • Claude (claude.ai, Desktop, mobile): Customize → Connectors → find Merit, or add a custom connector with https://law.merit.legal/mcp.
  • ChatGPT: find Merit under Plugins, or add a custom MCP server with the same address.
  • Gemini: add a custom app with the same address in the connected apps settings.

Usage

Ask a legal question in plain language, in Ukrainian or English. The assistant picks the tools.

AskTools the assistant uses
Which version of Art. 625 of the Civil Code was in force on 15 March 2022, and what has changed since?ua_law__get_unit_in_force, ua_law__compare_unit_editions
Find Supreme Court positions on 3% per annum and inflation losses under martial law.ua_lpd__search, ua_vs_digest__search, ua_edrsr__search
Check a counterparty by its EDRPOU code: status, director, enforcement proceedings, sanctions.ua_edr_companies__lookup, ua_enforcement_proceedings__search, ua_debtors__search, ua_sanctions__search, eu_sanctions__search
Calculate inflation losses on a debt of 120,000 UAH from February 2024 to September 2026.ua_cpi_inflation__lookup, ua_law__get_unit_in_force
When is the next hearing in my case, and has its jurisdiction changed?ua_court_hearings__search, ua_court_transfer__search, ua_court_directory__lookup
Is the certificate of the other side's advocate valid?ua_advocates__search, ua_advocates__get_advocate

The server gives the assistant sources with links and dates. The conclusion and the responsibility stay with the lawyer.

Plans

A trial week costs 1 UAH. Paid plans start at 790 UAH per 4 weeks. A call is one successful tool call. Details: https://merit.legal/en/mcp#pricing.

Support

来源:README.md,提交 5442d30

工具

43

ua_law__search_units

Search Legislation Provisions by Text

Find provisions by their text: which articles, points or clauses say X. Every word of `text` must appear (quote it for an exact phrase). Searches the text as published on `on_date` (default today); `nreg` limits it to acts. Each hit is the smallest unit holding it, with that day's `urn`. ⟦ ⟧ in `excerpt` mark matches, not the law's text. `amending_act` hits restate other acts. `search` finds acts by title.

输入参数nregtext必填limitoffseton_dateper_actamending_acts

ua_law__get_document

Get Legal Act Card

One act's card, by registration number. No text: use `get_document_toc` then `get_unit_fulltext`. `urn_current_edition` is null unless an edition is in force today -- a repealed act has none; `urn_latest_edition` is the newest text in effect today whatever the status; `urn_next_edition`, text scheduled to take effect later. Editions '30000101' and up await a date not yet fixed (e.g. end of martial law) and are none of these.

输入参数nreg必填offsetrelation

ua_law__get_unit

Get Legal Provision Metadata

Metadata for one structural unit, addressed by its URN. `urn` is 'urn:ua:law:{nreg}:{path}@{YYYYMMDD}'. Drop '@{YYYYMMDD}' for today's edition; drop the path too for the whole document. Take one from a filtered `get_document_toc` rather than building it. A URN resolving to no unit answers 'not_found' with the nearest real units either side and `same_segment` -- real paths ending in the segment asked for, the hint when the right article was guessed under a wrong ancestor.

输入参数urn必填

ua_law__get_unit_in_force

Check Provision In Force on Date

Whether one unit was legally in force on a given date. `in_force` is true, false, or null when the corpus cannot tell. `outcome` 'deterministic' is from the portal's own events or edition history, anything else from AI review of the text. An undated URN asks about the provision; a dated one about that version of its text: false once replaced (`scope` 'version', `version_in_force_urn`). `decided_for_provision` false: the answer is the act's, possibly wrong for an article inserted or deleted mid-life. `source: 'no_force_event'`: none ever recorded -- read `document_status_name`.

输入参数urn必填date必填

ua_law__get_unit_fulltext

Get Legal Provision Text

Unit text, paged. Past `max_chars` it is `truncated`: pass `next_cursor` as `cursor` for more. Pages end after a paragraph, else after a space, else mid-word (a tiny `max_chars`). Only page 1 lists `parts`, sub-units with their own `urn`, unless `parts_offset` is passed. `text: null` with status 'edition_text_unavailable' (edition not stored) or 'extraction_failed' (unit not cut out) is a unit that DOES exist -- not a repeal. No unit at that address answers 'not_found'.

输入参数urn必填cursormax_charsparts_offset

ua_law__get_units_fulltext

Get Several Legal Provisions' Text

Several units' text in one call: a norm and what it relies on. `units` answers each URN in order as `get_unit_fulltext` would, sharing one `max_chars`: a unit that does not fit is `truncated` with a `next_cursor`, and units past the budget come back with no text. A URN matching nothing is its own 'not_found' entry.

输入参数urns必填max_chars

ua_law__get_unit_editions

List Provision Editions

The editions on which one unit's text changed, and what changed it. Each entry is a version: its dated `urn`, how many editions kept it, and `amended_by`, the acts behind the change ('unit_notes': cited by the unit's notes; 'edition_basis': the edition's basis). `removed`: the unit disappears; `moved_from`: its address changed (`text_changed` false if only that). A `baseline` opens the list: the first text, or with `from_date` the text in force that day. Edition '30000101' and up (`edition_date` null) takes effect on a date not yet fixed. `complete: false` means `limit` cut older entries.

输入参数urn必填limitto_datefrom_date

ua_law__get_document_toc

Get Legal Act Contents

One document's units in reading order -- and the article resolver: `kind='article'` with `number='626'` returns that article alone, `urn` included. Structure only. Each entry carries the `urn` `get_unit_fulltext` takes and a `heading`, or for a clause its opening paragraph as `lead_text` with `text_chars` for the provision's full length. Filter, do not page: the Civil Code is 5,431 units, 1,329 of them articles.

输入参数kindnreg必填limitnumberoffsetedition_date

ua_edrsr__get_document

Get Court Decision (EDRSR)

One decision: its text, its citations, its structural parts. Text is windowed, never dumped whole. `text_window` says what came back and how to get the rest. Citations cover that window only, with `*_outside_window` counting the rest; repeats of one case roll up into `occurrences`. Citations carry what was written and what it resolved to, so an unresolved one stays visible. Join on `resolved_cause_num`, not the written number.

输入参数doc_id必填offsetsectionmax_charsinclude_html

ua_edrsr__get_court_practice

Court Practice on a Statute Article

Court practice on one statute article: which cases cite it, by court and year, ranked highest authority first. Spellings of one code answer alike ('ККУ', 'КК України') and mean the code in force; `repealed_excluded` lists repealed namesakes' nregs. `index_coverage.status` says what `total_cases` means (a real zero, or unresolved citations); under `index_unavailable` it is null, not a count.

输入参数limitfacet_sizeabbreviation必填article_number必填clause_component

ua_edrsr__lookup_case

Look Up Court Case (EDRSR)

One case by document id or case number, with the cases related to it. Give exactly one of `doc_id` or `cause_num`. Highest instance first, judgments before rulings, newest first. `related_cases` is citation-graph overlap, never semantic similarity or a judgement on merits, and may repeat a decision from `matches`. `score` weights each shared anchor and case by rarity, so boilerplate ranks near nothing. `departures`/`departed_by`: Supreme Court departures read from the texts.

输入参数doc_idoffsetcause_nummax_charsmatch_limitrelated_limit

ua_bankruptcy__get_case

Get Bankruptcy Case

One bankruptcy case's announcement history and current procedural stage, newest first. `current_stage` is the most recent announcement's type. The registry publishes no case-level status record, so the latest publication is the only statement of where the case stands, and `debtor_code`, `debtor_name` and `court_name` are read off that same announcement. Check `mirror.ready` to tell "no proceedings published" apart from an unsynced mirror.

输入参数limitcase_number必填

ua_debtors__lookup

Look Up Debtors by Proceeding

Every debtor listed under one enforcement-proceeding number. Always a list: one proceeding can be enforced against several debtors, so a number legitimately has several answers.

输入参数proceeding_number必填

ua_edr_companies__lookup

Look Up Company (EDR)

One legal entity by ЄДРПОУ code or `record`, with its people. `people`: founders, beneficial owners, signers and board members; the head is the latest appointment. `company` adds termination, bankruptcy, succession, branches and tax registration. `history`: changes per weekly release since tracking began; `on_date`: people then. Earlier history: paid НАІС extract only. A code shared by several subjects returns the live one, the rest in `other_subjects`. No address or КВЕД codes upstream.

输入参数edrpourecordhistoryon_date

ua_edr_companies__search_fop

Search Sole Traders (EDR)

ФОП (фізичні особи-підприємці) in the open ЄДР extract, by name (ПІБ), status and registration/termination date. Ordered by the filtered date, else `record`. No РНОКПП, address or КВЕД upstream: namesakes cannot be told apart, so a name hit alone does not identify a person.

输入参数qlimitoffsetstatusregistered_toterminated_toregistered_fromterminated_from

ua_edr_companies__lookup_fop

Look Up Sole Trader (EDR)

One ФОП by `record`: termination entry and reason, annulled termination, farm-household flag, property manager, tax/ЄСВ registration.

输入参数record必填history

ua_enforcement_proceedings__lookup

Look Up Enforcement Proceeding

Every row published under one enforcement-proceeding number. Always a list: a proceeding with several debtors is published as one row per debtor. `matches` is capped at 200.

输入参数vp_num必填

ua_echr__get_case

Get ECHR Document (HUDOC)

One HUDOC document by `itemid`, adding cited Strasbourg case law, domestic law at issue, judges.

输入参数itemid必填

ua_nbu_rate__rate

Get NBU Exchange Rate

Look up the National Bank of Ukraine's official exchange rate (UAH per unit) for a currency, as of a given date or today if none is given. Supports historical dates for ЦК §533 п.2-style currency-conversion calculations, not only the current rate. Returns `available: false` with a null rate, rather than an error, when NBU has nothing published for the requested currency or date.

输入参数datecurrency必填

ua_vs_digest__document

Get Supreme Court Practice Review

One Supreme Court publication's extracted text, `document_url`, cited case numbers and linked ЄДРСР `edrsr_ids` -- only this tool returns them. These are analytical reports, not judgments, averaging ~128,000 characters, so a window from the start is usually cover page and contents. Pass `text_query` to open it at the passage you want. `char_count` is the full length; `has_more` whether more follows. `extract_status` says why there is no text: `empty` is a scan with no OCR layer, one in nine; `failed` errored; `unsupported` is not a PDF.

输入参数text_limittext_querydocument_id必填text_offset

ua_holidays__check_date

Check Ukrainian Holiday

Whether one date is a public holiday or non-working day in Ukraine. `is_holiday` is true, false, or **null** -- null when `covered` is false, i.e. the mirror has not computed that year. Null is not "no": a deadline calculation must be able to tell "this is a working day" from "this source cannot say". `matches` carries the day with its name and verbatim statute line; a list, as a movable feast and a dated holiday can coincide. `is_holiday` means ст. 73 lists the day. During martial law ст. 73 does not apply: see `martial_law.suspends_holidays`, null past the decreed end.

输入参数date必填

ua_lpd__position

Get Supreme Court Legal Position

One legal position, with its text and published markup. Pass a search hit's `position_id`. `text` is plain, `text_html` as published. `norm_refs` dates each statute quoted to the `ua_law` edition then in force, with a `urn` `ua_law__get_unit_fulltext` takes, to compare with today's text. `departs_from`/`departed_in` link departures, read from position texts; `history` has the detail. `approved_at` is NOT a publication date: its absence says nothing about whether a position is current.

输入参数position_id必填

catalog__describe

Describe Catalog Tool

A catalog tool's full description and input schema, as tools/list would publish it.

输入参数tool必填

catalog__call

Call Catalog Tool

Run a catalog tool with its arguments. It is validated, limited, billed and answered exactly as a listed tool would be.

输入参数tool必填arguments

版本历史

3
  1. v1.0.4最新Nov 7, 2026
  2. v1.0.3Nov 3, 2026
  3. v1.0.2Nov 3, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。