HOSTED CATALOGUE
線上研究庫 6 個唯讀工具
搜尋報告與來源、核對版本,取得已歸檔原件的五分鐘私人下載連結。
- 端點
https://tiansource01.apuch.cn/mcp- 授權
- 由管理員授予唯讀 Bearer token;不需要 COS 密鑰。
- 保存
- 報告保存在私人 COS,下載連結五分鐘到期;唯讀 token 不可寫入或修改筆記。
AGENT INTEGRATION
把報告搜尋、版本核對與研究歸檔,接進你的工作流程。
MCP · 可讀取的索引 · 保留官方依據
本站以唯讀授權提供目錄查詢及已驗證的私人 COS 報告下載。可攜式 Node 版本另提供本機下載及私人閱讀紀錄。
HOSTED CATALOGUE
搜尋報告與來源、核對版本,取得已歸檔原件的五分鐘私人下載連結。
https://tiansource01.apuch.cn/mcpPORTABLE NODE
包含五個目錄工具,另加下載、檔案清單與閱讀狀態更新。
/mcp需要 Node.js 22 或更新版本。在可攜式原始碼套件根目錄執行:
npm run build
npm start網站預設位於 http://127.0.0.1:3000,MCP 位於 http://127.0.0.1:3000/mcp。未設定 API key 時,HTTP 只提供五個目錄工具,私人研究庫路由停用。
把以下設定加入支援 MCP 的用戶端。將兩個絕對路徑換成你自己的位置。程序直接讀取應用程式內的 public/catalog.json,不依賴用戶端目前工作目錄。
{
"mcpServers": {
"tiansight": {
"command": "node",
"args": ["/absolute/path/to/tiansight/server/index.mjs", "--stdio"],
"env": {
"TIANSIGHT_LIBRARY_DIR": "/absolute/path/to/my-private-research"
}
}
}
}stdio 使用逐行 JSON-RPC;標準輸出只傳協定 JSON,作業錯誤寫入標準錯誤。stdio 可使用全部八個工具,不需要 HTTP API key。
在環境變數設定足夠長的隨機密鑰,並指定私人保存目錄:
export MCP_API_KEY='replace-with-a-long-random-secret'
export TIANSIGHT_LIBRARY_DIR='./library/private'
npm start設定密鑰後,所有 /api/… 與 /mcp 請求,包括目錄讀取,都必須附上 Authorization: Bearer <key>。靜態頁面及 /health 仍公開。密鑰由 API 用戶端提供,不要寫進公開網站、原始碼或網址。
HOST 預設為 127.0.0.1,PORT 預設為 3000。非 loopback 主機必須設定密鑰。遠端存取應由具驗證能力的 HTTPS gateway 保護;應用程式不簽發憑證或實作 OAuth。
跨來源請求以 TIANSIGHT_ALLOWED_ORIGINS 設定精確來源,逗號分隔,不含尾斜線或路徑,不支援萬用字元。來源與 Host 檢查不取代 Bearer 驗證。
先在 shell 設定 MCP_API_KEY,再執行:
npm run build
docker build -t tiansight-local .
docker volume create tiansight-library
docker run --rm --name tiansight-local \
-p 127.0.0.1:3000:3000 \
-e MCP_API_KEY="$MCP_API_KEY" \
-e TIANSIGHT_ALLOWED_ORIGINS='http://127.0.0.1:3000,http://localhost:3000' \
-v tiansight-library:/app/library/private \
tiansight-local容器內部綁定 0.0.0.0,未設定密鑰會拒絕啟動;此範例只發布至主機 loopback。具名 volume 在移除容器後保留資料。反向代理、掛載權限及部署細節請參閱原始碼 ZIP 內的 README.md 與 docs/AGENT_API.md。
先搜尋、讀取記錄,再核對歷期與取得條件。工具接受目錄中的 ID;不接受任意網址、檔案路徑或文件匯入。
| 工具 | 參數 | 結果 |
|---|---|---|
search_reports | 選用 q, topic, region, access, year, sourceId, downloadMode, limit, offset | 具體報告版本、符合總數與分頁。 |
get_report | reportId | 完整記錄、官方網址與查證依據。 |
list_report_versions | sourceId | 同來源已建檔版本,新版優先。 |
search_sources | 同搜尋的選用篩選;依來源實際欄位比對。 | 機構、系列與資料入口。 |
prepare_download_manifest | reportIds,1–50 個不重複 ID。 | 官方依據及每份報告下一步;不下載檔案。 |
limit 預設 20,整數 1–100;offset 預設 0,整數 0–100000。downloadMode:direct、landing、registration、subscription。未知參數、錯誤值及無效 ID 會回傳錯誤。
呼叫 get_archived_report,參數為 {"reportId":"nra-whats-hot-2025"}。已歸檔報告回傳五分鐘有效的 HTTPS URL、SHA-256、位元組數與發布機構依據。下載後請核對雜湊;連結到期後重新呼叫工具。未歸檔項目回傳 not_archived 及官方入口。工具不接受自訂物件路徑或存儲桶。唯讀 token 只可呼叫五個目錄工具及此歸檔工具。
| 工具 | 參數 | 結果 |
|---|---|---|
download_report | reportId | 只下載已建檔且 open + direct 的檔案;成功回傳 downloaded 或 already_downloaded。 |
list_downloads | 選用 status, limit, offset | 本機檔案、筆記、標籤與狀態。只有閱讀紀錄時 download: null。 |
update_report_status | reportId, status;選用 tags, notes | 保存 unread、reading、reviewed 或 archived。 |
標籤最多 30 個不重複字串,每個最多 80 字元;筆記最多 10000 字元,空字串清除舊筆記。archived 是閱讀狀態,不刪除檔案。本頁提供接入文件;私人資料透過工具或 API 管理。
相對端點為 /mcp;在可攜式 Node 預設環境中,完整網址為 http://127.0.0.1:3000/mcp。本站使用管理員授予的唯讀 Bearer token;本機使用另行設定的 API key。
實作支援 2026-07-28 無狀態 MCP:server/discover、tools/list、tools/call 與 ping。每次回傳單一 JSON,不建立協定 session 或常駐 SSE;GET 與 DELETE /mcp 回傳 405。
以下範例讀取本機報告目錄。啟用密鑰後另加 -H "Authorization: Bearer $MCP_API_KEY"。連接本站時以本站 origin 取代本機 origin,保留相對路徑 /mcp 並使用相應授權。
curl http://127.0.0.1:3000/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: search_reports' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_reports","arguments":{"q":"food consumer","limit":10},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'現代請求的 params._meta 必須帶協定版本與用戶端能力物件;HTTP 的 MCP-Protocol-Version、Mcp-Method 及工具呼叫的 Mcp-Name 必須與內容一致。呼叫 server/discover 或 tools/list 時省略工具名稱及 arguments,並更新 method 與對應 header。
現代成功結果帶有 resultType: "complete" 與伺服器識別 metadata。Discovery 及工具清單回傳 ttlMs: 0、cacheScope: "private";應重新取得授權相關清單。
2025-11-25 用戶端可依序呼叫 initialize、notifications/initialized,再使用相同工具。初始化需提供 protocolVersion、clientInfo: {name, version} 與 capabilities: {}。後續 HTTP 請求需帶 MCP-Protocol-Version: 2025-11-25;stdio 會記住程序內的舊版初始化狀態。
未宣告資源、提示、訂閱、背景任務或 elicitation。實際可用工具以當次 tools/list 為準。
| 方法 | 路徑 | 用途 |
|---|---|---|
| GET | /health | 狀態、實際數量與 HTTP 研究庫啟用情況。 |
| GET | /api/catalog | 完整目錄。 |
| GET | /api/reports/search?q=food&limit=20&offset=0 | 報告搜尋。 |
| GET | /api/reports/:reportId | 單份記錄。 |
| GET | /api/sources/:sourceId/versions | 已建檔歷期。 |
| GET | /api/library?status=reading | 已驗證的私人紀錄。 |
| POST | /api/library/download | JSON:{"reportId":"…"}。 |
| POST | /api/library/status | JSON:{"reportId":"…","status":"reviewed"},可加 tags、notes。 |
私人工具路由僅存在於 Node 執行環境,且要求密鑰。POST 使用 Content-Type: application/json,上限 256 KiB。搜尋參數不可重複,未知鍵會拒絕處理。
套件與網站不附報告全文檔案。下載工具僅為已建檔、免費且可直接下載的 PDF、CSV 或 JSON 取得實際檔案。落地頁、登記與訂閱內容回傳 manual_action_required 及官方入口,需自行完成官方存取流程。
預設私人目錄為 ./library/private,可用 TIANSIGHT_LIBRARY_DIR 變更。內容保存為 files/<sha256>.<format>,以 manifest.json 記錄來源、官方依據、原始及最終網址、時間、格式、大小、雜湊與閱讀資料。同內容以 SHA-256 去重,各報告仍保留各自出處。
寫入以暫存檔及原子更名完成,一個目錄只由一個程序管理。請自行備份私人目錄;系統不會自動刪除下載檔或封存紀錄。
只接受目錄指定的 HTTPS 443 網址,不轉送 cookie 或驗證憑證。最多三次重新導向;目標必須是該報告直接網址、官方頁或查證依據中已列出的精確主機。私有/保留位址、IP literal、自訂連接埠與未列主機會被拒絕。
預設逾時 60 秒、大小上限 100 MiB。工具檢查內容格式,拒絕偽裝 PDF 的 HTML 落地頁。失敗時回傳 status: "not_completed",不建立成功下載紀錄。合法的新 CDN 重新導向可能需要先更新目錄證據。
目前目錄包含 55 個來源記錄、70 份具體報告版本。70 是實際建檔版本數,不是完整出版史或可下載檔案數。一個來源入口可包含多份尚未逐一建檔的報告;歷期查詢只列出本索引已收錄的版本。
搜尋範圍為標題、摘要、主題、關鍵字與發布機構等中繼資料。所有以空白/標點分隔的搜尋 token 都必須匹配,允許分別匹配不同欄位。標題優先排序;處理大小寫、全半形與實用繁簡字對應,但沒有全文擷取、OCR、語意向量或自動翻譯搜尋。下載檔案後不會自動建立全文索引。
year 是報告版本年份,可能與資料涵蓋期間不同。正式引用請保留發布機構、版本、資料期間、頁碼/表號、原始網址與讀取日期。開放閱讀不代表全文轉載授權。
目前不提供背景下載佇列、排程更新、使用者帳號、發布機構登入或跨裝置同步。瀏覽器研究清單與可攜式私人檔案/閱讀紀錄分開保存。