datasinking 0.2.12__tar.gz → 0.2.13__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.
- {datasinking-0.2.12 → datasinking-0.2.13}/PKG-INFO +19 -13
- {datasinking-0.2.12 → datasinking-0.2.13}/README.md +18 -12
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking/_version.py +1 -1
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking/mcp_server.py +1 -1
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking.egg-info/PKG-INFO +19 -13
- {datasinking-0.2.12 → datasinking-0.2.13}/LICENSE +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking/__init__.py +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking/client.py +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking.egg-info/SOURCES.txt +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking.egg-info/dependency_links.txt +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking.egg-info/entry_points.txt +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking.egg-info/requires.txt +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/datasinking.egg-info/top_level.txt +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/pyproject.toml +0 -0
- {datasinking-0.2.12 → datasinking-0.2.13}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datasinking
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.13
|
|
4
4
|
Summary: Python client for DataSinking — full-text Asian financial reports (China, Korea, Japan, Taiwan) as Markdown.
|
|
5
5
|
Author: DataSinking
|
|
6
6
|
License: MIT
|
|
@@ -41,20 +41,21 @@ with YAML frontmatter, preserved headings, paragraphs and tables.
|
|
|
41
41
|
|
|
42
42
|
## MCP server
|
|
43
43
|
|
|
44
|
-
Ship DataSinking to any AI agent (Claude / Cursor / Codex /
|
|
44
|
+
Ship DataSinking to any AI agent (Claude / Cursor / Codex / Devin Desktop) as an
|
|
45
45
|
[MCP](https://modelcontextprotocol.io) server — 6 tools: list exchanges, list stocks,
|
|
46
46
|
list reports, fetch a report, list sections, fetch one section (token-friendly for RAG).
|
|
47
47
|
|
|
48
48
|
### Hosted — nothing to install
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
One URL, no package, no Python, no local server. Most clients take this shape:
|
|
51
51
|
|
|
52
52
|
```json
|
|
53
53
|
{
|
|
54
54
|
"mcpServers": {
|
|
55
55
|
"datasinking": {
|
|
56
56
|
"type": "http",
|
|
57
|
-
"url": "https://api.datasink.ing/mcp
|
|
57
|
+
"url": "https://api.datasink.ing/mcp",
|
|
58
|
+
"headers": { "Authorization": "Bearer YOUR_KEY" }
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -67,9 +68,12 @@ claude mcp add --transport http datasinking https://api.datasink.ing/mcp \
|
|
|
67
68
|
--header "Authorization: Bearer YOUR_KEY"
|
|
68
69
|
```
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
A client that can't set a header can put the key in the URL instead —
|
|
72
|
+
`https://api.datasink.ing/mcp?apikey=YOUR_KEY` — but only do that when you must: a key in a URL
|
|
73
|
+
ends up in logs and screen shares, and no client can redact it.
|
|
74
|
+
|
|
75
|
+
Two clients don't fit the shape above: Codex's config is TOML, and Devin Desktop's remote field is
|
|
76
|
+
`serverUrl`, not `url`. Per-client files: [`docs/mcp/`](docs/mcp/).
|
|
73
77
|
|
|
74
78
|
### Local — run it yourself
|
|
75
79
|
|
|
@@ -104,8 +108,9 @@ kept in lockstep by [`check_mcp_parity.py`](check_mcp_parity.py).
|
|
|
104
108
|
|
|
105
109
|
Full per-client setup: [`mcp-server.md`](mcp-server.md) (overview) ·
|
|
106
110
|
[`docs/mcp/`](docs/mcp/) (one guide per client).
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
|
|
112
|
+
The hosted endpoint is **POST-only and stateless** — `GET /mcp` returns 405, and no session id is
|
|
113
|
+
issued. Most clients read MCP config at launch, so restart one after changing its config.
|
|
109
114
|
|
|
110
115
|

|
|
111
116
|
|
|
@@ -119,8 +124,8 @@ datasinking/
|
|
|
119
124
|
├── research/ # Research notes / blog posts (reproducing paper-style presentation)
|
|
120
125
|
├── datasinking/ # Python client + MCP server — pip install "datasinking[mcp]"
|
|
121
126
|
├── npm/ # The same MCP server on npm — npx -y datasinking-mcp (Node 18+)
|
|
122
|
-
├── docs/mcp/ # Per-client MCP setup
|
|
123
|
-
├── mcp-server.md # MCP server overview —
|
|
127
|
+
├── docs/mcp/ # Per-client MCP setup — Claude Code, Desktop, Cursor, Codex, WorkBuddy, Devin…
|
|
128
|
+
├── mcp-server.md # MCP server overview — endpoint, per-client table, tools, troubleshooting
|
|
124
129
|
├── llm-examples.md # Ask an LLM — no code needed (8 end-to-end examples)
|
|
125
130
|
├── api-examples.md # 7 examples × 3 interfaces (curl / Python / LLM)
|
|
126
131
|
└── README.md
|
|
@@ -135,9 +140,10 @@ errors that client actually produces:
|
|
|
135
140
|
| Claude Desktop | [`docs/mcp/claude-desktop.md`](docs/mcp/claude-desktop.md) |
|
|
136
141
|
| OpenAI Codex CLI | [`docs/mcp/codex.md`](docs/mcp/codex.md) |
|
|
137
142
|
| WorkBuddy / CodeBuddy | [`docs/mcp/workbuddy.md`](docs/mcp/workbuddy.md) |
|
|
143
|
+
| Doubao Work / 豆包工作 | [`docs/mcp/doubao.md`](docs/mcp/doubao.md) |
|
|
138
144
|
| Cursor | [`docs/mcp/cursor.md`](docs/mcp/cursor.md) |
|
|
139
|
-
| DeepSeek | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
|
|
140
|
-
|
|
|
145
|
+
| DeepSeek Harness (`dsh`) | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
|
|
146
|
+
| Devin Desktop | [`docs/mcp/windsurf.md`](docs/mcp/windsurf.md) |
|
|
141
147
|
|
|
142
148
|
## Quick start
|
|
143
149
|
|
|
@@ -18,20 +18,21 @@ with YAML frontmatter, preserved headings, paragraphs and tables.
|
|
|
18
18
|
|
|
19
19
|
## MCP server
|
|
20
20
|
|
|
21
|
-
Ship DataSinking to any AI agent (Claude / Cursor / Codex /
|
|
21
|
+
Ship DataSinking to any AI agent (Claude / Cursor / Codex / Devin Desktop) as an
|
|
22
22
|
[MCP](https://modelcontextprotocol.io) server — 6 tools: list exchanges, list stocks,
|
|
23
23
|
list reports, fetch a report, list sections, fetch one section (token-friendly for RAG).
|
|
24
24
|
|
|
25
25
|
### Hosted — nothing to install
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
One URL, no package, no Python, no local server. Most clients take this shape:
|
|
28
28
|
|
|
29
29
|
```json
|
|
30
30
|
{
|
|
31
31
|
"mcpServers": {
|
|
32
32
|
"datasinking": {
|
|
33
33
|
"type": "http",
|
|
34
|
-
"url": "https://api.datasink.ing/mcp
|
|
34
|
+
"url": "https://api.datasink.ing/mcp",
|
|
35
|
+
"headers": { "Authorization": "Bearer YOUR_KEY" }
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
}
|
|
@@ -44,9 +45,12 @@ claude mcp add --transport http datasinking https://api.datasink.ing/mcp \
|
|
|
44
45
|
--header "Authorization: Bearer YOUR_KEY"
|
|
45
46
|
```
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
A client that can't set a header can put the key in the URL instead —
|
|
49
|
+
`https://api.datasink.ing/mcp?apikey=YOUR_KEY` — but only do that when you must: a key in a URL
|
|
50
|
+
ends up in logs and screen shares, and no client can redact it.
|
|
51
|
+
|
|
52
|
+
Two clients don't fit the shape above: Codex's config is TOML, and Devin Desktop's remote field is
|
|
53
|
+
`serverUrl`, not `url`. Per-client files: [`docs/mcp/`](docs/mcp/).
|
|
50
54
|
|
|
51
55
|
### Local — run it yourself
|
|
52
56
|
|
|
@@ -81,8 +85,9 @@ kept in lockstep by [`check_mcp_parity.py`](check_mcp_parity.py).
|
|
|
81
85
|
|
|
82
86
|
Full per-client setup: [`mcp-server.md`](mcp-server.md) (overview) ·
|
|
83
87
|
[`docs/mcp/`](docs/mcp/) (one guide per client).
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
|
|
89
|
+
The hosted endpoint is **POST-only and stateless** — `GET /mcp` returns 405, and no session id is
|
|
90
|
+
issued. Most clients read MCP config at launch, so restart one after changing its config.
|
|
86
91
|
|
|
87
92
|

|
|
88
93
|
|
|
@@ -96,8 +101,8 @@ datasinking/
|
|
|
96
101
|
├── research/ # Research notes / blog posts (reproducing paper-style presentation)
|
|
97
102
|
├── datasinking/ # Python client + MCP server — pip install "datasinking[mcp]"
|
|
98
103
|
├── npm/ # The same MCP server on npm — npx -y datasinking-mcp (Node 18+)
|
|
99
|
-
├── docs/mcp/ # Per-client MCP setup
|
|
100
|
-
├── mcp-server.md # MCP server overview —
|
|
104
|
+
├── docs/mcp/ # Per-client MCP setup — Claude Code, Desktop, Cursor, Codex, WorkBuddy, Devin…
|
|
105
|
+
├── mcp-server.md # MCP server overview — endpoint, per-client table, tools, troubleshooting
|
|
101
106
|
├── llm-examples.md # Ask an LLM — no code needed (8 end-to-end examples)
|
|
102
107
|
├── api-examples.md # 7 examples × 3 interfaces (curl / Python / LLM)
|
|
103
108
|
└── README.md
|
|
@@ -112,9 +117,10 @@ errors that client actually produces:
|
|
|
112
117
|
| Claude Desktop | [`docs/mcp/claude-desktop.md`](docs/mcp/claude-desktop.md) |
|
|
113
118
|
| OpenAI Codex CLI | [`docs/mcp/codex.md`](docs/mcp/codex.md) |
|
|
114
119
|
| WorkBuddy / CodeBuddy | [`docs/mcp/workbuddy.md`](docs/mcp/workbuddy.md) |
|
|
120
|
+
| Doubao Work / 豆包工作 | [`docs/mcp/doubao.md`](docs/mcp/doubao.md) |
|
|
115
121
|
| Cursor | [`docs/mcp/cursor.md`](docs/mcp/cursor.md) |
|
|
116
|
-
| DeepSeek | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
|
|
117
|
-
|
|
|
122
|
+
| DeepSeek Harness (`dsh`) | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
|
|
123
|
+
| Devin Desktop | [`docs/mcp/windsurf.md`](docs/mcp/windsurf.md) |
|
|
118
124
|
|
|
119
125
|
## Quick start
|
|
120
126
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datasinking
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.13
|
|
4
4
|
Summary: Python client for DataSinking — full-text Asian financial reports (China, Korea, Japan, Taiwan) as Markdown.
|
|
5
5
|
Author: DataSinking
|
|
6
6
|
License: MIT
|
|
@@ -41,20 +41,21 @@ with YAML frontmatter, preserved headings, paragraphs and tables.
|
|
|
41
41
|
|
|
42
42
|
## MCP server
|
|
43
43
|
|
|
44
|
-
Ship DataSinking to any AI agent (Claude / Cursor / Codex /
|
|
44
|
+
Ship DataSinking to any AI agent (Claude / Cursor / Codex / Devin Desktop) as an
|
|
45
45
|
[MCP](https://modelcontextprotocol.io) server — 6 tools: list exchanges, list stocks,
|
|
46
46
|
list reports, fetch a report, list sections, fetch one section (token-friendly for RAG).
|
|
47
47
|
|
|
48
48
|
### Hosted — nothing to install
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
One URL, no package, no Python, no local server. Most clients take this shape:
|
|
51
51
|
|
|
52
52
|
```json
|
|
53
53
|
{
|
|
54
54
|
"mcpServers": {
|
|
55
55
|
"datasinking": {
|
|
56
56
|
"type": "http",
|
|
57
|
-
"url": "https://api.datasink.ing/mcp
|
|
57
|
+
"url": "https://api.datasink.ing/mcp",
|
|
58
|
+
"headers": { "Authorization": "Bearer YOUR_KEY" }
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -67,9 +68,12 @@ claude mcp add --transport http datasinking https://api.datasink.ing/mcp \
|
|
|
67
68
|
--header "Authorization: Bearer YOUR_KEY"
|
|
68
69
|
```
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
A client that can't set a header can put the key in the URL instead —
|
|
72
|
+
`https://api.datasink.ing/mcp?apikey=YOUR_KEY` — but only do that when you must: a key in a URL
|
|
73
|
+
ends up in logs and screen shares, and no client can redact it.
|
|
74
|
+
|
|
75
|
+
Two clients don't fit the shape above: Codex's config is TOML, and Devin Desktop's remote field is
|
|
76
|
+
`serverUrl`, not `url`. Per-client files: [`docs/mcp/`](docs/mcp/).
|
|
73
77
|
|
|
74
78
|
### Local — run it yourself
|
|
75
79
|
|
|
@@ -104,8 +108,9 @@ kept in lockstep by [`check_mcp_parity.py`](check_mcp_parity.py).
|
|
|
104
108
|
|
|
105
109
|
Full per-client setup: [`mcp-server.md`](mcp-server.md) (overview) ·
|
|
106
110
|
[`docs/mcp/`](docs/mcp/) (one guide per client).
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
|
|
112
|
+
The hosted endpoint is **POST-only and stateless** — `GET /mcp` returns 405, and no session id is
|
|
113
|
+
issued. Most clients read MCP config at launch, so restart one after changing its config.
|
|
109
114
|
|
|
110
115
|

|
|
111
116
|
|
|
@@ -119,8 +124,8 @@ datasinking/
|
|
|
119
124
|
├── research/ # Research notes / blog posts (reproducing paper-style presentation)
|
|
120
125
|
├── datasinking/ # Python client + MCP server — pip install "datasinking[mcp]"
|
|
121
126
|
├── npm/ # The same MCP server on npm — npx -y datasinking-mcp (Node 18+)
|
|
122
|
-
├── docs/mcp/ # Per-client MCP setup
|
|
123
|
-
├── mcp-server.md # MCP server overview —
|
|
127
|
+
├── docs/mcp/ # Per-client MCP setup — Claude Code, Desktop, Cursor, Codex, WorkBuddy, Devin…
|
|
128
|
+
├── mcp-server.md # MCP server overview — endpoint, per-client table, tools, troubleshooting
|
|
124
129
|
├── llm-examples.md # Ask an LLM — no code needed (8 end-to-end examples)
|
|
125
130
|
├── api-examples.md # 7 examples × 3 interfaces (curl / Python / LLM)
|
|
126
131
|
└── README.md
|
|
@@ -135,9 +140,10 @@ errors that client actually produces:
|
|
|
135
140
|
| Claude Desktop | [`docs/mcp/claude-desktop.md`](docs/mcp/claude-desktop.md) |
|
|
136
141
|
| OpenAI Codex CLI | [`docs/mcp/codex.md`](docs/mcp/codex.md) |
|
|
137
142
|
| WorkBuddy / CodeBuddy | [`docs/mcp/workbuddy.md`](docs/mcp/workbuddy.md) |
|
|
143
|
+
| Doubao Work / 豆包工作 | [`docs/mcp/doubao.md`](docs/mcp/doubao.md) |
|
|
138
144
|
| Cursor | [`docs/mcp/cursor.md`](docs/mcp/cursor.md) |
|
|
139
|
-
| DeepSeek | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
|
|
140
|
-
|
|
|
145
|
+
| DeepSeek Harness (`dsh`) | [`docs/mcp/deepseek.md`](docs/mcp/deepseek.md) |
|
|
146
|
+
| Devin Desktop | [`docs/mcp/windsurf.md`](docs/mcp/windsurf.md) |
|
|
141
147
|
|
|
142
148
|
## Quick start
|
|
143
149
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|