Full-text financial reports (US, China, Japan, Korea, Taiwan, UK) as clean Markdown for RAG agents.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your DataSinking API key as a Bearer token — the literal string "Bearer " followed by your 32-character key: "Bearer <your-key>". Get a free key at https://datasink.ing.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch one report's full text (metadata + Markdown body). The `source` field names the official disclosure platform; keep that attribution when you cite it. Expensive in tokens — prefer get_section when you only need one chapter. Content is annotated with block markers (`<!-- ds:block:N -->`) so you can cite a specific paragraph or table.
Report id, from list_reports items[].id
Fetch one report's full text (metadata + Markdown body). The `source` field names the official disclosure platform; keep that attribution when you cite it. Expensive in tokens — prefer get_section when you only need one chapter. Content is annotated with block markers (`<!-- ds:block:N -->`) so you can cite a specific paragraph or table.
| Argument | Type | Description |
|---|---|---|
| document_id* | integer | Report id, from list_reports items[].id |
{
"type": "object",
"required": [
"document_id"
],
"properties": {
"document_id": {
"type": "integer",
"description": "Report id, from list_reports items[].id"
}
}
}Fetch only one section of a report by keyword — much cheaper than get_report, best for RAG. Content is annotated with block markers (`<!-- ds:block:N -->`) so you can cite a specific paragraph or table.
| Argument | Type | Description |
|---|---|---|
| section* | string | Heading keyword. Matches the report's own headings, and also understands cross-market concepts — MD&A / financial statements / notes / audit report / risk / governance (or their Chinese/Japanese/Korean equivalents) resolve to the right section in any market. Otherwise pass a heading in the report's language (A-share: 管理层讨论与分析 / 财务报告; English filings: "MD&A" / "financial statements" / "notes"). If nothing matches, the API returns 404 with the real headings — retry with one of those, or call list_sections first. |
| document_id* | integer | Report id, from list_reports items[].id |
{
"type": "object",
"required": [
"document_id",
"section"
],
"properties": {
"section": {
"type": "string",
"description": "Heading keyword. Matches the report's own headings, and also understands cross-market concepts — MD&A / financial statements / notes / audit report / risk / governance (or their Chinese/Japanese/Korean equivalents) resolve to the right section in any market. Otherwise pass a heading in the report's language (A-share: 管理层讨论与分析 / 财务报告; English filings: \"MD&A\" / \"financial statements\" / \"notes\"). If nothing matches, the API returns 404 with the real headings — retry with one of those, or call list_sections first."
},
"document_id": {
"type": "integer",
"description": "Report id, from list_reports items[].id"
}
}
}List the exchanges DataSinking covers. Returns exchange codes (bj / br / by / jpx / koe / ksc / lk / lse / nasdaq / np / nyse / otc / pk / rs / sse / szse / tpex / twse) with the number of reports available per exchange. Call this first to discover coverage. Sources: US = SEC EDGAR, A-shares = cninfo.com.cn, Japan = EDINET, Korea = DART, Taiwan = MOPS, UK = FCA NSM, Nepal = NEPSE, Brazil = CVM, Belarus = ЕПФР, Sri Lanka = CSE, Pakistan = PSX, Serbia = SEC register.
No arguments.
{
"type": "object",
"properties": {}
}List a company's reports — metadata only (id, title, period), no body text. Each item carries a `source` field naming the official disclosure platform; keep that attribution when you cite it. Look up by `symbol` (FMP-style, e.g. AAPL / 600519.SS / NABIL.NP) or by `exchange` + `stock_code` (from list_stocks) for markets whose codes aren't ticker-shaped (e.g. Brazil CNPJ, Sri Lanka 'AAA.N0000').
| Argument | Type | Description |
|---|---|---|
| size | integer | Number of reports to return (default 10). |
| symbol | string | FMP-style symbol, e.g. AAPL / 600519.SS / 7203.T / 005930.KS / 2330.TW / NABIL.NP |
| doc_type | string | Report type to filter on: annual / semiannual / q1 / q3. Defaults to annual. Pass semiannual for half-year reports, q1 / q3 for the quarterly reports. |
| exchange | string | Exchange code (from list_exchanges). Use with stock_code when the code isn't ticker-shaped. |
| stock_code | string | Exact stock_code from list_stocks. Use with exchange. |
{
"type": "object",
"properties": {
"size": {
"type": "integer",
"default": 10,
"description": "Number of reports to return (default 10)."
},
"symbol": {
"type": "string",
"description": "FMP-style symbol, e.g. AAPL / 600519.SS / 7203.T / 005930.KS / 2330.TW / NABIL.NP"
},
"doc_type": {
"enum": [
"annual",
"semiannual",
"q1",
"q3"
],
"type": "string",
"default": "annual",
"description": "Report type to filter on: annual / semiannual / q1 / q3. Defaults to annual. Pass semiannual for half-year reports, q1 / q3 for the quarterly reports."
},
"exchange": {
"type": "string",
"description": "Exchange code (from list_exchanges). Use with stock_code when the code isn't ticker-shaped."
},
"stock_code": {
"type": "string",
"description": "Exact stock_code from list_stocks. Use with exchange."
}
}
}List every section of a report with its size, before you decide what to pull. Returns `sections` (titles, in order) plus `section_details` — same order, one entry per section with `title`, `has_tables`, `chars` and `estimated_tokens`. Use `estimated_tokens` to avoid pulling a chapter that would blow your context, and `has_tables` to know whether the chapter needs special handling (tables are the part RAG pipelines usually get wrong). Then call get_section with a heading keyword — the headings are in the report's own language.
| Argument | Type | Description |
|---|---|---|
| document_id* | integer | Report id, from list_reports items[].id |
{
"type": "object",
"required": [
"document_id"
],
"properties": {
"document_id": {
"type": "integer",
"description": "Report id, from list_reports items[].id"
}
}
}List the stocks on one exchange, including the report count per company.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Return only the first N companies (default 20) to keep the response short. |
| exchange* | string | Exchange code, e.g. bj / br / by / jpx / koe / ksc / lk / lse / nasdaq / np / nyse / otc / pk / rs / sse / szse / tpex / twse |
{
"type": "object",
"required": [
"exchange"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"description": "Return only the first N companies (default 20) to keep the response short."
},
"exchange": {
"type": "string",
"description": "Exchange code, e.g. bj / br / by / jpx / koe / ksc / lk / lse / nasdaq / np / nyse / otc / pk / rs / sse / szse / tpex / twse"
}
}
}