EDINET MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "EDINET_API_KEY=${EDINET_API_KEY}" edinet-mcp-38dd -- docker run -e EDINET_API_KEY=your_key ghcr.io/ajtgjmdjp/edinet-mcp serve
Required:EDINET_API_KEY
README.md

EDINET XBRL parsing library and MCP server for Japanese financial data.

edinet-mcp

EDINET XBRL parsing library and MCP server for Japanese financial data.

📝 日本語チュートリアル: Claude に聞くだけで上場企業の決算がわかる (Zenn)

Part of the Japan Finance Data Stack: edinet-mcp (securities filings) | tdnet-disclosure-mcp (timely disclosures) | estat-mcp (government statistics) | boj-mcp (Bank of Japan) | stockprice-mcp (stock prices & FX)

What is this?

edinet-mcp provides programmatic access to Japan's EDINET financial disclosure system. It normalizes XBRL filings across accounting standards (J-GAAP / IFRS / US-GAAP) into canonical Japanese labels and exposes them as an MCP server for AI assistants.

  • Search 5,000+ listed Japanese companies
  • Retrieve annual/quarterly financial reports (有価証券報告書, 四半期報告書)
  • Automatic normalization: stmt["売上高"] works regardless of accounting standard
  • Financial metrics (ROE, ROA, profit margins) and year-over-year comparisons
  • Parse XBRL into Polars/pandas DataFrames (BS, PL, CF)
  • Multi-company screening: Compare financial metrics across up to 20 companies
  • Cross-period diff (xbrl-diff): Compare financial statements across periods with change amounts (増減額) and growth rates (増減率)
  • MCP server with 9 tools for Claude Desktop and other AI tools

Quick Start

Installation

pip install edinet-mcp
# or
uv add edinet-mcp
# or with Docker
docker run -e EDINET_API_KEY=your_key ghcr.io/ajtgjmdjp/edinet-mcp serve

Get an API Key

Register (free) at EDINET and set:

export EDINET_API_KEY=your_key_here

30-Second Example

import asyncio
from edinet_mcp import EdinetClient

async def main():
    async with EdinetClient() as client:
        # Search for Toyota
        companies = await client.search_companies("トヨタ")
        print(companies[0].name, companies[0].edinet_code)
        # トヨタ自動車株式会社 E02144

        # Get normalized financial statements
        stmt = await client.get_financial_statements("E02144", period="2025")

        # Dict-like access — works for J-GAAP, IFRS, and US-GAAP
        revenue = stmt.income_statement["売上高"]
        print(revenue)  # {"当期": 45095325000000, "前期": 37154298000000}

        # See all available line items
        print(stmt.income_statement.labels)
        # ["売上高", "売上原価", "売上総利益", "営業利益", ...]

        # Export as DataFrame
        print(stmt.income_statement.to_polars())

asyncio.run(main())

Financial Metrics

import asyncio
from edinet_mcp import EdinetClient, calculate_metrics

async def main():
    async with EdinetClient() as client:
        stmt = await client.get_financial_statements("E02144", period="2025")
        metrics = calculate_metrics(stmt)
        print(metrics["profitability"])
        # {"売上総利益率": "25.30%", "営業利益率": "11.87%", "ROE": "12.50%", ...}

asyncio.run(main())

Multi-Company Screening

import asyncio
from edinet_mcp import EdinetClient, screen_companies

async def main():
    async with EdinetClient() as client:
        result = await screen_companies(
            client,
            ["E02144", "E01777", "E01967"],  # Toyota, Sony, Keyence
            period="2025",
            sort_by="営業利益率",  # Sort by operating margin
        )
        for r in result["results"]:
            print(f"{r['company_name']}: {r['profitability']['営業利益率']}")
        # 株式会社キーエンス: 51.91%
        # ソニーグループ株式会社: 11.69%
        # トヨタ自動車株式会社: 9.98%

asyncio.run(main())

Cross-Period Diff

import asyncio
from edinet_mcp import EdinetClient, diff_statements

async def main():
    async with EdinetClient() as client:
        result = await diff_statements(
            client, "E02144",
            period1="2024", period2="2025",
        )
        for d in result["diffs"][:5]:
            print(f"{d['科目']}: {d['増減額']:+,.0f} ({d['増減率']})")
        # 売上高: +7,941,027,000,000 (+21.38%)
        # 営業利益: +1,204,832,000,000 (+28.44%)
        # ...

asyncio

Tools (4)

search_companiesSearch for listed Japanese companies by name or keyword.
get_financial_statementsRetrieve normalized financial statements for a specific company and period.
screen_companiesCompare financial metrics across multiple companies.
diff_statementsCompare financial statements across two different periods.

Environment Variables

EDINET_API_KEYrequiredAPI key obtained from the EDINET disclosure system.

Configuration

claude_desktop_config.json
{"mcpServers": {"edinet": {"command": "uvx", "args": ["edinet-mcp"], "env": {"EDINET_API_KEY": "your_key_here"}}}}

Try it

Search for Toyota and retrieve their latest annual financial statements.
Compare the operating margins of Toyota, Sony, and Keyence for the 2025 period.
Show me the year-over-year growth rates for revenue and operating profit for Toyota between 2024 and 2025.
What are the key financial metrics for Sony based on their most recent quarterly report?

Frequently Asked Questions

What are the key features of EDINET MCP?

Automatic normalization of XBRL filings across J-GAAP, IFRS, and US-GAAP.. Search functionality for over 5,000 listed Japanese companies.. Multi-company screening to compare financial metrics like ROE and profit margins.. Cross-period diff analysis to calculate growth rates and change amounts.. Export financial statements into Polars or pandas DataFrames..

What can I use EDINET MCP for?

Automated financial analysis of Japanese listed companies for investment research.. Comparing performance metrics across competitors in the Japanese market.. Tracking year-over-year financial growth for specific companies using XBRL data.. Integrating Japanese financial disclosure data directly into AI-powered reporting workflows..

How do I install EDINET MCP?

Install EDINET MCP by running: pip install edinet-mcp

What MCP clients work with EDINET MCP?

EDINET MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep EDINET MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare