EDINET DB MCP Server
This server provides MCP access to structured financial and corporate data for Japanese listed companies via 13 core tools.
Search & identify companies — resolve Japanese/English names, EDINET codes, or securities codes with
search_companies.Company profiles & financials — pull full profiles and multi-year financial statements (
get_company,get_financials).Segment & earnings analysis — see business-segment profitability and quarterly earnings releases with forecasts (
get_segments,get_earnings).Filings & disclosures — list regulatory filings and read narrative sections like business overview, risks, and MD&A (
get_disclosures,get_text_blocks).Governance & ownership — examine board directors, large shareholders, and reverse-lookup an investor's holdings (
get_directors,get_shareholders,search_shareholders).Market screening & rankings — filter the listed-company universe by numeric criteria, generate league tables, and benchmark against industry peers (
screen_companies,get_ranking,compare_peers).
Provides access to Wikidata as a public open-data source for corporate and entity information, enriching company profiles and knowledge-graph data with Wikidata-backed records.
EDINET DB MCP Server
Remote MCP server for Japan's EDINET DB — structured financial data for ~3,800 Japanese listed companies, served over HTTPS with OAuth 2.0 multi-tenant authentication.
🌐 Endpoint:
https://edinetdb.jp/mcp🔐 Auth: OAuth 2.0 (or API key)
👥 Users: 9,000+ registered developers, analysts, and academic researchers
📅 Production since: 2026-03-01
🇯🇵 First remote MCP service for Japanese listed-company filings (by author's research as of 2026-02 month-end)
What it does
EDINET DB exposes structured financial and corporate data extracted from Japan's regulatory filings (EDINET, by the Financial Services Agency) plus public open data (gBizINFO from METI, National Tax Agency corporate registry, Wikidata). Connect from Claude Desktop, Claude Code, Cursor, Codex CLI, or any MCP-compatible client to query company financials, HR/diversity disclosures, supply chains, patents, executive profiles, and corporate history via natural language.
Related MCP server: edinet-mcp
Two ways to connect
Remote (recommended) | Local stdio server (this repo) | |
Endpoint |
| runs on your machine |
Tools | 75 | 13 core tools |
Auth | OAuth 2.0 or API key | API key ( |
Setup | add one URL |
|
The remote server is the full product and needs nothing installed. The local server in this repository is a small, dependency-light stdio client over the same public REST API, for clients that cannot speak streamable HTTP or for users who would rather run the process themselves.
Quick start — remote
Claude Desktop (Custom Connector)
Open Claude Desktop → Settings → Custom Connectors
Add Connector:
Name: EDINET DB
URL:
https://edinetdb.jp/mcpAuth: OAuth 2.0 (discovery:
https://edinetdb.jp/mcp/.well-known/oauth-authorization-server)
Sign in with your edinetdb.jp account (free signup at https://edinetdb.jp/signup)
Claude Code
claude mcp add edinetdb https://edinetdb.jp/mcp --transport httpCursor
.cursor/mcp.json:
{
"mcpServers": {
"edinetdb": {
"url": "https://edinetdb.jp/mcp",
"transport": "streamable-http"
}
}
}Codex CLI
codex mcp add edinetdb https://edinetdb.jp/mcpQuick start — local stdio server
Get a free API key at https://edinetdb.jp/developers, then:
EDINETDB_API_KEY=your-key npx -y github:edinetdb/edinet-db-mcpClaude Desktop / Cursor / any stdio client:
{
"mcpServers": {
"edinetdb": {
"command": "npx",
"args": ["-y", "github:edinetdb/edinet-db-mcp"],
"env": { "EDINETDB_API_KEY": "your-key" }
}
}
}From source:
git clone https://github.com/edinetdb/edinet-db-mcp && cd edinet-db-mcp
npm ci && EDINETDB_API_KEY=your-key node server.jsWith Docker (-i is required — the transport is stdio):
docker build -t edinet-db-mcp .
docker run -i --rm -e EDINETDB_API_KEY=your-key edinet-db-mcpEnvironment variable | Required | Default | Purpose |
| yes, to call tools | — | Your EDINET DB API key. Listing tools works without it. |
| no |
| REST API base URL. |
| no |
| Per-request timeout in milliseconds. |
Tools in the local server (13)
Each tool is a typed wrapper over one REST endpoint. The set is deliberately narrow: one tool per question a user actually asks, with no two tools covering the same ground.
Tool | What it answers |
| Resolve a name or securities code to an EDINET code |
| Full profile of one company |
| Multi-year financial statement series |
| Which business segment earns the money |
| Latest quarterly results and company forecast |
| What the company filed, and when |
| Business overview, risk factors, MD&A as filed |
| Board roster, tenure and shareholding |
| Who holds 5%+ of this company |
| Everything one investor holds |
| Filter the market by numeric criteria |
| Market-wide league table for one metric |
| Benchmark a company against its industry |
For the full surface — IR documents, knowledge-graph strategies, KPI tracking, watchlists, dashboards and saved analyses — use the remote server, which exposes all 75 tools listed below.
Tools in the remote server (75)
Company & financials
get_company— Company profile + latest financials (XBRL-sourced, no LLM)get_financials— Multi-year financial time seriesget_analysis— Rule-based financial health score (0-100) and key-metrics summarycompare_companies— Side-by-side comparison of 2-10 companies for one fiscal yearget_industry_benchmark— Industry median and P25/P75 quartilesget_fair_value— Deterministic, non-advisory valuation model estimatesget_segments— Business segment revenue, operating income, capex, assetsget_detailed_expenses— SG&A breakdown from the PL notesget_order_backlog— Orders received, order backlog, production and sales volumesget_earnings— Quarterly earnings flash (決算短信), newest firstget_earnings_calendar— Scheduled earnings announcement dates
Search & screening
search_companies— Search by name, securities code, industry, or health scoresearch_companies_batch— Many companies in one callscreen_companies— Screener over 100+ metrics with AND logicget_ranking— Top companies by a financial, human-capital or ESG metricsearch_corporate_master— National Tax Agency corporate-number database (5.8M+ active corporations)get_corporate_profile— Profile by 13-digit corporate number, listed or notget_events— Normalized corporate events across filings, earnings and holdingsget_appearances— Reverse-lookup: how a company appears in other companies' filings
Filings: full text & structured extraction
get_text_blocks— Raw full text from annual securities reportsget_text_blocks_structured— Pre-extracted structured data points from those sectionsget_compensation_text— Director and officer compensation disclosuresget_company_history— Corporate history timeline (沿革) as structured events
Shareholders
get_shareholders— Large shareholding reports (大量保有報告書), latest per filer groupsearch_shareholders— Which companies a given filer holdsget_shareholder_history— Shareholding time series for a filer-issuer pairget_shareholder_transactions— Trade-level detail from the 60-day acquisition/disposal tableget_activist_positions— Current activist positions across the marketget_shareholder_categories— Ownership by shareholder category (所有者別状況)get_major_shareholders— Top-10 major shareholders snapshotget_cross_shareholdings— Per-issuer policy shareholdings (政策保有株式)
Corporate graph
get_directors— Directors and corporate auditors (役員一覧)get_director_compensation— Granular compensation breakdown per officer groupget_parent_company/get_parent_companies— Disclosed parent and reverse-declared parentsget_subsidiaries— Consolidated subsidiaries and equity-method affiliates (関係会社の状況)get_gleif_subsidiaries— Consolidated subsidiaries from GLEIF Level 2get_related_party_transactions— Related-party transactions (関連当事者との取引)get_main_customers— Disclosed main customers (主要販売先) graph
Assets & facilities
get_real_estate— Land, buildings and investment property book valuesget_facilities— Facility-level major properties (主要な設備の状況)
IR documents & knowledge graph
get_ir_documents— IR PDFs: integrated reports, mid-term plans, sustainability reportsget_ir_pdf_url— Signed download URL for an IR PDFlist_ir_document_types— Available IR document type slugssearch_ir_sections/get_ir_sections_by_company— Section-level IR content searchsearch_qa_sections— Q&A content from earnings presentationssearch_ir_kpis/get_ir_kpis_by_company— Numeric KPIs from mid-term plans and integrated reportssearch_kg_strategies— Strategy entities extracted across companiessearch_kg_kpi_commitments— Committed numerical targetsget_kg_company_summary— Knowledge-graph summary for one companyget_kg_kpi_track_record— KPI commitments, observations and revisionsfind_peer_strategies— Peer strategies that overlap thematically
Watchlist, dashboard & notifications
get_watchlist/add_to_watchlist/remove_from_watchlist— Personal watchlistdashboard_list_modules/dashboard_get_feed/dashboard_add_module/dashboard_remove_module/dashboard_update_params— Dashboard modules and live feedssubscribe_notifications/list_notification_subscriptions/unsubscribe_notifications— Email digests
Saved analyses
save_analysis/list_my_analyses/run_analysis/delete_analysis— Re-runnable named analyses
Data quality feedback
report_data_issue/report_financial_data_issue— Flag an error or missing dataget_data_issue— Status of a report you filedrequest_data/list_my_data_requests— Request data that is missing entirely
Docs
get_documentation— Inline help, tool catalog and methodology
Data sources
Source | Coverage | License |
EDINET (FSA Japan) | Annual securities reports, quarterly reports, large shareholder reports | Public-sector open data |
gBizINFO (METI) | Corporate basic attributes, patents, subsidies, government procurement | CC BY 4.0 compatible (政府標準利用規約 第2.0版) |
Corporate Number Publication Site (NTA) | Corporate number, basic 3 fields | 公共データ利用規約 第1.0版 |
Wikidata | Official website URLs | CC0 |
AI-generated content (corporate history narrative, etc.) | Always labeled, with source event IDs, timestamps, and disclaimers | — |
We do not redistribute exchange-licensed data (real-time stock prices, TDnet). See https://edinetdb.jp/docs/data-sources for the full breakdown.
Pricing
Plan | Price (JPY/month) | API/MCP req/day |
Free | ¥0 | 100 |
Pro | ¥4,980 | 1,000 |
Developer (formerly Business, renamed 2026-09-03) | ¥29,800 | 10,000 |
Business (organizations) / Enterprise | Contact | Custom |
Academy | Free for accredited researchers | Custom |
Details: https://edinetdb.jp/pricing
Position vs. similar projects
EDINET DB runs as a hosted, OAuth-authenticated, multi-tenant remote MCP server, and also ships the local stdio client in this repository for people who would rather run the process themselves. It has been in production since 2026-03-01 and has 9,000+ registered users.
Languages
Japanese (primary), English (secondary, growing)
Tools accept queries in both languages, response language follows MCP client
Accept-Language
License & terms
Data: see "Data sources" table above; each field carries a
sourceattributeService: per https://edinetdb.jp/terms
Not an official endorsement of any governmental body
Links
🌐 Service: https://edinetdb.jp
📚 Docs: https://edinetdb.jp/docs/api
🔌 MCP guide: https://edinetdb.jp/docs/mcp-guide
📊 Data quality SLA: https://edinetdb.jp/docs/data-quality
✉️ Contact: edinetdb@cabocia.jp
Operated by Cabocia Inc. — building data infrastructure for the AI agent era.
Available Tools
13 toolscompare_peersAInspect
Benchmark one company against its industry peers on a single metric over several years, returning the company's own series, each peer's series and the industry distribution. Answers 'is this good?', which a single company's numbers alone cannot.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Years of history (default 5). | |
| metric | Yes | The metric to compare on. | |
| company | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| peer_count | No | Number of peers to include (default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does explain the main behavior: it returns three kinds of series and an industry distribution. However, it does not disclose how peers are selected, what timeframe granularity is used, or how missing/edge cases are handled, so the behavioral disclosure is partially complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with no filler. It front-loads the core action and outputs, then adds an interpretative use case ('Answers is this good?') that gives the agent meaningful selection guidance without extra length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, the description adequately covers the return values (company series, peer series, distribution) and the schema covers parameter semantics thoroughly. It lacks details like peer selection criteria or data frequency, but nothing required for a competent call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 even without parameter details in the description. The description adds only conceptual mapping ('single metric' to metric, 'several years' to years, 'peers' to peer_count), which is helpful but not beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Benchmark'), a specific resource ('one company against its industry peers'), and a specific scope ('on a single metric over several years'). It also states the concrete outputs (company series, peer series, industry distribution), making it clearly distinguishable from siblings like get_financials or get_ranking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it: when a single company's numbers cannot answer 'is this good?' it provides relative benchmarking against peers. It does not explicitly name alternative tools or state when not to use it, but the phrase 'which a single company's numbers alone cannot' implies the contrast with standalone financial data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companyAInspect
Get the full profile of one company: identifiers, industry, market segment, headcount and the most recent reported financial summary. This is the general 'tell me about this company' tool; for a multi-year numeric series use get_financials.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| fields | No | Comma-separated field sets to return, to keep responses small (e.g. 'profile,financials'). Omit to return everything. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose the key behavioral scope: it returns a single company's profile and only the most recent reported financial summary. It does not overpromise historical or exhaustive financial detail, though it could mention response-size constraints or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the full message with no wasted words, front-loading the main purpose and then immediately routing to the relevant sibling. The profile contents are itemized compactly and the alternative tool is named explicitly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-company read tool, the description sets accurate expectations about the returned data even without an output schema. It names the main sibling to avoid confusion, and the schema handles parameter details, though it does not cover every edge case such as invalid codes or omitted fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, thoroughly documenting both code and fields, so the baseline is 3. The description adds context about what the returned profile contains, but it does not add parameter-level semantics beyond the schema's already-rich details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get the full profile of one company') and enumerates the payload contents: identifiers, industry, market segment, headcount, and recent financial summary. It also explicitly distinguishes itself from get_financials by labeling itself the general 'tell me about this company' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use this tool — as the general company-profile tool — and gives a direct alternative with the condition: 'for a multi-year numeric series use get_financials.' This gives an agent a concrete routing decision without inferring from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_directorsAInspect
Get the board roster disclosed by one company: each director and corporate auditor with their title, responsibilities, tenure and shareholding. Answers governance and board-composition questions.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| fiscal_year | No | Restrict to one fiscal year. Omit for all disclosed years, newest first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It conveys that this is a read-only operation ('Get'), indicates the data source ('disclosed by one company'), and itemizes returned fields. It does not mention edge cases or access constraints, but for a straightforward retrieval tool the main behavioral expectations are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words: the first sentence front-loads the verb and resource, then adds payload detail; the second sentence states the use case. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only 2 parameters (1 required), no output schema, and no annotations, the description plus schema is largely sufficient: required identifier resolution, optional fiscal_year behavior, output fields, and main use case are all covered. An explicit pointer to relevant siblings would improve completeness, but it is not essential for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed parameter descriptions including EDINET code examples, the distinction from securities codes, the resolution step, and the fiscal_year default behavior. The description itself adds no parameter-specific detail, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), names the resource ('board roster disclosed by one company'), and enumerates the returned entities ('each director and corporate auditor') with their attributes. This clearly distinguishes it from sibling tools like get_shareholders, which would return ownership data rather than board composition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the intended use case ('Answers governance and board-composition questions'), and the schema's code parameter explains that a name or securities code must first be resolved via search_companies. It does not explicitly name alternatives or state when not to use the tool, but the context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_disclosuresAInspect
List the regulatory documents one company filed in a given period, with filing dates and document types. Use this to answer 'what did they file and when'; use get_text_blocks to read the narrative content of a filing.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| month | No | Single month, YYYY-MM. | |
| since | No | Start date, YYYY-MM-DD. | |
| types | No | Comma-separated document type filter, e.g. 'tanshin,yuho'. | |
| until | No | End date, YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly states that the tool returns filing metadata (dates and types) rather than narrative content, which prevents misuse. It does not mention pagination, result limits, or ordering, but for a read-only listing tool the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no waste. The first sentence front-loads the action, resource, and output fields; the second sentence adds the usage distinction and the alternative tool. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all five parameters, and the description states the return fields and the intended use case while naming the relevant sibling tool. There is no output schema, but the description names the key returned attributes. The only notable gap is the absence of pagination or result-limit behavior, which would be useful but is not critical for this simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the param descriptions already provide strong guidance: EDINET code examples, clear date formats, and comma-separated type filter semantics. The description itself adds no deeper parameter meaning beyond 'given period' and document types, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('regulatory documents one company filed in a given period'), and it names the key output fields ('filing dates and document types'). It also clearly separates this tool from get_text_blocks, which is pointed to for narrative filing content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames when to use this tool: to answer 'what did they file and when', and directs the agent to get_text_blocks for reading narrative content. The schema additionally instructs the agent to resolve a name or securities code with search_companies first, giving a complete usage path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earningsAInspect
Get a company's quarterly earnings releases (決算短信) newest first, including reported results and management's own forecast for the year. These arrive weeks before the annual report, so use this for the latest numbers and get_financials for the audited long-run series.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| limit | No | Number of releases to return (default 8). | |
| include_qualitative_text | No | Include management's full qualitative commentary. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It usefully discloses ordering ('newest first'), content (reported results and forecast), and timing relative to annual reports. However, it does not mention output format, pagination behavior, or any operational constraints such as rate limits or authentication, leaving some behavioral uncertainty for a read tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states what the tool does and its output ordering; the second sentence provides timing context and the sibling alternative. Information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description offers some return-value context by mentioning that results include reported figures and management forecasts, plus ordering. It does not describe the exact response shape, but the simple list semantics and well-documented parameters make this a minor gap. Overall it is reasonably complete for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented in the input schema. The description adds no parameter-level detail beyond the schema. Per the baseline rule, a score of 3 is appropriate since the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get a company's quarterly earnings releases'), and specifies ordering ('newest first') and content ('reported results and management's own forecast'). It also distinguishes itself from the sibling get_financials by noting that earnings releases arrive before the annual report. This is a clear, differentiating statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'use this for the latest numbers' because earnings releases arrive weeks before the annual report. It also names the alternative, get_financials, for the 'audited long-run series'. This gives an agent an actionable decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsAInspect
Get the multi-year financial statement time series for one company — revenue, operating income, net income, assets, equity and cash flow per period. Figures come from XBRL in the company's own regulatory filings; no language model is involved in producing them.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| years | No | Number of most recent years to return. Omit for the full history. | |
| period | No | annual (default) = fiscal-year figures from annual securities reports. quarterly = year-to-date cumulative figures. quarterly_standalone = the discrete quarter on its own. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does meaningful work: it states the data source ('XBRL in the company's own regulatory filings') and explicitly guarantees no language model is involved in producing figures. This gives the agent confidence about provenance, though it does not describe output structure or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the action, scope, and content; the second adds valuable provenance context. Both sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by listing the key line items and stating the time-series nature. It does not detail row layout or units, but the information is sufficient for an agent to invoke the tool correctly and set expectations for the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains `code`, `years`, and `period` in detail, including the EDINET-code caveat and period meanings. The description adds no parameter-level meaning beyond framing the result as a per-period time series, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('multi-year financial statement time series') and scope ('for one company'), and it lists the exact metrics returned. This makes it easy to distinguish from siblings like get_earnings or get_segments without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is for retrieving broad financial-statement time series for a single company, which gives the agent useful context for when to select it. It does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rankingAInspect
Get the market-wide league table for one metric — the top companies by return on equity, market capitalisation, dividend yield, female director ratio and 45 others. Use this for 'who is highest on X'; use screen_companies when you need several conditions at once.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of ranked companies to return (default 100). | |
| metric | Yes | The metric to rank by. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It conveys read-only intent via 'Get', market-wide scope, and ranking order via 'top companies', but it does not describe response shape, ordering direction nuances, or why some metrics might be better when ranked lower (e.g., emissions). A 3 is appropriate: useful but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The core purpose is front-loaded, and the usage guidance is delivered in a compact second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: one required enum parameter plus one optional limit. The description adequately covers purpose, scope, and alternative routing. Since there is no output schema, a brief mention of what a league-table row contains would improve completeness, but the current wording is enough for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by mapping several cryptic enum values to human-readable concepts ('return on equity', 'market capitalisation', 'dividend yield', 'female director ratio') and clarifying the one-metric constraint. It does not decode all enum values, but the added semantics exceed the schema's generic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('market-wide league table') with a clear scope ('one metric'), and distinguishes itself from siblings by explicitly contrasting with screen_companies. The examples of metrics make the ranking purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use the tool: 'who is highest on X'. Also gives a concrete when-not-to-use directive: 'use screen_companies when you need several conditions at once'. This is a clear usage rule with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_segmentsAInspect
Get the reported business-segment breakdown for one company: revenue, operating income, assets, depreciation and capital expenditure per segment. Use this to see which part of a business actually earns money, which consolidated totals in get_financials cannot show.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| period | No | annual (default) or quarterly segment disclosures. | |
| quarter | No | Only valid with period=quarterly. Year-to-date figures as of Q1/Q2/Q3. | |
| fiscal_year | No | Restrict to one fiscal year. Omit for all disclosed years, newest first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It communicates the read-only retrieval nature and the metric list, but does not disclose output structure, pagination, or behavior for companies without segment disclosures. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first states the resource and output metrics, the second gives the strategic use case and the key sibling distinction. The most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool with detailed schema documentation, the description plus schema covers the EDINET code prerequisite, period/quarter/fiscal year semantics, and the key alternative. Without an output schema, it does not specify the exact response shape, but the listed metrics make the main result clear enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The schema fully documents all four parameters and their constraints, including code conversion guidance and quarter validity, so the description does not need to add parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get the reported business-segment breakdown for one company') and enumerates concrete fields returned. It also distinguishes itself from get_financials by noting consolidated totals cannot show segment-level profitability, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use it when the task is seeing which part of a business earns money, and contrasts with get_financials. The schema's code description adds a clear prerequisite: resolve names/securities codes to EDINET codes via search_companies first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_text_blocksAInspect
Read the narrative sections of a company's annual securities report — business overview, risk factors, and management's discussion and analysis — as the original filed Japanese text. Returns a 2,000-character excerpt per section unless full is set.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | EDINET code of the company, e.g. E02144 (Toyota Motor) or E02367 (Nintendo). This is not the securities code — resolve a name or securities code to an EDINET code with search_companies first. | |
| full | No | Return the complete text instead of an excerpt. Default false. | |
| sections | No | Comma-separated section filter, e.g. 'risks,mda,business'. Omit for all sections. | |
| fiscal_year | No | Fiscal year to read. Omit for the most recent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly discloses the 2,000-character excerpt behavior, the per-section return shape, and the Japanese-language nature of the content — non-obvious traits an agent needs. It does not discuss rate limits or error behavior, but for a read operation this is reasonably complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences deliver the core purpose, the content scope, and the key output behavior. Every clause earns its place, and the most important detail — what the tool reads — is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex read tool with no output schema, the description explains the expected return value and format sufficiently. The remaining gaps, such as exact response structure or behavior for missing years, are minor and partially covered by the parameter schemas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description adds marginal context by listing section names in prose, but does not materially extend the schema's meaning for full, sections, or fiscal_year.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Read'), a specific resource ('narrative sections of a company's annual securities report'), and enumerates the exact sections covered. This clearly distinguishes it from sibling tools like get_financials or get_disclosures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is appropriate — when narrative annual-report text is needed — but does not explicitly contrast it with alternatives or state when not to use it. The 'original filed Japanese text' detail is a useful implicit signal, but no explicit routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_companiesAInspect
Filter the whole universe of Japanese listed companies by numeric and categorical criteria combined with AND, and sort the survivors. Use this when you are looking for companies that match a profile; use search_companies when you already know which company you mean.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Metric to sort by. Defaults to the metric of the first condition. | |
| limit | No | Maximum results (default 100). | |
| order | No | Sort direction. Default desc. | |
| market | No | Tokyo Stock Exchange market segment. | |
| offset | No | Result offset for paging. Default 0. | |
| industry | No | Industry name in Japanese, e.g. '情報・通信業'. | |
| standard | No | Accounting standard the company reports under. | |
| conditions | No | Conditions as a JSON array, e.g. '[{"metric":"roe","operator":"gte","value":10}]'. Operators are gte, lte, gt, lt and eq. | |
| fiscal_year_end | No | Fiscal year-end month, 1-12. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure on its own. It usefully reveals that filters combine with AND, apply across the entire listed-company universe, and surviving companies are sorted. However, it does not disclose the result shape, behavior with no conditions, or pagination expectations beyond what the schema already exposes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the core operation, scope, filtering semantics, and sorting; the second provides the sibling distinction. Every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description covers the purpose, when to use it, and the key AND-combination semantics, while the schema covers parameter details. The main gap is that the return contents are only implied by 'survivors' rather than described, and no caveats or prerequisites are mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 9 parameters with 100% coverage, so the baseline is 3. The description adds a meaningful semantic not explicit in the schema: numeric and categorical criteria are combined with AND. This helps an agent correctly model how the various filter fields interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: filtering the whole universe of Japanese listed companies by numeric and categorical criteria, AND-combining them, then sorting survivors. It explicitly contrasts this with search_companies, so an agent can distinguish screening-by-profile from lookup-by-known-company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule: use screen_companies when looking for companies that match a profile, and use search_companies when you already know the company. This is direct routing guidance between the two closest siblings, though it does not discuss other siblings like get_ranking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesAInspect
Resolve a company name, EDINET code, or securities code to a company record. Use this first when you know WHO you are looking for and need its EDINET code for the other tools. For finding companies by numeric criteria you do not yet have a name for, use screen_companies instead.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Company name, EDINET code, or securities code. Japanese or English. | |
| limit | No | Maximum results (default 20). | |
| include_delisted | No | Include companies that were once listed but have since delisted. Useful for resolving former names and retired securities codes. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clarifies the lookup behavior and that the result includes an EDINET code, but it does not disclose matching behavior, read-only guarantees, or response shape. This is a moderate gap for an otherwise simple search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no wasted words. The main purpose is front-loaded, followed immediately by usage guidance and the key alternative tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter search tool with fully documented schema, the description is nearly complete: it explains what to do, when to do it, and which sibling to prefer instead. It stops short of describing the exact output structure, but it does say a company record is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents q, limit, and include_delisted. The description adds context about needing the EDINET code for other tools, but it does not materially enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Resolve') and names the resource: company name, EDINET code, or securities code to a company record. It also differentiates from screen_companies by stating this tool is for when you know WHO you are looking for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('Use this first when you know WHO...') and names the alternative ('use screen_companies instead') for a distinct case. No inference is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool maps to a distinct resource or action, with overlapping pairings explicitly cross-referenced: get_shareholders vs search_shareholders and search_companies vs screen_companies are clearly differentiated. Adjacent tools like get_financials vs get_earnings and get_disclosures vs get_text_blocks are also described in ways that prevent misselection.
All tools follow a consistent snake_case verb_noun pattern: get_* for retrieving entity data, search_* for resolving names, screen_companies for filtering, and compare_peers for benchmarking. The verb consistently indicates the operation type and the noun the target, making the set highly predictable.
Thirteen tools is well-scoped for an EDINET financial data server, covering company profile, financials, segments, earnings, disclosures, governance, shareholders, screening, ranking, and peer comparison. Each tool earns its place and there are no obvious redundant entries.
The toolset covers the major EDINET workflows thoroughly: company resolution, financial statements, quarterly earnings, filing lists, narrative text, directors, shareholder filings, screening, ranking, and peer comparison. A minor gap is that arbitrary full-filing content cannot be retrieved directly, since get_text_blocks is limited to annual securities report narrative sections.
Maintenance
Related MCP Connectors
Cross-market (US/JP/KR) structured financials, segments, ownership & metrics, traceable to filings.
Japanese law, corporation & statistics data as MCP, normalized to English with source attribution.
SEC MCP — SEC EDGAR public APIs (free, no auth)
EDGAR MCP — SEC EDGAR public APIs (free, no auth)
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive access to financial filings from 7,700+ Asian companies through Japan's EDINET and South Korea's DART systems, enabling search, retrieval, and analysis of financial statements, XBRL data, and dimensional breakdowns.13MIT
- AlicenseNot gradedqualityAmaintenanceProvides programmatic access to Japan's EDINET system to search for listed companies and retrieve annual or quarterly financial reports. It parses XBRL filings into structured data, enabling AI assistants to analyze balance sheets, income statements, and cash flows.18Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for Japan's TDnet (Timely Disclosure network). Search and retrieve timely disclosure documents from listed companies on Japanese stock exchanges.5Apache 2.0
- AlicenseAqualityBmaintenanceLets AI assistants query normalized financial statements (P/L, B/S, C/F) of 3,634 Japanese listed companies from official EDINET filings, unified across J-GAAP, IFRS, and US GAAP with English keys. Zero setup: npx -y edinet-mcp.424MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/edinetdb/edinet-db-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server