关于 crmcloud
crmcloud 是通过 Salesforce REST 数据接口访问 org 数据的命令行工具和 stdio MCP 服务。它面向需要 SOQL、SOSL 查询、SObject 元数据与记录操作,以及 org 限额和令牌用户身份信息的用户,不提供 org 管理或元数据部署功能。
主要功能
- 01运行 SOQL 查询和 SOSL 搜索
- 02列出并描述 SObject
- 03创建、读取、更新和删除记录
- 04查询 org API 限额
- 05获取访问令牌对应的用户身份
适用场景
- 01使用 SOQL 或 SOSL 搜索 Salesforce 记录
- 02检查 SObject 字段和关系
- 03维护 Salesforce 记录
- 04查看 API 限额和令牌用户身份
MCP 相关
stdio MCP 服务提供 SOQL、SOSL、SObject 查询与描述、记录 CRUD、org 限额和用户信息工具。调用使用 SALESFORCE_INSTANCE_URL 和 SALESFORCE_ACCESS_TOKEN 访问 Salesforce REST API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
10收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 要对 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_query | query(必填) | SOQL 结果集:总数、完成标志和记录。 |
search_records | search(必填) | SOSL 搜索记录。 |
list_sobjects | (无) | 组织的 SObject 列表,以及 describe-global 元数据。 |
describe_sobject | sobject(必填) | 对象的字段、子关系和记录类型。 |
get_record | sobject、id(必填) | 记录的字段值。 |
create_record | sobject、fields(必填) | 上游创建结果:新记录的 id、success、errors。 |
update_record | sobject、id、fields(必填) | 成功确认信息(上游以 204 响应,且不含正文)。 |
delete_record | sobject、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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。