Korean Law MCP

Search and read Korean statutes, court rulings, ordinances and treaties from the government law database

By 딴짓하는 류주임 (individual) TypeScript Remote (hosted) · Streamable HTTPLocal · stdio Web searchKnowledge and memory

84 popularity score ★ 2.8k ↓ 11k/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

Claude CodeInstalled as the korean-law plugin from the chrisryugj/korean-law-mcp marketplace
claude mcp add --transport http korean-law https://mcp.gomdori.app/law
Claude (desktop and web)claude.ai Settings > Connectors > Add custom connector, as the URL
https://mcp.gomdori.app/law?oc=<LAW_OC>
claude desktopclaude_desktop_config.json
{
  "mcpServers": {
    "korean-law": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.gomdori.app/law?oc=<LAW_OC>"
      ]
    }
  }
}
Cursor.cursor/mcp.json in the project folder
{
  "mcpServers": {
    "korean-law": {
      "url": "https://mcp.gomdori.app/law?oc=<LAW_OC>"
    }
  }
}
windsurf.windsurf/mcp.json in the project folder
{
  "mcpServers": {
    "korean-law": {
      "url": "https://mcp.gomdori.app/law?oc=<LAW_OC>"
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "korean-law": {
      "type": "http",
      "url": "https://mcp.gomdori.app/law"
    }
  }
}
Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs LAW_OC. Replace each <NAME> with your value.

FirstTerminal
npm install --ignore-scripts --omit=optional -g korean-law-mcp
Claude CodeTerminal
claude mcp add korean-law -e LAW_OC=<LAW_OC> -- korean-law-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "korean-law": {
      "command": "korean-law-mcp",
      "args": [],
      "env": {
        "LAW_OC": "<LAW_OC>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "korean-law": {
      "command": "korean-law-mcp",
      "args": [],
      "env": {
        "LAW_OC": "<LAW_OC>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "korean-law": {
      "type": "stdio",
      "command": "korean-law-mcp",
      "args": [],
      "env": {
        "LAW_OC": "<LAW_OC>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.korean-law]
command = "korean-law-mcp"
args = []

[mcp_servers.korean-law.env]
LAW_OC = "<LAW_OC>"
Gemini CLITerminal
gemini mcp add --scope user -e LAW_OC=<LAW_OC> korean-law korean-law-mcp

Settings 9

LAW_OC secret Required: Your 법제처 Open API key (OC). KOREAN_LAW_API_KEY is read if it is unset. On the hosted endpoint pass the key as ?oc= or an apikey header instead.
LAW_API_PROTOCOL Optional: Set to http to call the 법제처 API over plain HTTP on networks where certificate checks fail. Default https.
Set together: http mode
MCP_HTTP_HOST Optional: Address the HTTP server (--mode http) binds to. Default 127.0.0.1.
MCP_AUTH_TOKEN secret Optional: Token the HTTP server requires when MCP_HTTP_HOST is not a loopback address. Without it, start fails unless MCP_ALLOW_UNAUTHENTICATED_REMOTE=1.
PORT Optional: Port for the HTTP server when --port is not given. Default 8000.
ALLOWED_ORIGINS Optional: Comma-separated origins allowed for browser clients. If unset, CORS_ORIGIN is used, and with neither all browser requests are blocked.
ALLOW_QUERY_API_KEY Optional: Set to 0 to refuse keys passed as ?oc= in the URL. Header keys still work.
RATE_LIMIT_RPM Optional: Requests per minute per IP. 0 turns the per-IP limit off. Default 60.
ACCESS_LOG Optional: Set to 1 to log request paths, without query strings.

What it does

Korean Law MCP connects an assistant to the Open API of the Ministry of Government Legislation (법제처), which publishes Korea's national law information. You can pull statutes, administrative rules, local ordinances and treaties, plus the annexed tables and forms that go with them. Rulings and interpretations come from 23 domains. Next to court and tribunal decisions these now include local-tax interpretations from the Ministry of the Interior and Safety (mois) and first-instance interpretations from 39 central ministries (ministry). National Tax Service interpretations come from taxlaw.nts.go.kr.

The client sees ten tools. The plain ones look up a law by name or abbreviation, return article text, and fetch annexes as they stood on a chosen date, converting HWP, PDF or XLSX files to text. legal_research runs one of eight multi-step research tasks, such as amendment tracking or dispute preparation. legal_analysis checks that cited articles and case numbers exist, tells you whether a precedent still stands, and finds the version of a law in force at a past date.

Its newest mode, amendment_table, drafts the old-and-new comparison table for a partial amendment bill. You give the amended articles and it fetches the current text and marks what changed. Run locally, it can save that table as a Hangul (.hwpx) file at the path you pass as outputPath.

The ten are only what clients list. src/tool-registry.ts defines 99 entries, and the rest are found with discover_tools and called through execute_tool.

The author runs a hosted endpoint at mcp.gomdori.app/law, which the Claude Code plugin also uses. Or install the npm package and run it yourself. Search results are cached for an hour and article text for a day.

What it needs

To run it yourselfNode.js 20.19+
Runs onmacOS, Windows, Linux
법제처 Open API (open.law.go.kr)FreeAn OC key is needed to run it yourself. The hosted endpoint works without one under a shared key's limits

Get the OC key by signing up at open.law.go.kr and applying for Open API use. Running it locally needs Node.js 20.19 or newer (22.12 is recommended). Claude Desktop reaches the hosted endpoint through mcp-remote, which needs Node.js 18 or newer. Adding it as a custom connector on claude.ai needs a paid Claude plan, since the free plan allows one connector. If the plugin install fails with Permission denied (publickey), the README's fix is to make git use HTTPS for github.com.

Limits

  • Read only It cannot file anything or change official records. Its only write is the optional .hwpx file amendment_table saves on local runs
  • Limit Its pages say results may be processed or summarised, so check the official text at the national law information center before relying on it legally
  • Rate limit Without your own key, the hosted endpoint uses a server key shared by all keyless users, under per-minute limits
  • Size cap Batch article reads are capped at 20 laws and 100 articles in total
  • Size cap Tool arguments are refused past 2,000 characters, 50,000 for text and currentText, and 100 for article or annex numbers (src/tool-registry.ts)
  • Limit Saving an amendment table as .hwpx works only when run locally over stdio or the CLI. The hosted endpoint returns the table as text
  • Limit A key may only be used by the person it was issued to
  • Not covered It covers Korean law only, and most content and tool output is in Korean

It only reads; it cannot file anything or change official records. Its pages say results may be processed or summarised and that the official text at the national law information center should be checked before relying on it legally. Batch article reads are capped at 20 laws and 100 articles. Without your own key, the hosted endpoint uses a shared server key with per-minute and daily rate limits. Each key may only be used by the person it was issued to. Most content and tool output is in Korean.

Who it suits

It suits lawyers, civil servants, compliance staff and developers who work with Korean law and want an assistant that quotes real articles and rulings and checks the ones it cites. The hosted endpoint and the Claude Code plugin need nothing installed and work without a key, but every query, and your key if you add one, passes through the author's server. If you would rather your calls go straight from your machine to the government API, install the npm package and set your own key. This is a community project and is not published by the Ministry.

Tools 10 of 99

9 only read, 1 changes things.

legal_research
Runs one of eight multi-step research tasks, such as full research, amendment tracking or dispute preparation
legal_analysis changes
Verifies citations, checks precedents, finds the law in force at a date, maps an article's effects or drafts an amendment table, saved as .hwpx when run locally
search_law
Finds a statute, ordinance or administrative rule by name or abbreviation and returns its identifiers
get_law_text
Fetches the article text of a statute, including its supplementary provisions
get_annexes
Fetches annexed tables and forms, optionally the version in force on a date
ordinance_radar
Checks local ordinances against recent amendments to the higher laws they rest on
search_decisions
Searches rulings and interpretations across 23 domains, from court cases to ministry interpretations
get_decision_text
Fetches the full text of a ruling or interpretation from those domains, shortened unless full is set
discover_tools
Searches the hidden specialist tools for terms, history, comparisons and more
execute_tool
Runs one of the hidden tools found with discover_tools

Similar servers