关于 sf-intelligence — Salesforce org intelligence for AI agents
sf-intelligence 是面向 Salesforce 工程师和管理员的本地 MCP 服务,用于离线分析组织元数据、依赖关系和变更影响。它只读并为结论引用组件来源,也可在获得授权后执行受限的实时只读查询。
主要功能
- 01本地元数据知识库
- 02组件依赖与影响分析
- 03权限及自动化分析
- 04引用来源并标注置信度
- 05变更风险审查
- 06默认离线且只读
适用场景
- 01评估删除字段的影响
- 02梳理记录保存时的自动化顺序
- 03定位字段引用与权限问题
- 04部署前审查变更风险
MCP 相关
它通过 MCP 向 AI 客户端提供 Salesforce 组织分析工具,默认从本地元数据库离线回答。可选实时工具需明确授权,且保持只读。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y sf-intelligenceSFI_VAULTAbsolute path to the org-kb vault this server should answer from, e.g. <your-sfdx-project>/org-kb. Set this: without it the server falls back to ./org-kb relative to whatever directory your MCP host happens to launch in, and an MCP host is almost never launched inside your Salesforce project. The server still starts without it and reports what it looked for via sfi.setup_status, but it will have no org to answer about.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
sf-intelligence
在更改 Salesforce 之前,先了解会出什么问题。 向你已经在使用的 AI 助手询问有关组织的问题。sf-intelligence 在你的电脑上运行,绝不会写入你的组织,而且每个答案都会指出其依据的组件。

网站、演示和文档:sfi.auditforce.cloud · 适用于 Claude Code、Claude Desktop、Cursor、VS Code + Copilot 和 Codex。
它能回答的问题
以下问题由外部审阅者针对一个真实的生产组织(约 4,700 个组件)进行核验,方法是读取原始元数据。答案均正确。
| 提问 | 返回内容 |
|---|---|
| 这个字段在哪里使用? | 引用了该字段的每个 Apex 类、流程、布局、验证规则、报表和页面,并注明发现方式(声明、解析或启发式判断) |
| 我可以删除这个字段吗? | 给出结论(安全、有风险、会造成阻碍、需审查)及理由和相关组件,并说明未检查的内容 |
| 保存记录时会发生什么? | 指定对象和事件的保存顺序:触发器、验证规则、流程、审批,以及它们的运行顺序 |
| 哪些 Apex 已失效? | 没有任何调用方的类和触发器,并给出可信度等级(确定、很可能、不确定)及原因 |
| 谁可以查看或编辑此内容? | 汇总配置文件和权限集后的有效权限,并说明特定用户为何无法查看记录 |
以下是内置演示组织(名为 Verdant 的太阳能安装商)中的真实回答,未经修改:
我可以删除
Project__c.Risk_Score__c吗? 不安全:会造成阻碍。ProjectTriggerHandler会写入该字段,ProjectTriggerHandlerTest会读取该字段(从 Apex 中解析);Residential 页面布局会显示该字段(声明)。已检查:Apex、流程、工作流规则、验证规则、布局。未检查:分配规则、自动响应规则和升级规则,因为未检索这些内容。
用三条命令试用
npm install -g sf-intelligence
claude mcp add --scope user sf-intelligence-demo -- npx -y sf-intelligence demo # a built-in demo org, no Salesforce login; then ask your assistant a question
cd your-sfdx-project && sfi init --target-org my-org-alias # then: connect your own org (read-only retrieve)
单独运行 sfi demo 会启动一个 MCP 服务并等待主机连接;它不是在终端中运行的命令。
然后在你的 AI 主机中注册此服务;安装指南提供了各主机对应的确切配置块。也可以一键安装: 在 Cursor 中一键试用内置演示组织(无需 Salesforce 登录)。安装此服务的 AI Agent:请参阅 llms-install.md。
默认情况下,你的助手会看到 16 个工具:用于回答上述问题的 8 个工具,以及帮助它找到方向的 8 个工具(sfi.resolve、sfi.search_components、sfi.get_component、sfi.health_check、sfi.list_analyses、sfi.describe_analysis、sfi.run_analysis、sfi.live_consent)。其他所有分析都通过一个网关工具 sfi.run_analysis 提供,并由 sfi.list_analyses 列出。知识库是本地文件夹,答案可离线提供;可选的实时只读层默认关闭,只有在你开启后才会启用。关于 AI 助手能看到和不能看到的内容,请参阅隐私。
**面向工程师:**关于知识库、依赖图和助手如何协同工作,请参阅工作原理;关于有意不建模的内容,请参阅它不会做什么。
像与人交谈一样提问
你不需要知道任何项目的确切 API 名称。容错解析器会将不规范的说法 转换为正确的组件;如果它无法确定,就会向你提出澄清问题,而不是猜测:
你: emale 字段在哪里?
它: 我找到了几个与“email”匹配的结果——你指的是哪个? ·
Email__c,位于Account·Email__c,位于Contact·Alternate_Email__c,位于Lead
你: 那 paymnet 对象呢?
它:
Payment__c——有一个可信的匹配项。
你: 有“warranty fee”字段吗?
它: 没有足够可信的匹配项。你的知识库上次刷新于 2026-05-20——要从组织拉取最新元数据(
/sfi-refresh),看看它是不是新建的,还是换种说法?
它绝不会悄悄认定某个猜测是正确的。如果有多个可能的组件,它会询问你指的是哪个;如果没有匹配项,它会建议从组织刷新或停止。高匹配分数代表字符串相似度,并不意味着结果一定正确。
工作原理
只读的刷新操作会将你的组织转换为本地知识库:包含原始元数据、每个组件对应的 Markdown 页面,以及依赖关系图。从那以后,所有问题都会离线回答。你的 AI 助手会解析你使用的名称,调用 16 个默认工具之一(或使用 sfi.run_analysis 执行其他分析),并且只根据返回的内容构建答案,同时引用每个组件。
flowchart TB
subgraph REFRESH["Refresh — once, and whenever the org changes"]
direction LR
ORG[("Salesforce org")] -->|"sf project retrieve (read-only)"| SRC["source/ raw metadata"]
SRC -->|"extract + parse Apex / Flow / XML"| VAULT[("Local vault<br/>Markdown + DuckDB graph")]
end
subgraph ASK["Ask — every question, offline on your machine"]
direction TB
Q["Your question<br/>(plain language)"] --> HOST["Your AI assistant<br/>(Claude, Cursor, Copilot, Codex)"]
HOST -->|"1 · sfi.resolve"| RESOLVE["The component you meant<br/>(or a clarifying question)"]
RESOLVE --> HOST
HOST -->|"2 · a core tool, or<br/>sfi.run_analysis for the rest"| TOOLS["sfi.* analysis"]
TOOLS -->|"read"| VAULT
TOOLS -.->|"opt-in, read-only, capped"| LIVE[("Live org")]
TOOLS -->|"cited components + confidence<br/>+ what was not checked"| HOST
HOST --> ANS["Grounded answer"]
end
提问路径上的每个方框都在你的计算机上运行;连接到实时组织的虚线是唯一可能访问 Salesforce 的路径,而且只有在你选择启用后才会访问。
如何保持诚实
每个答案都基于工具输出构建,绝不依赖一般性的 Salesforce 知识。每条关系都会说明其发现方式:declared(在元数据中声明)、parsed(从 Apex、Flow 或公式源代码中解析)或 heuristic(通过模式匹配,因此采取行动前应抽查)。每个答案都会说明检查了哪些元数据类别,以及哪些未检查,因此“没有任何内容引用它”始终表示“在已检索的内容中没有找到证据”。如果请求修改组织,我们会拒绝,并改为提供适用的只读检查。对于“这意味着什么”这类问题,确定性的离线 Salesforce 通用事实概念模型(绝不使用你组织的数据)会补充带引用的结构性结论,例如主从关系级联删除,或两个 Flow 的执行顺序未定义。详情请参阅:路由和拒绝、架构和信任边界、如何提问、ADR-001 置信度标记边以及 ADR-008 确定性推理。
你可以询问什么
每个领域都会用通俗语言作答;询问“你能做什么?”即可查看实时功能图。
| 领域 | 问题示例 |
|---|---|
| 查找和识别 | “电子邮件字段在哪里?”·“付款对象叫什么?” |
| 理解 | “这个验证规则有什么作用?”·“保存 Account 时会发生什么?”(即使未检索对象本身,也能回答标准对象上的自动化;答案会说明这一点) |
| 影响和依赖关系 | “删除这个字段会有什么影响?”·“停用这个 Flow 安全吗?” |
| 权限和共享 | “为什么这个用户看不到这条记录?”·“谁可以编辑 Salary 字段?”·“谁拥有 Sales Manager 权限集?”(实时)·“用户 Jane 拥有哪些权限?”(实时)·“Support 队列里有哪些人?”(实时)·“哪些活跃用户没有分配任何权限集?”(实时) |
| 自动化和代码 | “创建 Case 时会运行什么?”·“哪些 Apex 方法没有实际的测试覆盖?”·“将这条 Apex 调试日志/治理限制异常追溯到运行它的类” |
| 决策支持(构建/更改之前) | “在这个对象上添加自动化之前,那里已经有哪些自动化在运行?”·“在这里编写 Apex,需要注意什么?”·“更改/设为必填之前,这个字段会造成什么影响?” |
| 架构师和开发者 | “是否存在循环 Apex 依赖?”·“哪些类没有测试引用?”·“Vault 是否仍与实时组织一致?” |
| 集成 | “这个组织与哪些外部系统通信?”·“列出所有出站端点” |
| 文档 | “带我了解这个组织”·“生成数据字典”·“哪些报表/对象/权限集没有描述?” |
| 健康状况和审计 | “我的 Vault 是最新的吗?”·“PII 存储在哪里?”·“组织在每次刷新之间发生了哪些变化?” |
这些内容全部是只读简报,不会向组织写入任何内容。答案中提及的每个组件都有工具调用作为依据,并附有其规范 ID(CustomObject:Account、CustomField:Account.Industry__c);每条关系也都会标注其置信度(declared、parsed 或 heuristic)。包含实时数量的完整目录可通过 sfi.capabilities(经由 sfi.run_analysis)或工具页面查看;这些数量固定记录在 eval/product-manifest.json 中,绝非手动输入。
它不会做什么
产品会明确说明自身的边界,遇到限制时会直接告诉你,而不是用通用的 Salesforce 知识掩盖问题:
- 默认离线。 Vault 工具在对话过程中绝不会调用 Salesforce。运行
/sfi-refresh(或sfi refresh)以更新元数据。选择启用的实时工具(sfi.live_*)会执行带有严格上限的只读查询,并将答案标记为live_org。这些工具默认关闭;只有在每个组织上授予一次同意(使用sfi.live_consent { grant: true },与组织和用户绑定、限定范围、有时效,并存储在本地),或设置SFI_LIVE_PLANE_ENABLED=1后才会启用。单次调用中的liveEnabled: true只表示调用意图,不代表已获得同意。混合答案会结合 vault 和实时组织的数据,并明确说明这一点。产品绝不会自行选择要查询的组织。 - 不含记录级数据。 Vault 存储的是架构和源代码,而不是记录。“上个季度有多少个 Opportunity 成交”应直接向你的组织查询。
- 静态分析,而非运行时分析。 依赖关系来自元数据和源代码。动态 SOQL、反射式 Apex 和运行时元数据查询对它不可见,因此“未找到引用”表示“没有静态证据”,而不是“确定未使用”。
- 依据规则匹配进行推理,而非使用大模型,也不是实时检查。 结构性判断会指出代码和元数据形态中的模式,并引用匹配到的 ID。Governor 或安全概念只是信号,不代表已证实存在运行时违规或漏洞;结果为空表示没有规则触发,而不是没有任何组件依赖它。
- 只读。 产品绝不会写入你的组织,也不提供写入路径。
- 经过测试的规模。 CI 会检查三项上限:在 90 s 内导入包含 10,000 个节点的图;在 10 min 内刷新包含 1,000 个
CustomObject和CustomField文件的数据;在 CI vault 上将 resolve p95 控制在 2 s 以下。超大型生产组织可能仍需缩小检索范围或使用多个 vault。
部署前审查变更(PR 门禁)
sfi review-change 是部署前的门禁工具:将 PR、package.xml 或 git diff 涉及的组件交给它,它便会针对每个组件返回风险结论(blocking / risky / review / safe)、每个组件的直接依赖项,以及应运行的测试,并按风险从高到低排序。整个过程完全离线,基于目标组织上次刷新得到的 vault。若删除的组件仍有任何依赖项,则会默认阻止(blocking);若修改的组件存在确定的依赖项,则标记为 risky;总体结论取所有组件中风险最高的一项。使用 --against 指定其他 vault,即可基于该组织的依赖图回答“这组变更会破坏 prod 中的内容吗?”同样的分析也可通过 MCP 调用 sfi.review_change。
同样的分析也以 GitHub Action 的形式提供:组合式 Action ./.github/actions/review-change 会生成 SARIF 2.1.0(问题会显示在 PR 的“Files changed”标签页和 Security 标签页中),并发布 Markdown PR 评论,同时提供返回码为 0/1/2 的门禁。将 docs/ci/review-change-pr-gate.example.yml 复制到你的组织仓库即可完成配置。它绝不会运行 sfi refresh,也不会调用 sf CLI;它只读取已构建的 vault。
立即试用——无需 Salesforce 组织
想在连接到自己的组织之前看看它的效果?(或者先在 sfi.auditforce.cloud/demo 上阅读真实回答。)
只需运行一条命令,即可通过 MCP 提供内置的合成演示组织(“Verdant Energy”,一家虚构的太阳能安装商)——完全离线、无需身份验证,也无需 sf CLI:
# Register the demo server with Claude Code (or any MCP client):
claude mcp add --transport stdio --scope user sf-intelligence-demo -- npx -y sf-intelligence demo
想用 claude -p 编写脚本?先写问题,并允许使用该服务的工具,否则运行后不会有回答:claude -p "What happens when I save a Project?" --allowedTools mcp__sf-intelligence-demo。交互式会话则会先询问一次。
然后可以问它这些问题:
- 保存 Project 时会发生什么?
- 删除
Invoice__c.Amount__c会造成什么问题?- 为什么 Installer 看不到 Invoice?
- 哪些 Apex 代码存在 governor 限制风险?
首次运行时,会先构建演示库(缓存于 ~/.sf-intelligence/demo),然后服务才会作答;此外,npx 还需要下载软件包,因此首次启动可能需要 10-20 秒;之后每次运行都会立即启动。如果你的客户端在启动时放弃等待(Codex 的默认等待时间约为 10 秒),请提高启动超时时间(Codex 中的 startup_timeout_sec,Claude Code 中的 MCP_TIMEOUT),或再次启动。没有任何数据会离开你的计算机。准备好连接真实组织后,请参阅下方的安装。
安装
各 AI 助手的分步设置指南(含可直接复制粘贴的配置):sfi.auditforce.cloud/getting-started。
sf-intelligence 通过 npm 以 sf-intelligence 发布——它既是 MCP 服务,也是 sfi 命令行工具。只需向 MCP 客户端注册一次该服务,然后通过 sfi 使用所有功能(在 Claude Code 中,也可以使用封装了这些功能的 /sfi-* 斜杠命令)。
要求:Node.js 20+ 和已通过身份验证的 Salesforce CLI(sf),并且该 CLI 已指向你要创建知识库的组织。其余依赖项均由 npx 获取。
注册 MCP 服务
每个宿主都会启动同一条命令,但各自读取格式不同的配置文件。选择你的宿主——各宿主、各平台的完整详情(macOS 和 Windows 上的确切路径、日志位置,以及无法连接时的处理方法)请参阅 docs/guides/mcp-hosts.md。错误消息及其处理方法请参阅 docs/guides/troubleshooting.md。从早期版本升级:docs/guides/upgrading.md。
| 宿主 | 配置文件 | 顶层键 |
|---|---|---|
| Claude Code | .mcp.json(项目级)或 ~/.claude.json | mcpServers |
| Claude Desktop | claude_desktop_config.json | mcpServers |
| Cursor | .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json | mcpServers |
| Codex | ~/.codex/config.toml | [mcp_servers.*](TOML) |
| VS Code + GitHub Copilot | .vscode/mcp.json | servers |
| Cline(VS Code 扩展) | cline_mcp_settings.json(通过 Cline → MCP Servers → Configure) | mcpServers |
Claude Code — 在你的 Salesforce DX 仓库中添加项目级配置(会在仓库根目录写入 .mcp.json;其中包含你的保险库绝对路径,因此每位队友只需运行一次相同的命令,而无需提交该文件):
claude mcp add --scope project sf-intelligence -- \
npx -y sf-intelligence mcp --vault "$PWD/org-kb"
Claude Desktop — 将此配置块添加到客户端的 MCP 配置中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json),然后退出并重新打开应用:
{
"mcpServers": {
"sf-intelligence": {
"command": "npx",
"args": ["-y", "sf-intelligence", "mcp", "--vault", "/abs/path/to/org-kb"]
}
}
}
Cursor — 将相同的配置块放入项目根目录下的 .cursor/mcp.json(或放入 ~/.cursor/mcp.json,以供所有项目使用)。Cursor 不会自动重新加载该文件:请在 Settings → MCP 中关闭再开启服务,或重启 Cursor。
VS Code + GitHub Copilot — 在项目中创建 .vscode/mcp.json。请注意,顶层键是 servers,而不是 mcpServers;在此处粘贴 Claude 配置块虽然能够解析成功,却不会注册任何服务:
{
"servers": {
"sf-intelligence": {
"type": "stdio",
"command": "npx",
"args": ["-y", "sf-intelligence", "mcp"],
"cwd": "${workspaceFolder}",
"env": { "SFI_VAULT": "${workspaceFolder}/org-kb" }
}
}
}
Codex — 运行 codex mcp add sf-intelligence -- npx -y sf-intelligence mcp --vault /abs/path/to/org-kb,或在 ~/.codex/config.toml 中使用等效的 TOML 配置。
Cline(VS Code 扩展)— 打开 Cline → MCP Servers → Configure MCP Servers,这会打开其 cline_mcp_settings.json;粘贴上面的 Claude Desktop 配置块(使用相同的 mcpServers 键和绝对路径的 --vault)。Cline 会在保存时重新加载文件。
重启客户端。现在即可使用 sfi.* 工具——询问“你能做什么?”即可查看实时工具映射。
始终传入绝对路径的
--vault。 服务会根据自身的工作目录查找./org-kb,而大多数宿主会替你选择该目录——Claude Desktop 和用户级 VS Code 服务从不会在你的 Salesforce 项目中运行。--vault可让配置在任何位置正常工作。首次运行
sfi refresh之前,服务会以设置模式启动:它会连接并提供一个工具sfi.setup_status,告知聊天助手接下来要运行什么。这是预期行为——只需让你的助手为你完成设置。
提示:
npm install -g sf-intelligence会在你的 PATH 中添加sfi命令,因此首次设置时可以运行sfi init/sfi refresh,而不必使用更长的npx -y sf-intelligence …形式。
可选:完整工具列表与精简核心列表
默认使用包含 16 个工具的核心列表(包含 sfi.live_consent)。其 tools/list 大约为 21 KB(测试会确保小于 40 KB);完整列表大约为 525 KB,宿主在提出第一个问题前就要承担这部分开销。非核心工具仍可通过 sfi.run_analysis 使用(字节完全相同),但在核心列表模式下不能直接调用。设置 SFI_TOOL_PROFILE=full(或在上面的配置块中添加 "env": { "SFI_TOOL_PROFILE": "full" }),即可公布并直接调用完整工具列表。完整参考请参阅 docs/configuration.md。所有 sfi 命令的说明请参阅 docs/cli.md。
安装为 Claude Code 插件
上面的 MCP 注册会提供 sfi.* 工具。将
sf-intelligence 安装为 Claude Code 插件,还可获得 26 个
技能,这些技能会在出现 Salesforce 相关词汇时自动激活(无需记住工具
名称),以及 5 个斜杠命令(/sfi-onboard、/sfi-init、/sfi-refresh、
/sfi-status、/sfi-field-audit),用于封装 sfi CLI。请从此仓库的
市场中安装:
/plugin marketplace add PranavNagrecha/Salesforce-Intelligence
/plugin install sf-intelligence@sf-intelligence
运行 /reload-plugins(或重启 Claude Code),即可在当前会话中加载插件;
/plugin list 可确认插件已安装并启用。插件清单注册了与上文相同的 MCP
服务,因此无需单独执行 claude mcp add。不过,它无法知道你的知识库位于何处:
它不会传递 --vault,因此你需要将 SFI_VAULT 设置为 org-kb 文件夹的
绝对路径(在 shell 配置文件中,或在宿主的 env 块中设置),或者从包含
org-kb 的文件夹启动 Claude Code。如果返回的答案为空,请询问“服务是否已
设置?”,它会告诉你查找了哪里。
插件包含技能和斜杠命令,但不包含 .claude/agents/ 下的 Agent 文件:
/sfi-field-audit 无需这些文件即可运行,并会直接执行审计;将此仓库克隆副本中的
两个 salesforce-field-*.md 文件复制到项目的 .claude/agents/,即可启用
并行执行路径。
首次运行
请在每个组织对应的仓库中操作——也就是你要纳入知识库的 Salesforce DX
项目(包含 sfdx-project.json 的目录)。首次刷新为只读操作:它会检索元数据并
构建本地知识库,不会部署或修改 Salesforce 数据。sfi init 会保留
org-kb/meta/manifest.json、config.json 和 version.txt 供你提交,并忽略知识库中
其余内容(源代码、图谱、快照及其他 meta/ 文件),因为这些属于组织数据。
# 0. New here? The guided path walks install → auth → init → refresh → ask,
# with real starter questions at the end.
sfi quickstart
# 1. Create the local org-kb/ vault layout and record which sf org alias to use.
sfi init
# 2. Retrieve metadata and build the vault.
sfi refresh --target-org my-org-alias
# 3. Confirm vault freshness, source-tree hash, and component counts any time.
sfi status
# sfi doctor checks the sf CLI, the vault, target-org auth, freshness, and the
# graph file, and prints an actionable fix for each problem.
sfi doctor
刷新需要多长时间? 小型沙盒只需几分钟即可构建完成;生产规模的组织在默认
设置下通常需要 约 10–12 分钟——耗时主要在检索上。默认构建还会运行解析器级别的
Apex 处理(每几百个类需要几秒),并拉取按实际使用情况排名前 500 的报表/仪表板
(报表较多的组织需要一两分钟;--no-reports 可跳过此步骤)。如果大型组织需要尽快
完成?sfi refresh --staged 可在几秒内生成骨架知识库,并在几分钟内处理完十个优先级
最高的元数据类型,随后在后台完成完整构建——请参阅
首次刷新指南。默认情况下,重新刷新会重新提取数据并
完整重建图谱(结果始终与全新构建一致);--incremental 会复用每个文件的解析缓存,
以更快地获得相同结果;--incremental-graph 还会只将有变更的节点/边重新导入图谱,
而不是重建图谱——两者结合使用效果最佳。
--types <list> 可将任一标志的作用范围限定为指定的元数据类型(例如:
sfi refresh --types Flow --incremental-graph);限定范围的刷新只会操作请求的类型,
知识库中的其他所有类型均保持不变。
未进行全局安装?请在每条命令前加上 npx -y sf-intelligence,例如:
npx -y sf-intelligence init。
然后,在已注册的任意 MCP 客户端中,询问知识库能够回答的问题:
Account 对象有哪些字段?
删除
CustomField:Account.Industry__c会造成什么影响?为什么 Standard User 配置文件无法查看 Opportunities?
带我了解这个组织。
将 sf-intelligence 作为 Claude Code 插件运行? 同样的操作也可通过斜杠命令
执行——/sfi-onboard(引导式首次运行)、/sfi-init、
/sfi-refresh、/sfi-status——并且出现 Salesforce 相关词汇时,指导技能会自动激活。
如果你还没有通过这种方式安装,请参阅上方的安装为 Claude Code
插件。
通过 HTTP 提供服务(只读)
sfi mcp 是由 MCP 客户端启动的 stdio 服务。若要与其他机器或客户端共享同一个知识库,该服务也支持流式 HTTP:
# From the vault directory: prints a bearer token once, listens on 127.0.0.1:8787.
sfi serve --http --generate-token
# Team path: JSON token→identity map (annotation writes attribute to the caller).
# sfi serve --http --tokens-file ./tokens.json
远程访问模式经过刻意的严格限制:每个请求都必须提供 bearer 令牌(单个令牌可用 --token / --generate-token,也可使用 --tokens-file 按调用方区分身份);除非传入 --host,否则只绑定到回环地址(非回环主机地址会发出警告,并拒绝在无令牌的情况下运行);而且 HTTP 上的实时操作层会被彻底禁用——即使主机已获得持续实时授权,远程调用方也绝不可能消耗 Salesforce API 配额。在服务运行期间刷新是安全的:新图谱切换完成前,读取请求仍由旧图谱处理。
为知识库添加记忆
# One-time, from the vault directory: inits a git repo INSIDE org-kb/
# (rebuildable surfaces like graph/ and snapshots/ are gitignored).
sfi vault git enable
从此之后,每次刷新都会将知识库的源文件和渲染后的 Markdown 保存下来,因此“这个组件是什么时候变更的?”和“它之前是什么样的?”都可以通过知识库自身的历史记录回答(通过 sfi.run_analysis 调用 sfi.component_history 和 sfi.component_as_of)。没有 git 的知识库也会如实返回结果(available: false,并附上启用提示),绝不会报错。
隐私
产品的所有操作都在你的机器上完成。知识库(org-kb/)是本地文件夹;MCP 服务默认将 SFI_NETWORK_MODE=off,回答知识库问题时不会发起网络调用。只有你主动要求的操作才会发出外部请求:sfi refresh 期间检索 Salesforce、你授权后执行实时只读查询,以及仅在 SFI_UPDATE_CHECK=1 时进行 npm 更新检查。
有一点它无法控制:你的 AI 助手会看到每个问题和每个回答,就像它会看到你粘贴给它的其他内容一样。回答中的对象、字段和类名,以及判断结果,都会根据相应条款发送给该助手的服务提供商(Claude、Cursor、GitHub Copilot、Codex)。sf-intelligence 本身不会上传任何内容。请使用经公司批准、可处理其元数据的助手。
此公开代码仓库不包含任何组织数据:每次发布时,隐私防护程序都会扫描发布内容;若发现真实组织标识符泄露,构建就会失败。你存入知识库的内容归你所有。
卸载
- 从主机中移除服务:
claude mcp remove sf-intelligence(Claude Code;如果注册时使用了该方式,请添加--scope project),或从 安装 中指定的主机配置文件删除sf-intelligence条目。如果你添加了sf-intelligence-demo,也用同样的方式移除。 - 安装了 Claude Code 插件?运行
/plugin uninstall sf-intelligence@sf-intelligence。 - 正在运行漂移监视器?在已建立知识库的项目中运行
sfi watch stop。 - 全局安装了 CLI?运行
npm uninstall -g sf-intelligence。(npx不会永久安装任何内容。) - 删除数据:每个已建立知识库的 Salesforce 项目中的
org-kb/、~/.sf-intelligence/(演示知识库、实时授权记录、反馈和路由缺口日志),以及 (如果你为跨组织比较注册了知识库)~/sf-intelligence-vaults/。
Salesforce 组织中不会留下任何内容;本产品从未向其中写入数据。
路线图
目前产品按设计仅支持只读;这是未来工作的主要方向。
- 更深入的代码解析。 目前已解析的 Apex 调用边会保留被调用的方法名;其余复合工具仍按类粒度进行分析——下一步是实现这些工具间的方法级可达性分析。
- 谨慎地支持写入。 只读端成熟后,增加少量可选的提案工具(例如起草权限集差异或验证规则修改,供人工审核)。默认设置始终是只读。
(路线图中较早的条目已交付:基于 Tooling API 的知识库过时检测现已由 sfi watch 守护进程和漂移徽标提供;远程只读服务通过
sfi serve --http 提供。)
反馈
答案不理想或有误,或者问题无法路由?这是你能反馈的最有用的信息。 反馈会在本地记录——不会向外发送任何信息:
sfi feedback mark "where is the SSN field used" --wrong # or --weak
sfi feedback export # → sfi-feedback.json (scrubbed)
sfi feedback export 会将本地路由缺口日志和你的评分打包到一个文件中,并移除组织的个人身份信息(PII),例如邮箱、URL 和记录 ID——组件/API 名称会保留,因为它们是重要线索。默认情况下,导出内容仅限当前保险库:日志文件是整台机器共用的(~/.sf-intelligence/),但每条缺口记录都会标明所针对的保险库,导出时只包含当前保险库的缺口(文件会报告排除了多少条)。--all 会导出整台机器共用的完整日志——如果你在多个组织间工作,请在分享前检查内容。请在 https://github.com/PranavNagrecha/Salesforce-Intelligence/issues 分享该文件(或直接描述缺口)。
贡献
Bug 报告、功能请求和提取器缺口分别有对应的问题模板;拉取请求也有一份简短清单。开发环境设置、测试命令以及添加工具的规则见 CONTRIBUTING.md;仓库结构图见 REPO-STRUCTURE.md。安全问题请通过私密安全公告提交,切勿发布为公开问题(参见 SECURITY.md)。
许可证
sf-intelligence 采用 MIT License 授权(另请参阅 NOTICE)。0.5.0 之前的版本附带 Commons Clause 条款;该条款已在 0.5.0 中移除。简单来说:
- ✅ 可免费用于任何目的,包括商业用途: 使用、复制、修改、合并、发布、分发、再许可和销售。请保留版权和许可证声明。(此为通俗易懂的摘要;具体以 LICENSE 为准。本内容不构成法律建议。)
文档
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。