接入 AI Agent(MCP)

DataSinking 是一個 MCP 伺服器。把你的 agent 指向它,就能用自然語言搜尋並閱讀美國、中國、歐洲、日本、韓國與台灣的財報全文——無需撰寫程式碼,共 6 個工具。請先 取得免費金鑰,再開始使用。這是 API 參考文件的一部分。

選擇你的客戶端

客戶端設定檔託管 URL 是否可用
Claude Code~/.claude.json · .mcp.json可以
Claude DesktopConnectors 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 Workin-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)可以
Reasonixreasonix.toml · .mcp.json可以
Mobile (Kelivo / Joey / Systemprompt)應用內,無設定檔可以
Any other clientcommand + 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 工具描述會要求模型在引用時保留它。轉散布時請不要移除。