tax-law-mcp

Fetches Japanese tax statutes, NTA interpretive circulars and tribunal rulings as source text

By kentaroajisaka (individual) TypeScript Local · stdio Web searchKnowledge and memory

54 popularity score ★ 98 ↓ 3.8k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add tax-law -- npx -y tax-law-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "tax-law": {
      "command": "npx",
      "args": [
        "-y",
        "tax-law-mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "tax-law": {
      "command": "npx",
      "args": [
        "-y",
        "tax-law-mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "tax-law": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "tax-law-mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.tax-law]
command = "npx"
args = ["-y", "tax-law-mcp"]
Gemini CLITerminal
gemini mcp add --scope user tax-law npx -- -y tax-law-mcp
Local (from source)

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

FirstTerminal
git clone https://github.com/kentaroajisaka/tax-law-mcp.git
cd tax-law-mcp
npm install
npm run build
Claude CodeTerminal
claude mcp add tax-law -- node '<ABSOLUTE_PATH_TO_CLONE>/dist/index.js'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "tax-law": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "tax-law": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "tax-law": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.tax-law]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"]
Gemini CLITerminal
gemini mcp add --scope user tax-law node -- '<ABSOLUTE_PATH_TO_CLONE>/dist/index.js'

What it does

tax-law-mcp gives an assistant the original wording of Japanese tax law so that answers about articles and circulars can be checked against the text instead of recalled from memory. It has seven tools in three groups. Statutes come from the Digital Agency's e-Gov law API v2 and are returned as Markdown, down to paragraph, item and sub-item, with supplementary provisions too; 26 major laws (Income Tax Act, Corporation Tax Act, Consumption Tax Act, the Special Taxation Measures Act and their orders, plus the Civil Code and Insurance Act) are preset and can be named by common abbreviations such as 所法 or 措法, and any other law can be found by keyword or given by law_id. Interpretive circulars (通達) are scraped from the National Tax Agency site, 17 of them, with a table-of-contents tool. Published rulings of the National Tax Tribunal (kfs.go.jp), about 1,950 cases across 97 volumes, can be listed by tax type, searched by keyword and read in full.

It is written in Japanese: tool descriptions, inputs and output are Japanese. The server also sends the client a long set of instructions telling the assistant to quote fetched text verbatim with its source URL, to run up to four rounds of checking, and to mark anything found through web search as secondary information. Those instructions state that court judgments (判例) are outside what it covers (src/server.ts). The same repository also deploys to Vercel as a remote MCP endpoint and a REST API with an OpenAPI file, but there is no public hosted instance: you deploy your own.

What it needs

RuntimeNode.js 20+

Node.js with npx (the package's dependencies include @modelcontextprotocol/sdk; the repository's dev setup targets Node 20). No account or API key: it calls public government sites (laws.e-gov.go.jp, nta.go.jp, kfs.go.jp), so outbound internet access is needed. The remote and REST mode needs your own Vercel deployment (vercel deploy).

Limits

Covers Japanese national tax law only, and only the 17 listed NTA circulars; court judgments are not included. search_saiketsu returns 10 results by default, at most 30 with limit, and matches only the case summaries and category names; its first full search fetches all 97 volume indexes and takes 30-60 seconds (narrow it with latest), after which results are cached in memory for an hour. Circulars and rulings are scraped from web pages, so a change to those sites can break them. The README warns that Claude's remote (custom connector) MCP connection has a known fault and recommends the local npx setup instead.

Who it suits

Suits tax accountants, lawyers and developers working in Japanese who want an assistant to cite the actual article, circular or tribunal ruling rather than paraphrase from memory. It is read-only, needs no key and runs locally, so it is easy to try. It is not for other countries' tax law, nor for case law from the courts, and English-only users will find its output hard to use. For Korean tax law we hold korea-tax-law-mcp, a separate server with a hosted endpoint.

Tools 7

get_law
Fetch a statute article from e-Gov by law name and article number, down to paragraph, item or sub-item, or supplementary provisions
search_law
Search Japanese laws by keyword
get_tsutatsu
Fetch one NTA interpretive circular entry by circular name and number
list_tsutatsu
Show the chapter and section contents of a circular
list_saiketsu
List the tax types and categories of published tribunal rulings
search_saiketsu
Keyword search over tribunal ruling summaries, optionally by tax type or latest volumes
get_saiketsu
Fetch the full text of a tribunal ruling by URL or volume and case number

Similar servers