Token导航 LogoToken导航TokenDH.com
Datacloud Code MCP logo
运维云端未说明官方级别未说明来源级核验

Datacloud Code MCP

MCP Server

一个基于Salesforce Data Cloud的MCP服务器,提供搜索和执行功能,用于通过JavaScript代码动态探索和执行Data Cloud API操作。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
云服务TypeScriptAPI集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dsouzaAnush

提供方

dsouzaAnush

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

数据云代码MCP

Salesforce数据云(Data360)MCP服务器使用 Cloudflare代码模式 模式:两个工具(search + execute),每个都采用一个JavaScript异步箭头函数,无论API表面大小如何,都有一个固定的约1吨的工具足迹。

运作原理

该服务器没有公开数百个端点级工具,而是为代理提供了一个稳定的两步循环:

  1. search --代理编写JavaScript来过滤OpenAPI规范并发现数据云端点。
  2. execute --代理编写JavaScript调用 salesforce.request() 以进行经过身份验证的API请求。

这两个工具都在 node:vm 带有受限全局变量的沙盒。完整的OpenAPI规范从未进入模型上下文——代理通过编程方式对其进行探索 search().

覆盖范围

约185个API系列的数据云操作:

家庭示例
查询SQL查询(v1/v2/v3)、配置文件、见解、数据图
DMO/水数据模型对象和数据湖对象的CRUD
映射DMO字段映射、批量映射、标准映射
数据流列出、创建、更新、删除、触发运行
连接器列表类型、元数据、CRUD连接、测试
计算洞察CRUD、运行、验证、启用/禁用
片段CRUD、发布、成员、重叠分析
身份解析CRUD规则集、发布、运行、匹配历史记录
激活CRUD激活+目标、同步、历史
数据转换CRUD、运行、验证、计划
语义数据模型模型、对象、维度、度量、指标、关系、查询
数据空间CRUD空间、成员管理
数据工具包列表、清单、部署、取消部署、组件状态
GDPR 数据保护访问权、批量读取权、擦除请求权
搜索索引CRUD,混合全文查询
事件驱动单次和批量a360事件发布
数据操作CRUD操作+目标

快速开始

npm install
npm run build
npm test        # 27 tests across 5 suites

身份验证选项

选项1:直接访问令牌(与d360 mcp服务器的环境变量相同)

CDP_ACCESS_TOKEN= CDP_INSTANCE_URL= npm run dev

选项2:OAuth客户端凭据

CDP_CLIENT_ID= CDP_CLIENT_SECRET= CDP_LOGIN_URL=https://login.salesforce.com npm run dev

选项3:OAuth web流

  1. SALESFORCE_OAUTH_CLIENT_ID, SALESFORCE_OAUTH_CLIENT_SECRET, SALESFORCE_OAUTH_REDIRECT_URI.env.
  2. 启动服务器: npm run dev
  3. 打开 /oauth/start?user_id=default 并完成登录。

选项4:来自CLI的种子令牌

npm run seed:token     # reads sf CLI auth or env vars
TOKEN_STORE_PATH=./data/tokens.integration.json \
TOKEN_ENCRYPTION_KEY_BASE64='' npm run dev

运行服务器

PORT=3000 HOST=127.0.0.1 npm run dev
curl -sS http://127.0.0.1:3000/healthz

冒烟测试

MCP_URL=http://127.0.0.1:3000/mcp USER_ID=default npm run smoke:mcp

示例通话

搜索:按标签查找端点

{
  "name": "search",
  "arguments": {
    "code": "async () => {\n  const results = [];\n  for (const [path, methods] of Object.entries(spec.paths)) {\n    for (const [method, op] of Object.entries(methods)) {\n      if (op.tags?.some(t => t.toLowerCase().includes('segment'))) {\n        results.push({ method: method.toUpperCase(), path, summary: op.summary });\n      }\n    }\n  }\n  return results;\n}"
  }
}

搜索:检查端点架构

{
  "name": "search",
  "arguments": {
    "code": "async () => {\n  const op = spec.paths['/services/data/v64.0/ssot/query-sql']?.post;\n  return { summary: op?.summary, requestBody: op?.requestBody };\n}"
  }
}

执行:运行SQL查询

{
  "name": "execute",
  "arguments": {
    "code": "async () => {\n  return await salesforce.request({\n    method: 'POST',\n    path: '/services/data/v64.0/ssot/query-sql',\n    body: { sql: 'SELECT FirstName__c FROM UnifiedIndividual__dlm LIMIT 5' }\n  });\n}"
  }
}

执行:链接多个调用

{
  "name": "execute",
  "arguments": {
    "code": "async () => {\n  const list = await salesforce.request({ method: 'GET', path: '/services/data/v64.0/ssot/segments' });\n  const first = list.body?.data?.[0];\n  if (!first) return { message: 'No segments' };\n  return await salesforce.request({ method: 'GET', path: '/services/data/v64.0/ssot/segments/' + first.id });\n}"
  }
}

MCP客户端集成

{
  "mcpServers": {
    "datacloud-code-mcp": {
      "transport": "streamable_http",
      "url": "http://127.0.0.1:3000/mcp",
      "headers": { "x-user-id": "default" }
    }
  }
}

安全模型

  • 诱变方法(POST, PATCH, PUT, DELETE)除非被阻止 ALLOW_WRITES=true.
  • salesforce.request() 只允许出站HTTP到经过身份验证的实例的主机名+ *.salesforce.com + *.force.com.
  • 敏感的标头/正文键在工具输出中被编辑。
  • 用户代码在 node:vm 沙盒没有 require, process, global,或文件系统访问。
  • 沙盒强制执行 SANDBOX_TIMEOUT_MS (默认15秒)以防止执行失控。

部署到Heroku

heroku create
heroku config:set TOKEN_ENCRYPTION_KEY_BASE64=$(node -e "console.log(require('crypto').randomBytes(32).toString('base64'))")
heroku config:set ALLOW_WRITES=false
heroku config:set CDP_ACCESS_TOKEN= CDP_INSTANCE_URL=
git push heroku main

然后将您的MCP客户端指向 https://.herokuapp.com/mcp.

配置

.env.example 对于所有可用的环境变量。

项目布局

src/
  index.ts              HTTP server + MCP session management
  mcp-server.ts         Tool registration (search, execute, auth_status)
  config.ts             Zod-parsed environment config
  types.ts              Shared TypeScript interfaces
  logger.ts             Pino logger
  auth/
    oauth-service.ts    Salesforce OAuth web flow + token exchange
    auth-modes.ts       Strategy resolver (direct/client-cred/password/oauth)
    token-store.ts      AES-256-GCM encrypted token persistence
  schema/
    datacloud-schema-service.ts   Catalog loader, merger, $ref resolver
    catalog.ts                    OpenAPI → PlatformOperation parser
    spec-processor.ts             $ref resolution + spec processing (Cloudflare pattern)
    bundled-spec.ts               Resolve bundled YAML paths
    data360-api.bundled.yaml      Base OpenAPI spec (~35 endpoints)
    d360-extras.yaml              Extended endpoints (~150 more operations)
  sandbox/
    runner.ts           node:vm sandbox executor
    sf-client.ts        salesforce.request() injectable client
    safe-fetch.ts       Hostname-allow-listed fetch wrapper
    truncate.ts         Response truncation
  execute/
    datacloud-executor.ts   Legacy structured executor (kept for reference)
    redaction.ts            Body/header redaction helpers
    http-policy.ts          Retry + read-cache helpers
  safety/
    write-confirmation.ts   HMAC write tokens (used by legacy executor)
  search/
    search-index.ts         BM25 search index (kept for potential reuse)
  utils/
    crypto.ts               AES-256-GCM encrypt/decrypt
    headers.ts              Header value resolver
tests/                      Vitest test suites
scripts/                    Smoke test + token seed scripts
docs/                       Reference docs (Data Cloud guide, Postman)

参考文献

目录标签

目录标签

云服务TypeScriptAPI集成Salesforce本地部署DataCloudAPI管理JavaScript执行

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP