Egov Law Mcp

io.github.SHAYOUWORLD由 GitHub 账号 SHAYOUWORLD 发布v0.1.1更新于 Oct 24, 2026

Search Japanese laws via e-Gov Law Search and fetch article text with source attribution.

概览

AI 生成的概览

本地 MCP 服务器,让助手通过 e-Gov 法令 API 检索日本法律并获取条文原文,附带来源引用。

可以做什么
  • 按标题、简称、法令编号或法令 ID 检索现行日本法律,可按类别过滤。
  • 按法令 ID、法令编号或版本 ID 获取某条或某款条文。
  • 获取法律的基本元数据与纯文本预览。
  • 根据基础法律名称查找可能相关的施行令与施行规则。
  • 可将结果固定到某一日期或某一法令版本,并在每个结果中返回法令名称、ID、版本、获取时间与 e-Gov 链接。
适用场景
适合助手需要回答日本法规问题并引用官方原文的场景,或需要查看某一特定日期生效版本的法律时。它是检索与起草参考工具,不能替代法律意见。
运行要求
需要 Node.js 20 或更高版本,以 stdio 方式在本地运行(例如通过 npx)。需要能访问 laws.e-gov.go.jp。无需账号、API 密钥或环境变量;可选 EGOV_LAW_MCP_INTERVAL_MS 与 EGOV_LAW_MCP_TIMEOUT_MS 用于调整请求间隔与超时。
安装前请注意
结果仅为法规参考,不构成法律意见,重要结论应到 e-Gov 官方页面核实。请求会发送至 e-Gov 法令 API,查询内容会离开本机。请求被限速为至少每秒一次,并在五分钟内缓存;同时运行多个副本会增加总流量。再发布输出时需注明 e-Gov 出处,并说明文本由法令 XML 转为纯文本。

安装

在 SourceWeft 中

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

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@codeagentjp/egov-law-mcp

Local stdio MCP server for searching Japanese laws and retrieving article text from e-Gov Law Search through the e-Gov Law API Version 2.

This server does not call an LLM. It only returns source-backed law data and e-Gov URLs so your MCP client (Claude Desktop, Claude Code, Cursor, or any other agent) can cite the original source.

Design choices were informed by reading Digital Agency's open-sourced Lawsy-Custom-BQ (released 2026-04-24 as part of the Gennai government AI OSS release). See the design notes at codeagent.jp.

Why another e-Gov MCP

There is an existing egov-law-mcp on npm by another author. This package differs in four ways:

  1. find_related_laws — looks up enforcement orders (施行令) and regulations (施行規則) for a given base law name or abbreviation. Lawsy-Custom-BQ has the same step server-side; useful because definitions and delegated rules often live outside the parent act.
  2. Source attribution baked into every tool result — every response includes the law name, law ID, article number, the law revision ID (版), the retrieval time, and the canonical e-Gov URL, so the calling LLM cannot drop the citation.
  3. Point-in-time retrieval — every tool accepts asof (YYYY-MM-DD), so you can pin the same version of a law that a benchmark or an earlier answer used.
  4. Single-file .mjs, no build step — bin/egov-law-mcp.mjs runs directly under Node 20+. Easier to audit, smaller install.

Status

MVP. The API surface is intentionally small:

  • search_laws — search current Japanese laws by title, abbreviation, law number, or law ID.
  • get_article — retrieve a specific article (or paragraph) from a law by law ID, law number, or law revision ID.
  • get_law — retrieve basic metadata and a text preview for a law.
  • find_related_laws — find likely related enforcement orders and regulations.

All four accept an optional asof. Since v0.2.0 every request goes to Law API v2 (/api/2/laws and /api/2/law_data/{id}); nothing calls the v1 endpoints any more. See Compatibility with v0.1.x.

Requirements

  • Node.js 20 or later
  • Network access to https://laws.e-gov.go.jp

Install

From npm:

json
{  "mcpServers": {    "egov-law": {      "command": "npx",      "args": ["-y", "@codeagentjp/egov-law-mcp"]    }  }}

From source for development:

bash
git clone https://github.com/SHAYOUWORLD/egov-law-mcp.gitcd egov-law-mcpnode bin/egov-law-mcp.mjs
json
{  "mcpServers": {    "egov-law": {      "command": "node",      "args": ["/absolute/path/to/egov-law-mcp/bin/egov-law-mcp.mjs"]    }  }}

Tools

search_laws

Searches laws that are not repealed (repeal_status=None) with one laws request. Keywords that look like a law ID (322AC0000000049) go to law_id, keywords that look like a law number (平成十五年法律第五十七号, …第五十七号) go to law_num, and everything else goes to law_title, which e-Gov matches against both the title and its abbreviations (個人情報保護法 finds 個人情報の保護に関する法律). With several space-separated words, the longest goes to e-Gov and the rest are checked locally. Up to 500 matches are ranked locally; truncated: true means e-Gov had more and the keyword should be narrowed.

json
{  "keyword": "個人情報保護法",  "category": "all",  "limit": 10,  "asof": "2026-10-29"}

category maps to law_type: acts = Constitution, Act; orders = CabinetOrder, ImperialOrder; rules = MinisterialOrdinance, Rule; all = no filter.

get_article

Retrieves an article from the main provision (本則) with law_data?elm=MainProvision-Article_N[-Paragraph_M]. Provide either lawId or lawNum. article accepts 32, 32_2, 32の2, 第32条の2, or 第三十二条の二; paragraph accepts 2 or 第二項.

json
{  "lawId": "322AC0000000049",  "article": "32",  "paragraph": "2",  "asof": "2026-10-29"}

To pin an exact version, pass a law revision ID as lawId (for example 322AC0000000049_20260717_508AC0000000060); e-Gov then ignores asof. e-Gov accepts asof from 2017-04-01 onward.

get_law

Retrieves basic metadata and a plain text preview of a law.

json
{  "lawId": "503AC0000000035",  "previewChars": 3000}

find_related_laws

Searches for laws whose names or abbreviations look related to a base law name, including enforcement orders and regulations. It sends one laws?law_title= request with the name minus a trailing 法律 / 法 (and minus 施行令 / 施行規則, so a regulation also finds its parent act).

json
{  "lawName": "個人情報の保護に関する法律",  "limit": 10}

What the results contain

get_article and get_law return lawId, lawNum, lawTitle, lawRevisionId, and asof, plus a source object:

json
{  "name": "e-Gov法令検索",  "api": "法令API Version 2",  "url": "https://laws.e-gov.go.jp/law/322AC0000000049",  "apiUrl": "https://laws.e-gov.go.jp/api/2/law_data/322AC0000000049?elm=MainProvision-Article_32-Paragraph_2&asof=2026-10-29&response_format=json&law_full_text_format=xml",  "lawId": "322AC0000000049",  "lawRevisionId": "322AC0000000049_20260717_508AC0000000060",  "amendmentEnforcementDate": "2026-07-17",  "asof": "2026-10-29",  "attribution": "出典: e-Gov法令検索(https://laws.e-gov.go.jp/)",  "processing": "法令API Version 2 の law_data で取得した法令XMLからタグを除き、平文にした。",  "retrievedAt": "2026-10-29T05:57:09.260Z"}

url opens the current version on e-Gov Law Search. apiUrl reproduces the exact request, and lawRevisionId identifies the version that was returned. search_laws and find_related_laws return source with apiUrl, asof, and retrievedAt at the top level, and each result carries lawRevisionId, abbreviations, and the e-Gov URL.

Compatibility with v0.1.x

v0.1.x called Law API v1 (/api/1/lawlists, /api/1/lawdata, /api/1/articles), which has no point-in-time parameter. v0.2.0 moves every tool to v2. The decision record is docs/adr/0001-law-api-v2-migration.md.

Unchanged:

  • Tool names, required inputs (keyword, article, lawName, and lawId or lawNum), and every existing input name.
  • Every existing output field name (lawId, lawName, lawNo, promulgationDate, score, relationScore, url, text, preview, truncated, source.url, source.apiUrl, source.attribution, source.retrievedAt, …).

Added:

  • asof input on all four tools.
  • Output fields such as lawTitle, lawRevisionId, abbreviations, lawType, articleTitle, articleCaption, elm, matchedCount, and source.lawRevisionId / source.asof / source.processing.

Changed:

  • promulgationDate is now YYYY-MM-DD (v2 format) instead of yyyyMMdd.
  • search_laws no longer downloads the whole law list once per process. Each search is one laws request filtered by e-Gov, so abbreviations now match and results can differ from v0.1.x. cacheFetchedAt is kept and now holds the time that request's data was retrieved.
  • find_related_laws only finds laws that share the base name's stem; v0.1.x could also list unrelated laws whose short names happened to appear inside the base name.
  • get_article called with lawNum now also returns lawId (v1 left it empty). paragraph is checked as a number, and article numbers are converted for elm.
  • Errors from e-Gov include its code, for example e-Gov API returned HTTP 400 (400021: 要素(elm)に合致する要素が法令本文に存在しません。).
  • Requests to e-Gov are paced (see below).

Request pacing and cache

  • At most one request goes to laws.e-gov.go.jp at a time, even when a client calls several tools at once or sends a JSON-RPC batch.
  • Each request starts at least 1 second after the previous one finished. Set EGOV_LAW_MCP_INTERVAL_MS to wait longer; values below 1000 are ignored.
  • Identical requests within 5 minutes are answered from an in-process cache (or share the request already in flight) and do not reach e-Gov. Cached answers keep their original retrievedAt.
  • EGOV_LAW_MCP_TIMEOUT_MS (default 15000) sets the per-request timeout. It starts when the request is sent, not while it waits for its turn.

The pacing applies within one server process; if you run several copies, keep their combined traffic modest.

Data Source and Attribution

This package uses the e-Gov Law API Version 2:

The law body is requested as law XML (law_full_text_format=xml, Base64 inside the JSON response) because the OpenAPI definition marks the JSON form of the body as a trial format that may change.

Tool results include source attribution. When you publish or redistribute output based on this package, include an appropriate e-Gov source attribution, and say that the text was converted from law XML to plain text (source.processing).

Suggested attribution:

出典: e-Gov法令検索(https://laws.e-gov.go.jp/)

Safety Notes

  • This package is a law reference tool, not legal advice. Verify important legal conclusions against the official e-Gov page and, where necessary, consult a qualified professional.
  • It does not execute shell commands.
  • It writes JSON-RPC messages only to stdout and logs only to stderr.
  • It fetches only https://laws.e-gov.go.jp/api/2/laws and https://laws.e-gov.go.jp/api/2/law_data/{id}, and refuses redirects.

Development checks

bash
npm test

Tests launch the stdio server with fetch replaced by local Law API v2 fixtures. They cover each tool's request parameters and output fields, asof and law revision IDs, input validation, e-Gov error codes, request pacing, and the cache. Fixture sources are in test/fixtures/README.md.

Related

License

MIT © codeagent.jp

来源:README.md,提交 ab38c36

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 24, 2026

评分

已满足适用检查项的 50%

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

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分