关于 Edinet
Edinet 是用于从日本金融厅 EDINET 搜索申报主体和访问申报文件的 MCP 服务。企业查询无需密钥;申报文件列表和年度财务数据则需要调用方提供 EDINET Subscription-Key。
主要功能
- 01按名称、代码或证券代码搜索申报主体
- 02按日期或申报主体列出文件
- 03获取年度主要财务数据
- 04返回会计准则和财务期间
- 05作为本地 stdio 服务运行
适用场景
- 01查询日本公司的 EDINET 代码
- 02查找指定日期范围内的公司申报文件
- 03查看年度销售额、利润和资产数据
MCP 相关
向 MCP 客户端提供 EDINET 申报主体搜索、文件列表和年度财务数据工具。可作为本地 stdio 服务运行,也可通过 Pipeworx 网关连接;文件列表操作需要调用方提供 EDINET Subscription-Key。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/edinet/mcpclaude mcp add --transport http pipeworx-io-edinet https://gateway.pipeworx.io/edinet/mcp{"mcpServers":{"pipeworx-io-edinet":{"type":"http","url":"https://gateway.pipeworx.io/edinet/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-edinet":{"type":"http","url":"https://gateway.pipeworx.io/edinet/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-edinet":{"type":"http","url":"https://gateway.pipeworx.io/edinet/mcp"}}}{"mcpServers":{"pipeworx-io-edinet":{"serverUrl":"https://gateway.pipeworx.io/edinet/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
edinet — 日本企业申报文件(EDINET,金融厅)
状态:公开,BYOK 已于 2026-09-16 上线(fleet #1942/#1928)。无需密钥的企业查询对所有调用者开放,无需凭据;两个申报文件列表工具需要调用者提供自己的 EDINET Subscription-Key 作为 _apiKey。为何采用这种方式,而非使用平台密钥,请参阅下方的“身份验证”。
这是 Pipeworx 的一部分——一个将 AI Agent 接入 1879+ 个实时数据源的 MCP 网关。这是独立、非官方的集成,与上游提供方无关联、未获其认可,也非由其发布。
EDINET 是日本的 EDGAR:提供证券报告(有価証券報告書)、季度报告和半年度报告、特别报告、大量持股报告(大量保有報告書)、要约收购,以及其背后的 XBRL/PDF/CSV 文档。
工具
| 工具 | 需要密钥? | 功能 |
|---|---|---|
edinet_search_filers | 否 | 将日本企业解析为 EDINET 代码和证券代码,数据来自金融厅的官方 EDINET 代码列表(约 11,400 家申报企业)。可按日文名称、英文名称、假名、EDINET 代码和股票代码搜索。 |
edinet_list_filings | 是 | 获取某一天申报的所有文档,可按申报企业、文档类型和仅含 XBRL 进行筛选。 |
edinet_company_filings | 是 | 获取某家申报企业在不超过 31 天的日期范围内提交的文件,按时间从新到旧排列。 |
edinet_financials | 是 | 从企业年度证券报告中提取主要年度数据(净销售额、营业收入、归属于所有者的净利润、总资产、净资产),并提供会计期间、会计准则(J-GAAP / IFRS / US GAAP)、申报文件 ID 和利润率。 |
单位、期间和口径(edinet_financials)
- 每个数值都带有申报文件标注的
currency和unit_id,单位为完整货币单位(申报文件以千或百万为单位显示时的舍入不属于结构化数据)。不会进行转换或缩放。 - 若数值的单位不是货币代码,或其文本不是纯数字,则返回
value: null、unit_status: "unresolved",并将申报文件中的文本放在value_as_filed中。 - 仅读取年度报告中的本年度数据,因此每个数值都涵盖
period_start至period_end之间的完整财年。不读取季度报告和半年度报告(其中的数据为累计值)。 - 优先采用合并数据;只有在缺少合并数据时,才会以带标签的备用项形式提供非合并数据。若没有年度报告或结构化数据,则返回
found:false(而不是空列表)。 - 截至 2026-10-25,尚未通过真实环境验证: fleet 上没有 Subscription-Key(见“身份验证”),因此此工具仅使用合成测试数据进行测试。首次使用真实密钥调用时,应对照已知申报文件进行核验。
两项访问规则
- 代码列表无需密钥。 金融厅提供的
https://disclosure2dl.edinet-fsa.go.jp/searchdocument/codelist/Edinetcode.zip无需凭据即可访问。该 ZIP 大约为 570 KB,内含一个 Shift_JIS CSV。此 pack 使用DecompressionStream('deflate-raw')解压,并使用TextDecoder('shift_jis')解码;workerd 支持这两项功能,已于 2026-09-13 在本地wrangler dev中验证。值得注意的是,本仓库中没有其他 pack 会解码这种旧版日文编码。 - API v2 需要免费的 Subscription-Key,由调用者通过
_apiKey提供。该密钥会作为Subscription-Key查询参数发送给上游。
身份验证
自带密钥。 edinet_search_filers 不需要密钥。edinet_list_filings 和
edinet_company_filings 需要 EDINET API v2 Subscription-Key,由调用方通过 _apiKey 提供;如果没有密钥,它们会以 "requires
an API key" 为由拒绝,因此网关会将该拒绝记为门禁拦截,而不是我们的缺陷。
Pipeworx 没有 EDINET 平台密钥,这是经过决定的,而非疏忽(fleet #1942,2026-09-16)。Bruce 注册了 EDINET 账户——账户确实存在——但 FSA 自己的密钥签发页面在他们那边显示为空白,因此无法通过该账户获取密钥。我们没有让已完成的工具包因第三方服务中断而搁置,而是以 BYOK 方式发布了工具包。
如果有人要重新核查: 应查看已登录 EDINET 账户后的密钥页面,而不是预认证 URL——…/api/auth/index.aspx?mode=1
会 302 跳转到 Azure B2C,无论登录后的页面是否正常,它都会正常响应,因此未通过身份验证进行探测,无法说明任何问题。
如果获取到密钥,应在执行 wrangler secret put 的同一项更改中,将 platformKeyEnv: 'PLATFORM_EDINET_KEY' 加入清单——过早声明会解除路由拦截,并将有关日本申报文件的问题指向只能拒绝请求的工具(参见 fda-inspections 先例,#617)。
注意事项
- 没有公司搜索端点。 API 只按日期列出申报文件,除此之外别无其他(
documents.json?date=YYYY-MM-DD&type=2)。因此,“Toyota 的申报文件”需要遍历每日列表——每天向上游发起一次请求,这就是edinet_company_filings将范围限制为 31 天的原因。先使用无需密钥的edinet_search_filers查找公司。 - 证券代码为五位数。 Toyota 在 EDINET 的代码是
72030,在交易所则是7203。两个工具都接受其中任一代码,并返回两种代码(sec_code/ticker)。 - 使用 Shift_JIS,而非 UTF-8。 将代码列表按 UTF-8 解码会导致所有日文名称都出现乱码,且不会发出提示——ASCII 列仍能正常解析。
- 个人申报人。 约 11,400 行中有约 3,200 行是自然人(大量保有報告書申报人,
提出者種別以 個人 开头)。他们的所在地是家庭住址,因此工具包会从这些行中移除location,并为组织保留该字段。 - 年度报告集中申报。 大多数日本上市公司于 3 月 31 日结账,并在 6 月下旬申报;两周内没有结果通常是因为日历安排,而非错误。
为什么没有平台密钥(历史)
EDINET API v2 注册不需要法人番号(这是从 NTA houjin-bangou 遗留的担忧,参见 fleet #1928)。它采用 Azure AD B2C 自助注册,表单只要求提供以下四项:
电子邮件 · 通过电子邮件发送的验证码 · 密码 · CAPTCHA
字段 ID 是从 2026-09-13 的实时注册页面读取的:
email、emailVerificationCode、newPassword、reenterPassword、
captchaEntered / challengeString / captchaControlChallengeCode
("ボットを倒すお手伝いをします")。不需要组织、公司编号或日本地址——美国个人也可以注册。
CAPTCHA 使注册成为需要人工完成的步骤,因此交给了 Bruce。他完成了注册——但随后 EDINET 的密钥签发页面显示为空白(2026-09-16)。此时工具包改为 BYOK 发布,而不是继续等待供应商网站恢复。
以下事项仍待完成,供页面恢复后接手的人处理:
- 在网关上执行
wrangler secret put PLATFORM_EDINET_KEY。 - 在同一项更改中,将
platformKeyEnv: 'PLATFORM_EDINET_KEY'加入workers/gateway/src/pack-manifest.json中的edinet条目。 - 将
tool-examples.json中两个需要密钥的条目替换为确实返回过数据的调用。 当前发布的edinet:edinet_list_filings和edinet:edinet_company_filings使用的参数格式取自 FSA 自己的规范(ESE140206,EDINET API仕様書 Version 2)以及通过实时查询确定的真实 EDINET 代码(E02144= Toyota)——但调用本身从未成功完成,因为我们从未持有密钥。在有人实际运行这两个示例前,应将其视为未经验证。
已验证在线(仅限无需密钥的部分)
2026-09-13,2026-09-16 对已推广的软件包重新运行:
edinet_search_filers({query:"Toyota", limit:3}) → 6 matches of 11,389 filers
E02144 7203 トヨタ自動車株式会社 / TOYOTA MOTOR CORPORATION
E02505 8015 豊田通商株式会社 / TOYOTA TSUSHO CORPORATION
E00540 3116 トヨタ紡織株式会社 / TOYOTA BOSHOKU CORPORATION
edinet_search_filers({query:"トヨタ自動車"}) → 1 match (E02144)
edinet_search_filers({query:"7203"}) → 1 match (E02144)
edinet_search_filers({query:"E02144"}) → 1 match (E02144)
edinet_search_filers({query:"Mitsubishi UFJ", listed_only:true})
→ E03606 / 8306
edinet_list_filings 和 edinet_company_filings 在没有密钥时会拒绝请求,并显示
“requires an API key”,因此网关会将拒绝记录为门禁,而不是错误。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"edinet": {
"url": "https://gateway.pipeworx.io/edinet/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/edinet/mcp 上的 tools/list 会返回上表中的工具,
以及 Pipeworx 共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于表格中的数量:目前,单个软件包端点会列出约 30 个共享工具,以及该软件包自身的工具。连接的 initialize 响应会说明其确切范围,是了解特定日期情况的权威依据。
这是有意设计的,并非意外地进行了多路复用。元工具可以让限定范围的连接回答本软件包未覆盖的问题——通过可在整个目录中路由的 ask_pipeworx——而无需你添加第二个 MCP 服务。目前无法挂载不含这些工具的软件包端点;如果额外的架构定义耗费的上下文多于路由带来的价值,建议只连接完整网关,而不是连接多个软件包端点。
或者,连接完整的 Pipeworx 网关,直接列出每个软件包的工具,而不只是此软件包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1879+ 个数据源。唯一的区别是哪些软件包的工具会被直接列出;无论连接哪个端点,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/edinet_search_filers \
-H 'Content-Type: application/json' \
-d '{"query":"Toyota"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/edinet_search_filers。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需往返网关:
{
"mcpServers": {
"edinet": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-edinet"]
}
}
}
或者直接运行,确认服务可以启动:
npx -y @pipeworx/mcp-edinet
它通过 stdin/stdout 使用 MCP 协议,并针对仅属于此软件包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接所添加的任何共享元工具。来源相同,工具相同,但没有 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗的英语提问,而不是直接调用工具——此功能既适用于上面提到的软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Edinet data" })
网关会选择合适的工具并自动填充参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。