🚀 edinet-mcp
edinet-mcp 是一个用于解析日本金融数据的 EDINET XBRL 库,同时还提供 MCP 服务器。它可以帮助用户以编程方式访问日本的 EDINET 财务披露系统,将不同会计准则下的 XBRL 文件标准化为规范的日语标签,并通过 MCP 服务器为 AI 助手提供数据。

📝 日本語チュートリアル: Claude に聞くだけで上場企業の決算がわかる (Zenn)
它是 Japan Finance Data Stack 的一部分:edinet-mcp(证券备案文件) | tdnet-disclosure-mcp(及时披露信息) | estat-mcp(政府统计数据) | boj-mcp(日本银行数据) | stockprice-mcp(股票价格和外汇汇率)
🚀 快速开始
安装
pip install edinet-mcp
uv add edinet-mcp
docker run -e EDINET_API_KEY=your_key ghcr.io/ajtgjmdjp/edinet-mcp serve
获取 API 密钥
在 EDINET 上免费注册,并设置:
export EDINET_API_KEY=your_key_here
30 秒示例
import asyncio
from edinet_mcp import EdinetClient
async def main():
async with EdinetClient() as client:
companies = await client.search_companies("トヨタ")
print(companies[0].name, companies[0].edinet_code)
stmt = await client.get_financial_statements("E02144", period="2025")
revenue = stmt.income_statement["売上高"]
print(revenue)
print(stmt.income_statement.labels)
print(stmt.income_statement.to_polars())
asyncio.run(main())
✨ 主要特性
- 搜索 5000 多家日本上市公司。
- 获取年度/季度财务报告(有価証券報告書、四半期報告書)。
- 自动标准化:无论使用何种会计准则,
stmt["売上高"] 都能正常工作。
- 计算财务指标(ROE、ROA、利润率)并进行同比比较。
- 将 XBRL 文件解析为 Polars/pandas DataFrame(资产负债表、利润表、现金流量表)。
- 多公司筛选:最多比较 20 家公司的财务指标。
- 跨期差异比较(xbrl-diff):比较不同期间的财务报表,显示变化金额(増減額)和增长率(増減率)。
- 为 Claude Desktop 和其他 AI 工具提供包含 9 个工具的 MCP 服务器。
📦 安装指南
pip install edinet-mcp
uv add edinet-mcp
docker run -e EDINET_API_KEY=your_key ghcr.io/ajtgjmdjp/edinet-mcp serve
💻 使用示例
基础用法
import asyncio
from edinet_mcp import EdinetClient
async def main():
async with EdinetClient() as client:
companies = await client.search_companies("トヨタ")
print(companies[0].name, companies[0].edinet_code)
stmt = await client.get_financial_statements("E02144", period="2025")
revenue = stmt.income_statement["売上高"]
print(revenue)
print(stmt.income_statement.labels)
print(stmt.income_statement.to_polars())
asyncio.run(main())
高级用法 - 财务指标计算
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"])
asyncio.run(main())
高级用法 - 多公司筛选
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"],
period="2025",
sort_by="営業利益率",
)
for r in result["results"]:
print(f"{r['company_name']}: {r['profitability']['営業利益率']}")
asyncio.run(main())
高级用法 - 跨期差异比较
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['増減率']})")
asyncio.run(main())
📚 详细文档
MCP 服务器
将以下配置添加到你的 AI 工具的 MCP 配置中:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
{
"mcpServers": {
"edinet": {
"command": "uvx",
"args": ["edinet-mcp", "serve"],
"env": {
"EDINET_API_KEY": "your_key_here"
}
}
}
}
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"edinet": {
"command": "uvx",
"args": ["edinet-mcp", "serve"],
"env": {
"EDINET_API_KEY": "your_key_here"
}
}
}
}
Claude Code
claude mcp add edinet -- uvx edinet-mcp serve
然后向你的 AI 提问:"トヨタの最新の営業利益を教えて"
可用的 MCP 工具
| 工具 |
描述 |
search_companies |
按企业名、证券代码、EDINET 代码搜索 |
get_filings |
获取指定期限内的披露文件列表 |
get_financial_statements |
获取标准化的财务报表(资产负债表/利润表/现金流量表) |
get_financial_metrics |
计算 ROE、ROA、利润率等财务指标 |
compare_financial_periods |
进行同比比较(变化金额、变化率) |
screen_companies |
批量比较多家企业的财务指标(最多 20 家) |
list_available_labels |
获取可用的财务科目的列表 |
get_company_info |
获取企业的详细信息 |
diff_financial_statements |
比较两个期间的财务报表(变化金额、变化率) |
⚠️ 重要提示
period 参数是 备案年份,而不是会计年度。会计年度于 3 月结束的日本公司会在次年 6 月提交年度报告(例如,2024 财年 → 2025 年提交 → period="2025")。
CLI
edinet-mcp search トヨタ
edinet-mcp statements -c E02144 -p 2024
edinet-mcp screen E02144 E01777 E02529 --sort-by ROE
edinet-mcp diff -c E02144 -p1 2023 -p2 2024
edinet-mcp serve
API 参考
EdinetClient
所有客户端方法都是异步的。使用 async with 进行资源的正确清理:
import asyncio
from edinet_mcp import EdinetClient
async def main():
async with EdinetClient(
api_key="...",
cache_dir="~/.cache/edinet-mcp",
rate_limit=0.5,
max_retries=3,
) as client:
companies: list[Company] = await client.search_companies("query")
company: Company = await client.get_company("E02144")
filings: list[Filing] = await client.get_filings(
start_date="2024-01-01",
edinet_code="E02144",
doc_type="annual_report",
)
stmt: FinancialStatement = await client.get_financial_statements(
edinet_code="E02144",
period="2024",
)
stmt = await client.get_financial_statements(edinet_code="E02144")
df = stmt.income_statement.to_polars()
df = stmt.income_statement.to_pandas()
asyncio.run(main())
Filing
get_filings() 返回的 Filing 对象具有以下属性:
for filing in filings:
print(filing.description)
print(filing.filing_date)
print(filing.doc_id)
print(filing.company_name)
print(filing.period_start)
print(filing.period_end)
StatementData
每个财务报表(资产负债表、利润表、现金流量表)都是一个 StatementData 对象,可以像字典一样访问:
stmt.income_statement["売上高"]
stmt.income_statement.get("営業利益")
stmt.income_statement.labels
stmt.balance_sheet.to_polars()
stmt.balance_sheet.to_pandas()
stmt.balance_sheet.to_dicts()
len(stmt.balance_sheet)
stmt.income_statement.raw_items
标准化
edinet-mcp 会自动对不同会计准则下的 XBRL 元素名称进行标准化:
| 会计准则 |
XBRL 元素 |
标准化标签 |
| J-GAAP |
NetSales |
売上高 |
| IFRS |
Revenue, SalesRevenuesIFRS |
売上高 |
| US-GAAP |
Revenues |
売上高 |
映射关系定义在 中 —— 涵盖利润表(42 项)、资产负债表(79 项)和现金流量表(40 项)的 161 个项目,IFRS/US-GAAP 元素变体通过后缀剥离自动解析。通过编辑 YAML 文件添加新的映射,无需更改代码。
from edinet_mcp import get_taxonomy_labels
labels = get_taxonomy_labels("income_statement")
EDINET 后缀剥离
EDINET 会在 XBRL 元素名称后附加特定于会计准则和部分的后缀(例如,TotalAssetsIFRSSummaryOfBusinessResults)。这些后缀会被自动剥离,以匹配规范的分类条目。非合并(単体)上下文会被过滤掉,优先选择合并数据。
🔧 技术细节
EDINET API → 解析器 (XBRL/TSV) → 标准化器 (taxonomy.yaml) → MCP 服务器
↓
StatementData["売上高"]
calculate_metrics(stmt)
compare_periods(stmt)
📄 许可证
本项目采用 Apache-2.0 许可证。有关第三方归属信息,请参阅 NOTICE。
数据归属
本项目使用了由日本金融厅(金融庁)运营的 EDINET(Electronic Disclosure for Investors' NETwork)的数据。EDINET 数据根据 Public Data License 1.0 提供。
相关项目
Japan Finance Data Stack(同一作者):
社区项目: