DataGrout
官方DataGrout - 面向跨多个MCP服务器和集成工作的AI代理的发现、治理与编排层。
你可以用 DataGrout MCP 做什么?
- 自动配置 DataGrout 服务器和 mTLS 身份 — 调用
bootstrap_onramp一步完成代理注册、获取 OAuth 凭据并生成签名证书。 - 使用 mTLS、OAuth 2.1 或 bearer 令牌进行身份验证 — 使用基于证书的身份、自动刷新的 JWT 或简单令牌进行测试来配置客户端。
- 使用自然语言发现并调用工具 — 使用智能接口(
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 令牌直接连接,无需 SDK。Conduit 适用于你希望获得超出最低限度能力的场景:
-
你希望使用基于证书的(mTLS)身份,而不是自行管理令牌
-
你希望每次调用都有成本跟踪,而无需单独构建
-
你希望进行语义发现,让代理通过描述目标来找到正确的工具,而无需知道确切的工具名称
-
你在 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 会注册你的代理,将短期令牌兑换为 OAuth 凭据和服务器 URL,生成本地密钥对,并由 DataGrout 的 CA 为其签名。私钥始终保留在你的机器上。首次运行之后的每次运行都会自动复用已保存的身份。
更喜欢用终端而不是写代码:invariant onboard。
认证
三种方法,在全部五种 SDK 中完全一致:
-
Bearer 令牌——最简单的选项,适合快速测试。
-
OAuth 2.1(客户端凭据)——SDK 自动获取、缓存并刷新 JWT。
-
mTLS——一次性引导之后,证书本身即可认证每个请求;之后无需管理任何令牌。
对于 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(默认) | 基于 Streamable HTTP/SSE 的 MCP | 需要完整的协议支持、流式传输和通知 |
| jsonrpc | 基于 HTTP POST 的 JSON-RPC 2.0 | 需要更简单、无状态的方案 |
| websocket | 基于 WebSocket 的 JSON-RPC 2.0 | 需要服务器推送事件,而不仅仅是响应 |
三种传输方式的认证机制完全相同——切换传输方式并不意味着改变认证方式。
主要特性
-
智能接口(默认开启)——将整个工具面收敛为两个调用: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,基于浏览器
-
实验室:关于信任证书、语义代码分析、策略执行、信用模型等的研究文章
许可证
MIT