接入 AI Agent(MCP)
DataSinking 是一個 MCP 伺服器。把你的 agent 指向它,就能用自然語言搜尋並閱讀美國、中國、歐洲、日本、韓國與台灣的財報全文——無需撰寫程式碼,共 6 個工具。請先 取得免費金鑰,再開始使用。這是 API 參考文件的一部分。
選擇你的客戶端
| 客戶端 | 設定檔 | 託管 URL 是否可用 |
| Claude Code | ~/.claude.json · .mcp.json | 可以 |
| Claude Desktop | Connectors UI · claude_desktop_config.json | 可以 |
| Cursor | .cursor/mcp.json | 可以 |
| OpenAI Codex CLI | ~/.codex/config.toml | 可以 |
| WorkBuddy / CodeBuddy | ~/.workbuddy/mcp.json · ~/.codebuddy/.mcp.json | 僅 CodeBuddy |
| Doubao Work | in-app connectors, no file | 可以 |
| Devin Desktop | %AppData%\devin\mcp_config.json | 可以 |
| DeepSeek Harness (dsh) | ~/.dsh/profiles/<name>/cordis.patch.yml | 可以 |
| Gemini CLI | ~/.gemini/settings.json | 可以 |
| OpenCode | ~/.config/opencode/opencode.json | 可以 |
| Qoder | ~/.qoder/settings.json (CLI) · Settings → MCP (IDE) | 可以 |
| Reasonix | reasonix.toml · .mcp.json | 可以 |
| Mobile (Kelivo / Joey / Systemprompt) | 應用內,無設定檔 | 可以 |
| Any other client | command + args + env | 通常可以 |
端點
一個 URL,無需安裝。驗證方式是一個 bearer 標頭,或對無法設定標頭的客戶端改用 URL 裡的 ?apikey=。
https://api.datasink.ing/mcp Authorization: Bearer YOUR_KEY # or: https://api.datasink.ing/mcp?apikey=YOUR_KEY
Claude Code
.mcp.json · ~/.claude.json
一行指令就能完成——提示時加入金鑰,然後確認是否已連上:
claude mcp add --transport http datasinking https://api.datasink.ing/mcp \ --header "Authorization: Bearer YOUR_KEY" claude mcp list # → datasinking: ✔ Connected
加上 --scope user 就能在每個專案使用,而不只是目前這一個。Claude Code 會自行對伺服器做健康檢查,所以 claude mcp get datasinking 會直接告訴你連線失敗的確切原因。
Claude Desktop
claude_desktop_config.json
Settings → Connectors → Add → Add custom connector,然後貼上已經把金鑰放在裡面的 URL:
https://api.datasink.ing/mcp?apikey=YOUR_KEY
金鑰一定要放在 URL 裡。只貼裸 URL 會讓連接器嘗試走 OAuth,而這個伺服器沒有 OAuth——你只會看到 “Couldn't register with …'s sign-in service.”。接著重新啟動應用程式;連接器是在啟動時載入的。
Cursor
.cursor/mcp.json
{
"mcpServers": {
"datasinking": {
"url": "https://api.datasink.ing/mcp",
"headers": { "Authorization": "Bearer ${env:DATASINK_API_KEY}" }
}
}
}Cursor 會內插 ${env:NAME}——而不是 Claude Code 那種 ${NAME}。修改後請重新啟動 Cursor;連線錯誤會顯示在 Output → MCP Logs。
OpenAI Codex CLI
~/.codex/config.toml
一行指令就能完成——它會幫你把設定檔寫好:
codex mcp add datasinking --url https://api.datasink.ing/mcp \ --bearer-token-env-var DATASINK_API_KEY codex mcp list # → datasinking
啟動前請先設好那個環境變數——Codex 儲存的是變數的名稱,不是金鑰本身。
WorkBuddy / CodeBuddy (Tencent)
~/.workbuddy/mcp.json · ~/.codebuddy/.mcp.json
這是兩個不同的產品,各有各的設定檔——設定“無法生效”最常見的原因就是搞混了:
// WorkBuddy (desktop app) — ~/.workbuddy/mcp.json
{
"mcpServers": {
"datasinking": {
"command": "npx",
"args": ["-y", "datasinking-mcp"],
"env": { "DATASINK_API_KEY": "YOUR_KEY" }
}
}
}WorkBuddy 官方文件的設定只支援 stdio;type: "http" 這種寫法在 CodeBuddy Code 上有效,它的設定檔放在 ~/.codebuddy/.mcp.json。改完任一份後請重新啟動應用程式。
Doubao Work (ByteDance)
no file — configured in the app
字節跳動對標 WorkBuddy 的產品。這個是純 UI 設定——沒有可編輯的設定檔,所以它不符合上面幾行的模式:
技能 · 连接器 · 伙伴 → 新建 → 新建自定义连接器
- 傳輸類型:HTTP(也提供 STDIO,如果你想跑本機 server)
- URL:
https://api.datasink.ing/mcp - 自定义 Headers:
Authorization=Bearer YOUR_KEY
儲存後確認開關已開啟。兩點需要注意:自訂 MCP 連接器只在桌面用戶端載入——瀏覽器與行動端會忽略;另外豆包可以直接用 header 認證,所以這裡不需要 ?apikey= 那個備援寫法。
Devin Desktop
%AppData%\devin\mcp_config.json
前身是 Windsurf。用 Cascade → MCP → Open MCP config file 取得正確的檔案:
{
"mcpServers": {
"datasinking": {
"serverUrl": "https://api.datasink.ing/mcp",
"headers": { "Authorization": "Bearer ${env:DATASINK_API_KEY}" }
}
}
}遠端欄位是 serverUrl,不是 url——這裡只有它不一樣。在 Windows 上檔案位於 %AppData%\devin\mcp_config.json;在 macOS 與 Linux 則是 ~/.config/devin/mcp_config.json。
DeepSeek Harness (dsh)
~/.dsh/profiles/<name>/cordis.patch.yml
dsh 沒有 MCP 設定檔——伺服器就是外掛。先把它裝進某個 profile:
dsh plugin --profile web add @deepseek-ai/dsh-mcp-client
接著把下面這一行加進該 profile 的 patch layer:
- insert:
- id: mcp-datasinking
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: datasinking
transport: streamable-http
url: https://api.datasink.ing/mcp
headers:
Authorization: !!js '`Bearer ${process.env.DATASINK_API_KEY}`'
failOnStartupError: true請保留 failOnStartupError: true。預設值是 false,那會什麼都連不上,卻又不回報任何錯誤。工具會以 mcp__datasinking__<tool> 的形式出現。
Gemini CLI
~/.gemini/settings.json
一條命令,或者直接改設定:
gemini mcp add --transport http datasinking https://api.datasink.ing/mcp \ --header "Authorization: Bearer YOUR_KEY" gemini mcp list # → datasinking
設定檔裡的欄位是 httpUrl,不是 url —— url 指的是 SSE:
{
"mcpServers": {
"datasinking": {
"httpUrl": "https://api.datasink.ing/mcp",
"headers": { "Authorization": "Bearer ${DATASINK_API_KEY}" }
}
}
}消費版 Gemini(gemini.google.com → 已連接的應用)只支援 OAuth,所以那邊要用 ?apikey= 把 key 拼進 URL,或者直接用 CLI。
OpenCode
~/.config/opencode/opencode.json
OpenCode 會合併 ~/.config/opencode/opencode.json 和專案裡的 opencode.json。它的 MCP 鍵是 mcp —— 不是 mcpServers:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"datasinking": {
"type": "remote",
"url": "https://api.datasink.ing/mcp",
"oauth": false,
"headers": { "Authorization": "Bearer {env:DATASINK_API_KEY}" }
}
}
}兩個設定起關鍵作用。 "oauth": false 讓 OpenCode 不把我們的 401 當成 OAuth 挑戰 —— 不寫它會報「授權失敗」而不是「缺 key」。另外內插語法是 {env:NAME},而 Claude Code 和 Cursor 用的是 ${NAME}。
Qoder
~/.qoder/settings.json (CLI) · Settings → MCP (IDE)
Qoder CLI 和 Qoder IDE 讀的是 不同的 設定。CLI 要加進 ~/.qoder/settings.json 的 mcpServers:
{
"mcpServers": {
"datasinking": {
"type": "http",
"url": "https://api.datasink.ing/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}stdio 是預設的 type,所以 URL 不帶 "http" 會報啟動錯誤。工具會以 mcp__datasinking__<tool> 形式出現。在 IDE 裡,要打開 Settings(Ctrl Shift ,)→ MCP → My Servers → + Add 單獨配 —— IDE 不讀 CLI 的檔案。
Reasonix
reasonix.toml · .mcp.json
Reasonix 讀官方 MCP Registry,所以有一行命令。或者用 [[plugins]] 在 ./reasonix.toml(或全域 ~/.reasonix/config.toml)裡自己宣告:
reasonix mcp install io.github.heubme2020/datasinking
# or, by hand:
[[plugins]]
name = "datasinking"
type = "http"
url = "https://api.datasink.ing/mcp"
headers = { Authorization = "Bearer ${DATASINK_API_KEY}" }type 預設是 stdio,所以 "http" 這一行是必須的。冷啟動的 server 在背景連線 —— 工具還沒出現就先重試,別反覆檢查設定。工具以 mcp__datasinking__<tool> 形式出現。
Mobile (Kelivo / Joey / Systemprompt)
應用內,無設定檔
任何支援 streamable HTTP 的行動 App 都能用——無需安裝、無設定檔。在 App 裡新增伺服器(設定 → MCP → 新增):
URL: https://api.datasink.ing/mcp Authorization: Bearer YOUR_KEY # 如果 App 不能設定請求頭,就把 key 放進 URL: # https://api.datasink.ing/mcp?apikey=YOUR_KEY
已知可用的 App:Kelivo(kelivo.psycheas.top)、Joey MCP Client(Android)、Systemprompt(Android/iOS)。桌面用戶端用的也是同一個端點,六個工具和 ?apikey= 兜底行為完全一致。
其它 MCP 客戶端
command + args + env
本地、stdio、Node 18+ 或 Python 3.8+:
{
"mcpServers": {
"datasinking": {
"command": "npx",
"args": ["-y", "datasinking-mcp"],
"env": { "DATASINK_API_KEY": "YOUR_KEY" }
}
}
}
# Python instead of Node:
# "command": "uvx", "args": ["--from", "datasinking[mcp]", "datasinking-mcp"]Agent 能用什麼
6 個工具。它們與 REST 端點一對一對應,所以 API 參考文件 裡的任何內容都能靠提問取得。
| list_exchanges | 涵蓋哪些市場,以及各有多少 |
| list_stocks | 單一交易所裡的公司 |
| list_reports | 某家公司的財報——只有中繼資料 |
| get_report | 單一份財報,全文 |
| list_sections | 某份財報的章節標題,附大小 |
| get_section | 只取一個章節——節省 token,最適合 RAG |
第一次測試可以先問 “DataSinking 涵蓋哪些交易所?”——agent 呼叫 list_exchanges 就證明整條鏈路都通了。接著試 “豐田最新的年報對風險有什麼說法?”
連不上時
幾乎所有失敗都離不開這三種:
| {"detail":"Missing API key"} | 什麼都沒送出——客戶端啟動前環境變數沒有設定好。 |
| {"detail":"无效的 API key"} | 金鑰未被辨識——檢查是不是多了一個空白,或是少了 Bearer 。 |
| no tools | 重新啟動客戶端——它們全部都在啟動時讀取 MCP 設定。 |
想分辨“我的客戶端設定錯了”和“我的金鑰不對”,可以直接跳過客戶端:
curl -s -X POST https://api.datasink.ing/mcp \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'各客戶端的疑難排解——包括每個客戶端實際印出的錯誤——都寫在上面連結的指南裡,位於 docs/mcp/底下。
保留來源署名
每個回應都帶有 source 欄位,標明這份財報來自哪個官方平台——SEC EDGAR(美國)、cninfo.com.cn(中國)、filings.xbrl.org(歐洲)、EDINET(日本)、DART(韓國)、MOPS(台灣)。MCP 工具描述會要求模型在引用時保留它。轉散布時請不要移除。