DataGrout
官方DataGrout - 為跨多個MCP伺服器與整合運作的AI代理提供探索、治理與編排層。
你可以用 DataGrout MCP 做什麼?
- 自動佈建 DataGrout 伺服器與 mTLS 身分 — 呼叫
bootstrap_onramp即可在單一步驟中註冊代理程式、取得 OAuth 憑證,並產生簽署憑證。 - 使用 mTLS、OAuth 2.1 或 bearer token 進行驗證 — 以憑證型身分、自動重新整理的 JWT,或簡單的測試用 token 來設定用戶端。
- 使用自然語言探索並呼叫工具 — 透過 Intelligent Interface(
discover/perform),讓代理程式以描述目標的方式尋找並呼叫工具,而非指定確切的工具名稱。 - 追蹤每次呼叫的額度使用量 — 檢查每個回應隨附的成本收據,以監控是否符合政策或預算限制的支出。
- 以互動方式逐步完成多步驟目標 — 呼叫
client.guide(goal=...)以與伺服器逐步執行引導式工作流程。 - 在 Streamable HTTP、JSON-RPC 或 WebSocket 傳輸之間切換 — 選擇
mcp、jsonrpc或websocket傳輸方式,無需變更驗證設定。
文件
大多數 MCP 用戶端只處理一件事:發送請求、取得回應。Conduit 是為了一個稍微不同的問題而建構——一個需要證明自身身分的代理程式,能在長時間的連線中持續運作而無需手動重新驗證,同時保持在成本或政策預算之內。這就是這個 SDK 所要填補的缺口。
內建 mTLS、OAuth 2.1 和語意工具探索的 MCP 用戶端函式庫。支援 Python、TypeScript、Rust、Elixir 和 Ruby。
只要更換一個 import,現有的代理程式即可獲得憑證身分、成本可視性和自然語言工具探索——無需任何其他程式碼變更。
你需要 SDK,還是只需要原始端點?
每個 DataGrout 伺服器都提供標準的 MCP 端點——任何相容 MCP 的用戶端都可以直接用 URL 和 bearer token 連線,不需要 SDK。Conduit 是為那些你想要超越最低需求的場景而設計:
-
你想要基於憑證的(mTLS)身分,而不是自行管理 token
-
你想要每次呼叫都進行成本追蹤,而不需要另外建置
-
你想要語意探索,讓代理程式可以透過描述目標來找到正確的工具,而不是需要確切的工具名稱
-
你正在 Rust、Elixir 或 Ruby 中整合,在這些語言中手動實作 MCP 傳輸邏輯比在 Python/TypeScript 中更費工
如果以上都不適用——例如,你只是要將 Claude Desktop 連接到 DataGrout 伺服器——那麼單純的 mcpServers JSON 設定就夠簡單且足夠了。Conduit 是為了在 DataGrout 之上建構你自己的代理程式或應用程式,而不是用於基本的用戶端設定。
語言支援
| 語言 | 套件 | 安裝 |
|---|---|---|
| Python | datagrout-conduit | pip install datagrout-conduit==0.7.0 |
| TypeScript | @datagrout/conduit | npm install @datagrout/conduit@0.7.0 |
| Rust | datagrout-conduit | cargo add datagrout-conduit@0.7.0 |
| Elixir | datagrout_conduit | {:datagrout_conduit, "~> 0.7.0"} |
| Ruby | datagrout-conduit | gem install datagrout-conduit -v 0.7.0 |
無需先註冊即可取得伺服器
還沒有 DataGrout 帳戶或端點?SDK 可以直接為你佈建兩者(此處以 Python 示範;每個語言的 SDK 都有相同的呼叫——請參閱下方連結的各語言文件以了解確切語法):
from datagrout.conduit import ClientBuilder
from datagrout.conduit.onramp import OnrampOptions
client = await ClientBuilder().bootstrap_onramp(OnrampOptions(
gateway="https://app.datagrout.ai",
agent_name="my-agent",
agent_type="claude-sonnet-4-6",
intended_use="Summarise documents and extract entities.",
))
await client.connect()
在那一次呼叫背後:SDK 會註冊你的代理程式、以短期 token 換取 OAuth 憑證和伺服器 URL、產生本機金鑰對,並由 DataGrout 的 CA 簽署。私鑰會保留在你的機器上。首次之後的每次執行都會自動重複使用已儲存的身分。
比起寫程式碼,更喜歡使用終端機:invariant onboard。
驗證
三種方法,在所有五個 SDK 中完全相同:
-
Bearer token — 最簡單的選項,適合快速測試。
-
OAuth 2.1(用戶端憑證) — SDK 會自動取得、快取並重新整理 JWT。
-
mTLS — 在一次性的啟動之後,憑證本身即可驗證每個請求;之後無需管理任何 token。
對於 mTLS,身分會以固定的搜尋順序自動探索:明確的覆寫目錄、CONDUIT_MTLS_CERT/CONDUIT_MTLS_KEY 環境變數、CONDUIT_IDENTITY_DIR、預設的 ~/.conduit/,然後是相對於工作目錄的本機 .conduit/。在一台機器上執行多個代理程式,意味著要為每個代理程式提供各自的身分目錄。
為什麼需要專屬 CA: 機器身分與瀏覽器身分有不同的需求——代理程式需要以程式化方式簽發和輪換憑證,而不需要每次都有真人介入。簽署金鑰存放在由 HSM 保護的 AWS KMS 金鑰(FIPS 140-2 Level 2)中,且永遠不會離開。CA 憑證公開於 ca.datagrout.ai/ca.pem,可進行獨立的鏈驗證。
傳輸選項
| 傳輸 | 協定 | 使用時機 |
|---|---|---|
| mcp(預設) | MCP over Streamable HTTP/SSE | 你想要完整的協定支援、串流、通知 |
| jsonrpc | JSON-RPC 2.0 over HTTP POST | 你想要更簡單且無狀態的方案 |
| websocket | JSON-RPC 2.0 over WebSocket | 你需要伺服器推送事件,而不只是回應 |
驗證在三種傳輸方式中運作方式完全相同——切換傳輸方式並不代表要改變你的驗證方式。
主要功能
-
智慧介面(預設開啟)——將整個工具表面收斂為兩個呼叫:discover 和 perform。代理程式以自然語言描述目標,而不是在數百個工具架構中推理。使用 use_intelligent_interface=False 停用以查看原始工具。
-
語意探索——也可獨立使用,用於按意義而非確切名稱搜尋工具。
-
成本可視性——每次呼叫都會回傳包含點數使用量的收據。
-
引導式工作流程——client.guide(goal=...) 會以互動方式逐步完成多步驟目標。
-
認知信任憑證——以密碼學證明工作流程無循環、型別安全、符合政策且在預算內,由與代理程式身分相同的 CA 簽署。
第一方命名空間
| 命名空間 | 用途 |
|---|---|
| prism | 資料轉換、圖表、渲染、匯出 |
| logic | 透過 Prolog 邏輯層實現的持久代理程式記憶體 |
| warden | 安全檢查、意圖驗證、多模型共識 |
| deliverables | 註冊和取得已完成的工作成果 |
| ephemerals | 檢視和管理快取結果 |
| flow | 工作流程編排——路由、人工核准、執行歷史 |
工作流程可以儲存為具名、可重複使用的技能(save_as_skill=True),或透過 $compute 以一次性步驟內嵌。flow.route 處理條件分支;flow.request_approval/flow.request_feedback 插入人工檢查點。任何未由命名空間涵蓋的內容都可以透過通用的 dg() 呼叫來存取。
這與 DataGrout 整合的關聯
Conduit 是介於你的代理程式與任何 DataGrout 伺服器之間的層——包括 Salesforce、QuickBooks 和 Oracle Fusion Cloud 整合。無論該伺服器設定了哪些整合,call_tool("salesforce@1/get_lead@1", ...) 呼叫的運作方式都相同;SDK 不需要事先知道特定整合。
下一步
-
各語言文件:Python、TypeScript、Rust、Elixir、Ruby README(GitHub)
-
安全細節:app.datagrout.ai/security
-
免費、無需帳戶的工具:MCP Inspector 和 JSON-RPC Inspector,基於瀏覽器
-
Labs:關於信任憑證、語意程式碼分析、政策執行、點數模型等的研究文章
授權
MIT