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 分

    請在儲存庫或註冊中心條目中宣告授權條款。