MCP 调用
每个数据模式空间都可以把自己的 DataAgent 以 MCP(Model Context Protocol)服务器的形式对外提供——Claude、Cursor 或任何支持 MCP 的智能体,都能把这个空间的数据查询与分析能力当作工具直接调用。
仅数据模式
MCP 调用仅对数据模式空间开放;通用模式空间(及其 key)会被 MCP 端点拒绝——通用模式请使用开放 API。
连接客户端
- 打开空间 → 点右上角 ⋮ 菜单 → MCP 调用。
- 创建一个 API key(与「API 调用」共用同一套 key,任一入口创建或吊销均生效;完整 key 只显示一次)。
- 在 MCP 客户端里配置端点,并把 key 作为 Bearer token。
端点:https://console.datyo.ai/mcp(Streamable HTTP)
Claude Code
bash
claude mcp add --transport http datyo https://console.datyo.ai/mcp \
--header "Authorization: Bearer sk-df-..."Cursor(~/.cursor/mcp.json,项目内用 .cursor/mcp.json)
json
{
"mcpServers": {
"datyo": {
"url": "https://console.datyo.ai/mcp",
"headers": { "Authorization": "Bearer sk-df-..." }
}
}
}Claude Desktop(claude_desktop_config.json——带鉴权头的远程服务需经 mcp-remote 桥接,需要 Node.js)
json
{
"mcpServers": {
"datyo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://console.datyo.ai/mcp",
"--header", "Authorization: Bearer sk-df-..."]
}
}
}OpenAI(Responses API——把 MCP 服务器作为工具挂到模型调用)
python
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4.1",
tools=[{
"type": "mcp",
"server_label": "datyo",
"server_url": "https://console.datyo.ai/mcp",
"headers": {"Authorization": "Bearer sk-df-..."},
"require_approval": "never",
}],
input="各城市销量 Top 5",
)
print(resp.output_text)JSON 配置(通用 Streamable HTTP——大多数其他客户端)
json
{
"mcpServers": {
"datyo": {
"type": "streamable_http",
"url": "https://console.datyo.ai/mcp",
"headers": { "Authorization": "Bearer sk-df-..." }
}
}
}工具列表
| 工具 | 作用 |
|---|---|
list_datasets | 空间的数据集目录——名称、描述、列结构、引擎,以及 run_sql 中可直接 FROM 的 table / table_alias(必须逐字使用,中文表名加双引号,不要音译) |
ask | 端到端自然语言问答:DataAgent 自主生成并执行 SQL、必要时生成图表,返回 {answer, sql, result, chart} |
generate_sql | 问题 → 一条 DuckDB SQL(只生成、不执行) |
run_sql | 对空间数据集执行一条 DuckDB SQL,返回 {columns, rows, took_ms} |
make_chart | 为结果集挑选并生成 Datyo 图表配置(line、bar、pie、scorecard 等),返回 {type, config} |
generate_summary | 为结果集生成自然语言结论摘要 |
挂载了 SLS 或 MaxCompute 数据集的空间还会额外提供 run_sls_query / run_maxcompute_query,契约与内置 Agent 工具完全一致。
典型编排:list_datasets → generate_sql → run_sql → make_chart / generate_summary;也可以直接调 ask,让 DataAgent 一步完成。
说明
- 结果超过 500 行会被截断(
truncated: true,并附total_rows)。 - 所有调用模型的工具(
ask、generate_sql、make_chart、generate_summary) 都与普通对话一样计费与限流,用量计入 key 所有者的账户;list_datasets与纯 SQL 执行类工具不调用模型、不产生消耗。 - 吊销后的 key 立即失效。