Tools
20 MCP tools available to subscribers. Most answer a question about one company. One, run_sql, queries the whole record at once: every company, every filing type, every year, in a single query. That is where the screens and market-wide questions live that no per-company tool can answer.
Each tool returns structured JSON. Every answer is drawn from disclosure filings on record; where a response carries a filing identifier, it resolves to the exact source document. Ticker-keyed tools include a company block (ticker, EDINET code, Japanese and English names, sector) so your agent never has to infer a company's identity from a ticker number.
Limits
SQL queries time out after 10 seconds and return at most 200 rows unless
you set a lower LIMIT. Each API key may make 120 requests per minute.
Responses that would exceed the size cap shrink and set
"truncated": true.
A worked example
What is Elliott pushing for at Nippon Express?
get_holding_actions("9147")
{
"success": true,
"ticker": "9147",
"company": {
"ticker_4": "9147",
"ticker_t": "9147.T",
"edinet_code": "E36706",
"name_jp": "NIPPON EXPRESSホールディングス株式会社",
"name_en": "NIPPON EXPRESS HOLDINGS, INC.",
"sector": "Land Transportation"
},
"truncated": false,
"filings": [
{
"date": "2026-05-20",
"filer": "エリオット・インベストメント・マネージメント・エルピー(Elliott Investment Management L.P.)",
"pct": 6.05,
"purpose": "Consideration of a new M&A strategy and profit improvement plan; Real estate spin-off; Partial sale (including potential sale and leaseback transactions) and/or other methods to monetize real estate a",
"filer_name_en": null,
"filer_sector": "Others",
"is_joint_filing": false,
"joint_holder_count": 1,
"change_proposals": [
"Consideration of a new M&A strategy and profit improvement plan",
"Real estate spin-off",
"Partial sale (including potential sale and leaseback transactions) and/or other methods to monetize real estate and unlock its intrinsic value",
"Capital allocation to a large-scale share buyback program"
]
}
]
}
# (single filing in the past 12mo window — nothing else was cut)
The response names the filer, the stake, and the filing date. The
filing behind it is EDINET document S100Y53L, on
the public record. Every answer traces back to a specific filing.
Company & financials
get_capital_policy
The company's stated capital-return policy from its latest annual report.
When to use: Target dividend payout ratio and any stated reason for skipping a dividend, extracted from the annual report's capital-policy text with the source passage preserved.
get_capital_policy(ticker: str) -> str
get_cashflows
Get multi-year cash flow history (up to 7 years).
When to use: When you need cash-generation direction over time — dividend coverage, cash conversion, investment intensity. Up to 7 years of OCF/ICF/FCF. For income-statement lines and the balance sheet use get_financials.
get_cashflows(ticker: str) -> str
get_filing_text
Read narrative text_blocks sections from a company's latest annual report.
When to use: Read a narrative section (business risks, governance, dividend policy, audit, MD&A, etc.) from a Japanese company's latest annual securities report. Call with section=None to list the available section keys, then again with a specific key to get that section's text.
get_filing_text(ticker: str, section: Optional[str] = None) -> str
get_financials
Multi-year financial history plus latest balance sheet for a Japanese company.
When to use: Multi-year income-statement series plus the latest balance-sheet snapshot for a ticker. The `latest` block carries total assets, net assets, liabilities, BPS, R&D, capex, depreciation, EBITDA. For cash-flow lines (OCF/ICF/FCF) use get_cashflows.
get_financials(ticker: str) -> str
get_quality_trends
Get up to 7 years of quality and capital allocation trends for a Japanese company.
When to use: Multi-year quality trend for a ticker: ROE, operating/investing/free cash flow, EPS, dividends per share, equity ratio, and payout ratio by fiscal year. Use when judging durability of returns and capital allocation.
get_quality_trends(ticker: str) -> str
get_related_party_transactions
Related-party transactions disclosed in a company's annual reports.
When to use: Related-party transactions for a ticker: counterparties, transaction types, and amounts, extracted from the annual report's related-party notes with verbatim figures preserved.
get_related_party_transactions(ticker: str) -> str
get_segments
Get operating-segments matrix for a Japanese company from its annual report.
When to use: Get the operating-segments matrix (revenues, operating profit, segment assets) for a Japanese-listed company from its latest annual securities report. Period='latest' returns the most recent fiscal year. Empty segments with segments_text_only=True means the filer reports segments only in narrative text (common for US-GAAP filers and some IFRS filers); use get_filing_text for those.
get_segments(ticker: str, period: str = 'latest') -> str
Ownership & stakes
get_cross_holdings
Get cross-shareholding relationships for a company.
When to use: When mapping who holds this company and what it holds back — reciprocal cross-shareholding pairs from both 5%+ filings and annual registers. For a plain holder list use get_large_holders or get_shareholder_register.
get_cross_holdings(ticker: str) -> str
get_holding_actions
Recent 5%+ filings (past 12 months) where the holder states change proposals or a desired outcome, or is a known activist filer.
When to use: Filings where a 5%+ holder states what it wants changed, plus all filings by known activist funds. The stated proposals and desired outcome come from the filing text itself. For the full current 5%+ holder list use get_large_holders.
get_holding_actions(ticker: str) -> str
get_large_holder_timeline
Chronological 5%+ ownership-change events for a company, from large shareholding filings (Doc 350).
When to use: Chronological 5%+ stake-change events for a ticker: entries, increases, decreases, and exits from large shareholding filings. Use it to follow a position from first filing to exit. For the current snapshot use get_large_holders.
get_large_holder_timeline(ticker: str, window_months: int = 36) -> str
get_large_holders
Current 5%+ holders from large shareholding filings (Doc 350), with change tracking.
When to use: Current 5%+ holders from large shareholding filings (Doc 350), with NEW/INCREASED/REDUCED change flags. Not the annual top-10 register — for that use get_shareholder_register. For a stake's history use get_large_holder_timeline; for what a holder says it wants, get_holding_actions.
get_large_holders(ticker: str) -> str
get_ownership
Get ownership breakdown for a Japanese company.
When to use: Aggregate ownership breakdown (foreign / float / institutional / corporate / individual) for a ticker. For named holders use get_shareholder_register (annual register) or get_large_holders (5%+ filings).
get_ownership(ticker: str) -> str
get_shareholder_register
Annual top-10 shareholder register from securities reports, holder identity normalized.
When to use: The annual top-10 shareholder register for a company: normalized holders per fiscal year, with year-over-year entries and exits on request. Answers who joined and who left the register. For stakes disclosed through 5%+ filings use get_large_holders. Serves up to 10 reporting periods per company, with coverage back to about fiscal 2018.
get_shareholder_register(ticker: str, periods: int = 3, include_changes: bool = False) -> str
Events & signals
get_buybacks
Get recent treasury stock buyback filings (past 12 months).
When to use: Treasury-stock buyback filings from the past 12 months (Doc 220) for a ticker — active and recent programs, not a full history. For tender-offer buybacks use get_tender_offer_history.
get_buybacks(ticker: str) -> str
get_material_events
Get recent extraordinary reports / material events (past 12 months).
When to use: When you need what a company disclosed as a material event in the past 12 months — management changes, M&A, restructuring — each Doc 180 filing tagged with event category and the FSA ordinance item it cites.
get_material_events(ticker: str) -> str
get_tender_offer_history
Chronological tender-offer history for a company: registrations, withdrawals, results, target opinions, Q&A responses, exemptions.
When to use: When a takeover, MBO, or tender buyback is in play — the full chronological tender-offer record for a ticker, each event tagged by type (registration, withdrawal, result, target opinion, Q&A, exemption). For open-market buybacks use get_buybacks.
get_tender_offer_history(ticker: str) -> str
Filing index & query
find_companies
Look up a Japanese company by name (English or Japanese) or ticker code.
When to use: Fuzzy company name → ticker lookup when you don't know the ticker.
find_companies(search_term: str) -> str
get_briefing
The guide to this record — call once at session start, before your first query.
When to use: Call once at session start, before your first query. Teaches the record: coverage windows, entity model, grain rules, and the honesty protocol for reading Japanese disclosure data.
get_briefing() -> str
get_filings
List the EDINET filings a company itself submitted, newest first.
When to use: Chronological index of every EDINET filing the company itself submitted: dates, document types, amendment links. The entry point for 'what has this company filed?'. For third-party 5%+ filings about the company, use get_large_holders or get_large_holder_timeline.
get_filings(ticker: str, window_months: int = 24, doc_type: str = None) -> str
run_sql
Run read-only SQL across the full disclosure record: every company, every filing type, every year, in one query.
When to use: Cross-company screens, market-wide joins, and any question the typed tools don't cover. The typed tools answer one company; run_sql answers the whole market. Read-only, restricted to the public disclosure tables.
run_sql(sql: str) -> str
Two things worth knowing
Filing year vs fiscal year. A securities report filed in June 2025 covers the fiscal year ended March 2025. Filters on filing dates and fiscal-year-end dates answer different questions.
Ticker formats. Tools take the 4-digit code
(7203). In SQL, securities_reports.ticker carries a
.T suffix (7203.T) and registry tables carry the
5-digit securities code (72030) — the
canonical_company_ids view resolves any format.