datasinking 0.2.13__tar.gz → 0.2.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datasinking
3
- Version: 0.2.13
4
- Summary: Python client for DataSinking — full-text Asian financial reports (China, Korea, Japan, Taiwan) as Markdown.
3
+ Version: 0.2.14
4
+ Summary: Python client for DataSinking — full-text financial reports (US, China, Japan, Korea, Taiwan) as Markdown.
5
5
  Author: DataSinking
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://datasink.ing
8
8
  Project-URL: Documentation, https://datasink.ing/docs
9
9
  Project-URL: Repository, https://github.com/heubme2020/datasinking
10
- Keywords: a-share,china,korea,japan,financial reports,markdown,api,mcp,model-context-protocol,rag,llm
10
+ Keywords: a-share,china,korea,japan,us,sec,financial reports,markdown,api,mcp,model-context-protocol,rag,llm
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Operating System :: OS Independent
@@ -28,11 +28,11 @@ Dynamic: license-file
28
28
  [![PyPI version](https://img.shields.io/pypi/v/datasinking.svg)](https://pypi.org/project/datasinking/)
29
29
  [![MCP server](https://img.shields.io/badge/MCP-server-blue)](https://github.com/heubme2020/datasinking#mcp-server)
30
30
 
31
- **Full-text financial reports across Asia, as clean Markdown.**
31
+ **Full-text financial reports across the US and Asia, as clean Markdown.**
32
32
 
33
33
  [DataSinking](https://datasink.ing) serves **full-text financial reports** — annual, semi-annual
34
- and quarterly — from **China, Korea, Japan and Taiwan** as clean **Markdown**, ready for LLM reading
35
- and RAG. Query by FMP-style symbol (`600519.SS`, `005930.KS`, `7203.T`, `2330.TW`) or filter by
34
+ and quarterly — from **the US, China, Japan, Korea and Taiwan** as clean **Markdown**, ready for LLM reading
35
+ and RAG. Query by FMP-style symbol (`AAPL`, `600519.SS`, `7203.T`, `005930.KS`, `2330.TW`) or filter by
36
36
  exchange, report period, or **section** — pull just the MD&A / risk section instead of the whole
37
37
  report. Reports are sourced from official disclosure platforms and parsed into structured Markdown
38
38
  with YAML frontmatter, preserved headings, paragraphs and tables.
@@ -144,6 +144,9 @@ errors that client actually produces:
144
144
  | Cursor | [`docs/mcp/cursor.md`](docs/mcp/cursor.md) |
145
145
  | DeepSeek Harness (`dsh`) | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
146
146
  | Devin Desktop | [`docs/mcp/windsurf.md`](docs/mcp/windsurf.md) |
147
+ | OpenCode | [`docs/mcp/opencode.md`](docs/mcp/opencode.md) |
148
+ | Qoder | [`docs/mcp/qoder.md`](docs/mcp/qoder.md) |
149
+ | Reasonix | [`docs/mcp/reasonix.md`](docs/mcp/reasonix.md) |
147
150
 
148
151
  ## Quick start
149
152
 
@@ -203,12 +206,12 @@ Start from [`research/TEMPLATE.md`](research/TEMPLATE.md).
203
206
 
204
207
  | | |
205
208
  |---|---|
206
- | Coverage | China (SSE / SZSE / BSE) · Korea (KOSPI / KOSDAQ / KONEX) · Japan (TSE) · Taiwan (TWSE / TPEx) |
209
+ | Coverage | US (NYSE / NASDAQ / CBOE) · China (SSE / SZSE / BSE) · Japan (TSE) · Korea (KOSPI / KOSDAQ / KONEX) · Taiwan (TWSE / TPEx) |
207
210
  | Document types | annual / semiannual / q1 / q3 / amendment |
208
- | Update frequency | Daily — Korea/Japan via official DART/EDINET APIs (new filings within ~24h of publication) |
211
+ | Update frequency | Daily — US/Korea/Japan via official SEC EDGAR / DART / EDINET APIs (new filings within ~24h of publication) |
209
212
  | Format | Full-text Markdown (with YAML frontmatter) |
210
213
  | API | REST — `GET /documents`, batch download, `with_content=1` for full text, `?section=` + `/sections` for chapter-level access |
211
- | Symbols | FMP style: `600519.SS` / `005930.KS` / `7203.T` |
214
+ | Symbols | FMP style: `AAPL` / `600519.SS` / `7203.T` / `005930.KS` |
212
215
  | Auth | `?apikey=` query parameter (FMP style) |
213
216
 
214
217
  ## Data source
@@ -217,6 +220,7 @@ Reports are sourced from the official regulatory disclosure platform of each mar
217
220
 
218
221
  | Market | Source | Platform |
219
222
  |---|---|---|
223
+ | US (bare ticker, e.g. `AAPL`) | SEC EDGAR | US Securities and Exchange Commission — sec.gov/edgar |
220
224
  | China A-shares (`.SS` `.SZ` `.BJ`) | 巨潮资讯网 cninfo | CSRC-designated disclosure platform |
221
225
  | Korea (`.KS` `.KQ` `.KN`) | DART | Financial Supervisory Service — opendart.fss.or.kr |
222
226
  | Japan (`.T`) | EDINET | Financial Services Agency — disclosure2.edinet-fsa.go.jp |
@@ -5,11 +5,11 @@
5
5
  [![PyPI version](https://img.shields.io/pypi/v/datasinking.svg)](https://pypi.org/project/datasinking/)
6
6
  [![MCP server](https://img.shields.io/badge/MCP-server-blue)](https://github.com/heubme2020/datasinking#mcp-server)
7
7
 
8
- **Full-text financial reports across Asia, as clean Markdown.**
8
+ **Full-text financial reports across the US and Asia, as clean Markdown.**
9
9
 
10
10
  [DataSinking](https://datasink.ing) serves **full-text financial reports** — annual, semi-annual
11
- and quarterly — from **China, Korea, Japan and Taiwan** as clean **Markdown**, ready for LLM reading
12
- and RAG. Query by FMP-style symbol (`600519.SS`, `005930.KS`, `7203.T`, `2330.TW`) or filter by
11
+ and quarterly — from **the US, China, Japan, Korea and Taiwan** as clean **Markdown**, ready for LLM reading
12
+ and RAG. Query by FMP-style symbol (`AAPL`, `600519.SS`, `7203.T`, `005930.KS`, `2330.TW`) or filter by
13
13
  exchange, report period, or **section** — pull just the MD&A / risk section instead of the whole
14
14
  report. Reports are sourced from official disclosure platforms and parsed into structured Markdown
15
15
  with YAML frontmatter, preserved headings, paragraphs and tables.
@@ -121,6 +121,9 @@ errors that client actually produces:
121
121
  | Cursor | [`docs/mcp/cursor.md`](docs/mcp/cursor.md) |
122
122
  | DeepSeek Harness (`dsh`) | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
123
123
  | Devin Desktop | [`docs/mcp/windsurf.md`](docs/mcp/windsurf.md) |
124
+ | OpenCode | [`docs/mcp/opencode.md`](docs/mcp/opencode.md) |
125
+ | Qoder | [`docs/mcp/qoder.md`](docs/mcp/qoder.md) |
126
+ | Reasonix | [`docs/mcp/reasonix.md`](docs/mcp/reasonix.md) |
124
127
 
125
128
  ## Quick start
126
129
 
@@ -180,12 +183,12 @@ Start from [`research/TEMPLATE.md`](research/TEMPLATE.md).
180
183
 
181
184
  | | |
182
185
  |---|---|
183
- | Coverage | China (SSE / SZSE / BSE) · Korea (KOSPI / KOSDAQ / KONEX) · Japan (TSE) · Taiwan (TWSE / TPEx) |
186
+ | Coverage | US (NYSE / NASDAQ / CBOE) · China (SSE / SZSE / BSE) · Japan (TSE) · Korea (KOSPI / KOSDAQ / KONEX) · Taiwan (TWSE / TPEx) |
184
187
  | Document types | annual / semiannual / q1 / q3 / amendment |
185
- | Update frequency | Daily — Korea/Japan via official DART/EDINET APIs (new filings within ~24h of publication) |
188
+ | Update frequency | Daily — US/Korea/Japan via official SEC EDGAR / DART / EDINET APIs (new filings within ~24h of publication) |
186
189
  | Format | Full-text Markdown (with YAML frontmatter) |
187
190
  | API | REST — `GET /documents`, batch download, `with_content=1` for full text, `?section=` + `/sections` for chapter-level access |
188
- | Symbols | FMP style: `600519.SS` / `005930.KS` / `7203.T` |
191
+ | Symbols | FMP style: `AAPL` / `600519.SS` / `7203.T` / `005930.KS` |
189
192
  | Auth | `?apikey=` query parameter (FMP style) |
190
193
 
191
194
  ## Data source
@@ -194,6 +197,7 @@ Reports are sourced from the official regulatory disclosure platform of each mar
194
197
 
195
198
  | Market | Source | Platform |
196
199
  |---|---|---|
200
+ | US (bare ticker, e.g. `AAPL`) | SEC EDGAR | US Securities and Exchange Commission — sec.gov/edgar |
197
201
  | China A-shares (`.SS` `.SZ` `.BJ`) | 巨潮资讯网 cninfo | CSRC-designated disclosure platform |
198
202
  | Korea (`.KS` `.KQ` `.KN`) | DART | Financial Supervisory Service — opendart.fss.or.kr |
199
203
  | Japan (`.T`) | EDINET | Financial Services Agency — disclosure2.edinet-fsa.go.jp |
@@ -8,4 +8,4 @@ pyproject.toml 用 `dynamic = ["version"]` 从这里读,`client.py` 的 User-A
8
8
  写着旧版本)。现在只有这一处需要改。
9
9
  """
10
10
 
11
- __version__ = "0.2.13"
11
+ __version__ = "0.2.14"
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """DataSinking MCP server (Model Context Protocol).
3
3
 
4
- Expose the DataSinking API — full-text financial reports across Asia
5
- (China, Korea, Japan, Taiwan) as clean Markdown — to AI agents (Claude, Cursor,
4
+ Expose the DataSinking API — full-text financial reports across the US and Asia
5
+ (the US, China, Japan, Korea, Taiwan) as clean Markdown — to AI agents (Claude, Cursor,
6
6
  Codex, DeepSeek, Devin Desktop, …).
7
7
 
8
8
  Install the MCP extra::
@@ -62,14 +62,14 @@ API_KEY = os.environ.get("DATASINK_API_KEY", "")
62
62
 
63
63
  mcp = FastMCP(
64
64
  "DataSinking",
65
- title="DataSinking — Full-text Asian Financial Reports",
66
- description="Full-text Asian financial reports (China, Korea, Japan, Taiwan) as clean Markdown via API, with chapter-level access for RAG and AI agents.",
65
+ title="DataSinking — Full-text Financial Reports",
66
+ description="Full-text financial reports (US, China, Japan, Korea, Taiwan) as clean Markdown via API, with chapter-level access for RAG and AI agents.",
67
67
  version=__version__,
68
68
  instructions=(
69
69
  "DataSinking serves full-text financial reports (annual / semi-annual / quarterly) "
70
- "from China, Korea, Japan and Taiwan as clean Markdown, ready for LLM reading and RAG. "
71
- "Use FMP-style symbols: 600519.SS (Kweichow Moutai), 005930.KS (Samsung Electronics), "
72
- "7203.T (Toyota), 2330.TW (TSMC). To save tokens, prefer get_section to pull one chapter "
70
+ "from the US, China, Japan, Korea and Taiwan as clean Markdown, ready for LLM reading and RAG. "
71
+ "Use FMP-style symbols: AAPL (Apple), 600519.SS (Kweichow Moutai), 7203.T (Toyota), "
72
+ "005930.KS (Samsung Electronics), 2330.TW (TSMC). To save tokens, prefer get_section to pull one chapter "
73
73
  "(e.g. MD&A) instead of get_report for the whole document."
74
74
  ),
75
75
  )
@@ -115,9 +115,9 @@ def _get(path: str, params: Optional[dict] = None) -> dict:
115
115
  def list_exchanges() -> list:
116
116
  """List the exchanges DataSinking covers.
117
117
 
118
- Returns exchange codes (sse / szse / bj / ksc / koe / knx / jpx / twse / tpex) with
118
+ Returns exchange codes (nyse / nasdaq / cboe / sse / szse / bj / jpx / ksc / koe / knx / twse / tpex) with
119
119
  the number of reports available per exchange. Call this first to discover coverage.
120
- Sources: A-shares = cninfo.com.cn, Korea = DART, Japan = EDINET, Taiwan = MOPS.
120
+ Sources: US = SEC EDGAR, A-shares = cninfo.com.cn, Japan = EDINET, Korea = DART, Taiwan = MOPS.
121
121
  """
122
122
  return _get("/exchanges").get("exchanges", [])
123
123
 
@@ -125,7 +125,7 @@ def list_exchanges() -> list:
125
125
  @mcp.tool()
126
126
  def list_stocks(
127
127
  exchange: Annotated[
128
- str, Field(description="Exchange code, e.g. sse / szse / bj / ksc / koe / knx / jpx / twse / tpex")
128
+ str, Field(description="Exchange code, e.g. nyse / nasdaq / cboe / sse / szse / bj / jpx / ksc / koe / knx / twse / tpex")
129
129
  ],
130
130
  limit: Annotated[
131
131
  int, Field(description="Return only the first N companies (default 20) to keep the response short.")
@@ -139,7 +139,7 @@ def list_stocks(
139
139
  @mcp.tool()
140
140
  def list_reports(
141
141
  symbol: Annotated[
142
- str, Field(description="FMP-style symbol, e.g. 600519.SS / 005930.KS / 7203.T / 2330.TW")
142
+ str, Field(description="FMP-style symbol, e.g. AAPL / 600519.SS / 7203.T / 005930.KS / 2330.TW")
143
143
  ],
144
144
  doc_type: Annotated[
145
145
  str, Field(description="Report type to filter on. Defaults to annual.")
@@ -190,12 +190,13 @@ def get_section(
190
190
  str,
191
191
  Field(
192
192
  description=(
193
- "Heading keyword, matched as a substring against the report's OWN headings, "
194
- "so pass it in the report's language. A-share reports have Chinese headings "
195
- "(e.g. 第三节管理层讨论与分析) — use 管理层讨论与分析 / 财务报告 there. "
196
- "For English-language filings, \"MD&A\" / \"financial statements\" / \"notes\" work. "
197
- "If nothing matches, the API returns 404 with the real headings — retry with one "
198
- "of those, or call list_sections first."
193
+ "Heading keyword. Matches the report's own headings, and also understands "
194
+ "cross-market concepts — MD&A / financial statements / notes / audit report / "
195
+ "risk / governance (or their Chinese/Japanese/Korean equivalents) resolve to the "
196
+ "right section in any market. Otherwise pass a heading in the report's language "
197
+ "(A-share: 管理层讨论与分析 / 财务报告; English filings: \"MD&A\" / "
198
+ "\"financial statements\" / \"notes\"). If nothing matches, the API returns 404 "
199
+ "with the real headings — retry with one of those, or call list_sections first."
199
200
  )
200
201
  ),
201
202
  ],
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datasinking
3
- Version: 0.2.13
4
- Summary: Python client for DataSinking — full-text Asian financial reports (China, Korea, Japan, Taiwan) as Markdown.
3
+ Version: 0.2.14
4
+ Summary: Python client for DataSinking — full-text financial reports (US, China, Japan, Korea, Taiwan) as Markdown.
5
5
  Author: DataSinking
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://datasink.ing
8
8
  Project-URL: Documentation, https://datasink.ing/docs
9
9
  Project-URL: Repository, https://github.com/heubme2020/datasinking
10
- Keywords: a-share,china,korea,japan,financial reports,markdown,api,mcp,model-context-protocol,rag,llm
10
+ Keywords: a-share,china,korea,japan,us,sec,financial reports,markdown,api,mcp,model-context-protocol,rag,llm
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Operating System :: OS Independent
@@ -28,11 +28,11 @@ Dynamic: license-file
28
28
  [![PyPI version](https://img.shields.io/pypi/v/datasinking.svg)](https://pypi.org/project/datasinking/)
29
29
  [![MCP server](https://img.shields.io/badge/MCP-server-blue)](https://github.com/heubme2020/datasinking#mcp-server)
30
30
 
31
- **Full-text financial reports across Asia, as clean Markdown.**
31
+ **Full-text financial reports across the US and Asia, as clean Markdown.**
32
32
 
33
33
  [DataSinking](https://datasink.ing) serves **full-text financial reports** — annual, semi-annual
34
- and quarterly — from **China, Korea, Japan and Taiwan** as clean **Markdown**, ready for LLM reading
35
- and RAG. Query by FMP-style symbol (`600519.SS`, `005930.KS`, `7203.T`, `2330.TW`) or filter by
34
+ and quarterly — from **the US, China, Japan, Korea and Taiwan** as clean **Markdown**, ready for LLM reading
35
+ and RAG. Query by FMP-style symbol (`AAPL`, `600519.SS`, `7203.T`, `005930.KS`, `2330.TW`) or filter by
36
36
  exchange, report period, or **section** — pull just the MD&A / risk section instead of the whole
37
37
  report. Reports are sourced from official disclosure platforms and parsed into structured Markdown
38
38
  with YAML frontmatter, preserved headings, paragraphs and tables.
@@ -144,6 +144,9 @@ errors that client actually produces:
144
144
  | Cursor | [`docs/mcp/cursor.md`](docs/mcp/cursor.md) |
145
145
  | DeepSeek Harness (`dsh`) | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
146
146
  | Devin Desktop | [`docs/mcp/windsurf.md`](docs/mcp/windsurf.md) |
147
+ | OpenCode | [`docs/mcp/opencode.md`](docs/mcp/opencode.md) |
148
+ | Qoder | [`docs/mcp/qoder.md`](docs/mcp/qoder.md) |
149
+ | Reasonix | [`docs/mcp/reasonix.md`](docs/mcp/reasonix.md) |
147
150
 
148
151
  ## Quick start
149
152
 
@@ -203,12 +206,12 @@ Start from [`research/TEMPLATE.md`](research/TEMPLATE.md).
203
206
 
204
207
  | | |
205
208
  |---|---|
206
- | Coverage | China (SSE / SZSE / BSE) · Korea (KOSPI / KOSDAQ / KONEX) · Japan (TSE) · Taiwan (TWSE / TPEx) |
209
+ | Coverage | US (NYSE / NASDAQ / CBOE) · China (SSE / SZSE / BSE) · Japan (TSE) · Korea (KOSPI / KOSDAQ / KONEX) · Taiwan (TWSE / TPEx) |
207
210
  | Document types | annual / semiannual / q1 / q3 / amendment |
208
- | Update frequency | Daily — Korea/Japan via official DART/EDINET APIs (new filings within ~24h of publication) |
211
+ | Update frequency | Daily — US/Korea/Japan via official SEC EDGAR / DART / EDINET APIs (new filings within ~24h of publication) |
209
212
  | Format | Full-text Markdown (with YAML frontmatter) |
210
213
  | API | REST — `GET /documents`, batch download, `with_content=1` for full text, `?section=` + `/sections` for chapter-level access |
211
- | Symbols | FMP style: `600519.SS` / `005930.KS` / `7203.T` |
214
+ | Symbols | FMP style: `AAPL` / `600519.SS` / `7203.T` / `005930.KS` |
212
215
  | Auth | `?apikey=` query parameter (FMP style) |
213
216
 
214
217
  ## Data source
@@ -217,6 +220,7 @@ Reports are sourced from the official regulatory disclosure platform of each mar
217
220
 
218
221
  | Market | Source | Platform |
219
222
  |---|---|---|
223
+ | US (bare ticker, e.g. `AAPL`) | SEC EDGAR | US Securities and Exchange Commission — sec.gov/edgar |
220
224
  | China A-shares (`.SS` `.SZ` `.BJ`) | 巨潮资讯网 cninfo | CSRC-designated disclosure platform |
221
225
  | Korea (`.KS` `.KQ` `.KN`) | DART | Financial Supervisory Service — opendart.fss.or.kr |
222
226
  | Japan (`.T`) | EDINET | Financial Services Agency — disclosure2.edinet-fsa.go.jp |
@@ -7,12 +7,12 @@ name = "datasinking"
7
7
  # 版本号唯一来源 = datasinking/_version.py(client.py 的 User-Agent 也读它)。
8
8
  # 以前这里和包内 __version__ 各写各的,结果漂了半年(发 0.2.4 时才发现 __init__ 还停在 0.1.0)。
9
9
  dynamic = ["version"]
10
- description = "Python client for DataSinking — full-text Asian financial reports (China, Korea, Japan, Taiwan) as Markdown."
10
+ description = "Python client for DataSinking — full-text financial reports (US, China, Japan, Korea, Taiwan) as Markdown."
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.8"
13
13
  license = { text = "MIT" }
14
14
  authors = [{ name = "DataSinking" }]
15
- keywords = ["a-share", "china", "korea", "japan", "financial reports", "markdown", "api", "mcp", "model-context-protocol", "rag", "llm"]
15
+ keywords = ["a-share", "china", "korea", "japan", "us", "sec", "financial reports", "markdown", "api", "mcp", "model-context-protocol", "rag", "llm"]
16
16
  classifiers = [
17
17
  "Programming Language :: Python :: 3",
18
18
  "License :: OSI Approved :: MIT License",
File without changes
File without changes