mcpField
C
crmcloud

crmcloud

本地服务
github.com/CloudCorpRecords商业与营销02 周前更新

关于 crmcloud

crmcloud 是通过 Salesforce REST 数据接口访问 org 数据的命令行工具和 stdio MCP 服务。它面向需要 SOQL、SOSL 查询、SObject 元数据与记录操作,以及 org 限额和令牌用户身份信息的用户,不提供 org 管理或元数据部署功能。

主要功能

  1. 01运行 SOQL 查询和 SOSL 搜索
  2. 02列出并描述 SObject
  3. 03创建、读取、更新和删除记录
  4. 04查询 org API 限额
  5. 05获取访问令牌对应的用户身份

适用场景

  1. 01使用 SOQL 或 SOSL 搜索 Salesforce 记录
  2. 02检查 SObject 字段和关系
  3. 03维护 Salesforce 记录
  4. 04查看 API 限额和令牌用户身份

MCP 相关

stdio MCP 服务提供 SOQL、SOSL、SObject 查询与描述、记录 CRUD、org 限额和用户信息工具。调用使用 SALESFORCE_INSTANCE_URL 和 SALESFORCE_ACCESS_TOKEN 访问 Salesforce REST API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-crmcloud": {
"command": "npx",
"args": [
"-y",
"@reneturcios/crmcloud"
]
}
}
}
启动命令npx -y @reneturcios/crmcloud

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/crmcloud0.1.0
ocighcr.io/cloudcorprecords/crmcloud:0.1.0

工具

10

收录的工具列表 · 更新于 1 周前

参数类型必填说明
querystring是要对 Salesforce 组织运行的 SOQL 查询。

详细介绍

crmcloud

crmcloud 是一个简洁、透明的窗口,可查看单个 Salesforce 组织。组织中的一切都基于少数几种相同的结构:带字段的 SObject、通过类型和 ID 定位的记录、用于提问的 SOQL,以及用于跨对象搜索的 SOSL。crmcloud 直接映射这些结构:运行查询、执行搜索、列出和描述对象,然后创建、读取、更新和删除记录,同时提供组织限制和当前用户的身份信息。一个二进制文件同时提供命令行界面和 stdio MCP 服务。

两个环境变量可配置每次调用:

  • SALESFORCE_INSTANCE_URL — 组织的实例 URL,例如 https://your-org.my.salesforce.com(末尾可以有斜杠)。
  • SALESFORCE_ACCESS_TOKEN — 该组织的访问令牌,会通过 Authorization: Bearer 标头发送,且绝不会打印出来。

缺少任一变量时,每次调用都会在发出任何请求前失败,并指出缺少的变量。数据调用会访问 <instance>/services/data/v59.0;用户信息调用会访问 Salesforce 所指定的 <instance>/services/oauth2/userinfo。

这是有意限定范围的核心子集:不包含组织和 scratch-org 管理、Apex 和 Lightning 工具、元数据部署/检索,以及批量数据导入/导出——这些都是更广泛的 Salesforce 工具生态中由 sf CLI 驱动的部分。crmcloud 仅涵盖 REST 数据接口。

安装

npx @reneturcios/crmcloud sobjects

或者运行容器镜像:

docker run -i -e SALESFORCE_INSTANCE_URL -e SALESFORCE_ACCESS_TOKEN ghcr.io/cloudcorprecords/crmcloud

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。

CLI

export SALESFORCE_INSTANCE_URL=https://your-org.my.salesforce.com
export SALESFORCE_ACCESS_TOKEN=<redacted>

crmcloud query "SELECT Id, Name FROM Account LIMIT 5"
crmcloud search "FIND {Acme} IN NAME FIELDS RETURNING Account(Id, Name)"
crmcloud sobjects
crmcloud describe Account
crmcloud get Account 001xx000003DGb2AAG
crmcloud create Account '{"Name":"Acme","Industry":"Technology"}'
crmcloud update Account 001xx000003DGb2AAG '{"Name":"Acme II"}'
crmcloud delete Account 001xx000003DGb2AAG
crmcloud limits
crmcloud userinfo

crmcloud --version

每条命令都会打印上游 JSON 负载。Salesforce 会以空的 204 响应更新和删除操作,因此这两条命令会改为打印简短的 {"success": true, "id": ..., "sobject": ...} 确认信息。退出代码:成功时为 0;调用失败时为 1(包括缺少环境变量或 API 错误);用法错误时为 2。

MCP 服务

一个二进制文件提供两种用途。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/crmcloud mcp

MCP 客户端配置:

{
  "mcpServers": {
    "crmcloud": {
      "command": "npx",
      "args": ["-y", "@reneturcios/crmcloud", "mcp"],
      "env": {
        "SALESFORCE_INSTANCE_URL": "https://your-org.my.salesforce.com",
        "SALESFORCE_ACCESS_TOKEN": "..."
      }
    }
  }
}
工具
工具输入返回内容
run_soql_queryquery(必填)SOQL 结果集:总数、完成标志和记录。
search_recordssearch(必填)SOSL 搜索记录。
list_sobjects(无)组织的 SObject 列表,以及 describe-global 元数据。
describe_sobjectsobject(必填)对象的字段、子关系和记录类型。
get_recordsobject、id(必填)记录的字段值。
create_recordsobject、fields(必填)上游创建结果:新记录的 id、success、errors。
update_recordsobject、id、fields(必填)成功确认信息(上游以 204 响应,且不含正文)。
delete_recordsobject、id(必填)成功确认信息(上游以 204 响应,且不含正文)。
get_org_limits(无)组织的 API 使用限制和剩余额度。
get_user_info(无)访问令牌所属用户的身份信息。

API 错误会显示 HTTP 状态码,以及组织返回时所附的 Salesforce 错误信息和错误代码。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。