Collect, process, and serve Salesforce documentation for LLM agents — using Context Engineering + MCP, not RAG.
______________________________________________________________________
概述
该系统以编程方式收集 全部 Salesforce文档来自 developer.salesforce.com (129个域名,35000多页),将其处理成结构化、精心策划的知识文件,并通过以下方式将其提供给LLM代理:
- 语境工程 --预编译的Markdown文件
_index.md路由表 - MCP服务器 --通过模型上下文协议提供12个工具+4个提示+5个资源
- 知识图谱 --53000+节点和450000+边连接SF概念、命名空间、服务和交叉引用
没有嵌入。没有矢量存储。没有盲目的分块。
______________________________________________________________________
快速开始
克劳德桌面版
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sf-docs": {
"command": "npx",
"args": ["-y", "-p", "@sfdxy/sf-documentation-knowledge", "sf-docs-mcp"],
"env": {
"SF_ACTIVE_DOMAINS": "apex-guide,apex-reference,lwc"
}
}
}
}移除 env 阻止搜索所有129个域。看 域限制 了解详情。重新启动克劳德桌面。
VS代码(GitHub副本)
添加 .vscode/mcp.json 在您的工作区中(或全局在VS Code设置中):
{
"servers": {
"sf-docs": {
"command": "npx",
"args": ["-y", "-p", "@sfdxy/sf-documentation-knowledge", "sf-docs-mcp"],
"env": {
"SF_ACTIVE_DOMAINS": "apex-guide,apex-reference,lwc"
}
}
}
}然后使用 @sf-docs 在Copilot Chat中查询Salesforce文档。
Gemini代码辅助/Gemini CLI
添加到MCP配置(~/.gemini/settings.json 或项目 .gemini/settings.json):
{
"mcpServers": {
"sf-docs": {
"command": "npx",
"args": ["-y", "-p", "@sfdxy/sf-documentation-knowledge", "sf-docs-mcp"],
"env": {
"SF_ACTIVE_DOMAINS": "apex-guide,apex-reference,lwc"
}
}
}
}光标
加入 Settings -> MCP Servers -> Add Server:
- 名称:
sf-docs - 命令:
npx -y -p @sfdxy/sf-documentation-knowledge sf-docs-mcp - 运输:
stdio - 环境:
SF_ACTIVE_DOMAINS=apex-guide,apex-reference,lwc
帆板运动
添加 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"sf-docs": {
"command": "npx",
"args": ["-y", "-p", "@sfdxy/sf-documentation-knowledge", "sf-docs-mcp"],
"env": {
"SF_ACTIVE_DOMAINS": "apex-guide,apex-reference,lwc"
}
}
}
}OpenCode
添加到您的OpenCode配置(~/.config/opencode/config.json 或项目 .opencode/config.json):
{
"mcpServers": {
"sf-docs": {
"command": "npx",
"args": ["-y", "-p", "@sfdxy/sf-documentation-knowledge", "sf-docs-mcp"],
"env": {
"SF_ACTIVE_DOMAINS": "apex-guide,apex-reference,lwc"
}
}
}
}任何MCP客户端(通用)
将您的MCP客户端指向:
npx -y -p @sfdxy/sf-documentation-knowledge sf-docs-mcp服务器使用 标准 传输,并与任何MCP客户端兼容。
为什么-p+sf-docs-mcp?\ 该软件包附带了两个二进制文件:sf-knowledge(数据管道CLI)和sf-docs-mcp(MCP服务器)。使用-p安装包,然后显式调用sf-docs-mcp二进制文件,确保您获得的是MCP服务器而不是CLI。
从源头使用
git clone https://github.com/Avinava/sf-documentation-knowledge.git
cd sf-documentation-knowledge
npm install
npm run build
npm run mcp:start______________________________________________________________________
MCP服务器
MCP服务器在启动时(约5秒)将完整的53k节点知识图和18000多个代码片段加载到内存中,并立即提供所有查询。
直接从源代码运行:
npm run mcp:start或者通过npx(不需要克隆):
npx -y -p @sfdxy/sf-documentation-knowledge sf-docs-mcp工具(12)
| 工具 | 目的 | 示例用法 |
|---|---|---|
sf_search | 在所有SF文档域中搜索 | _“查找有关平台事件的文档”_ |
sf_semantic_search | 基于人工智能的语义搜索与NLP查询理解 | _“如何批量处理记录”_ |
sf_read_topic | 阅读特定文档主题的内容 | _阅读SOQL参考页面_ |
sf_graph_query | 浏览知识图——相关文档、名称空间、服务 | _“显示System命名空间中的所有文档”_ |
sf_list_domains | 列出所有可用域,按服务类别筛选 | _“列出分析域”_ |
sf_apex_lookup | 查找带有完整文档的Apex类 | _“查找String类”_ |
sf_code_examples | 按主题、语言或域查找工作代码片段 | _“显示批处理顶点代码示例”_ |
sf_object_reference | 查找Salesforce对象和字段(6500多个参考页面) | _“查找帐户。行业字段”_ |
sf_explain_error | 使用上下文和解决步骤解码错误消息 | _“解释UNABLE_TO_LOCK_ROW”_ |
sf_limits | 调速器限制查找——15个类别的确切数字 | _“什么是SOQL限制?”_ |
sf_set_active_domains | 将所有工具限制到特定的文档域 | _只关注收入云_ |
sf_suggest_domains | 为任务描述建议相关域 | _“合同生命周期管理”_ |
提示模板(4)
| 提示 | 它的作用 | 争论 |
|---|---|---|
explore_api | 浏览Salesforce API-端点、授权、最佳实践 | api:API名称(例如,“REST API”) |
debug_apex | 调试Apex问题——类查找、错误模式、示例 | topic:类/错误(例如,“System.QueryException”) |
compare_services | 按文档覆盖范围比较Salesforce产品 | services:类别(例如,“分析与商业”) |
write_apex | 编写生产就绪的Apex——首先收集限制、模式和示例 | task:构建什么(例如,“更新帐户的批处理作业”) |
资源(5)
客服可以在不调用工具的情况下阅读这些内容:
| 资源URI | 内容 |
|---|---|
sf://overview | 系统统计数据、可用工具、快速入门指南 |
sf://domains | 所有带有描述的文档域 |
sf://namespaces | 所有具有文档计数的Apex命名空间 |
sf://services | 所有具有域计数的服务类别 |
sf://config | 当前域限制状态和运行时控件 |
______________________________________________________________________
域限制
在处理特定的Salesforce产品领域(例如,Revenue Cloud、Apex开发)时,您可以将所有工具限制为仅在相关域内搜索。这降低了噪声并提高了结果质量。
运作原理
- 启动时:设置
SF_ACTIVE_DOMAINS作为MCP客户端配置中以逗号分隔的域ID列表 - 在运行时:使用
sf_set_active_domains在不重新启动的情况下更改活动域 - 未设置:搜索全部129个域(默认,无重大更改)
- 活动集外的每个呼叫域筛选器:返回带警告的空结果(不是错误)
- sf_read_topic位于活动集之外:显示温和的音符,但仍允许阅读
发现域名
# Let the AI suggest domains for your task
sf_suggest_domains("building LWC components with Apex backend")
→ Suggests: lwc, apex-guide, apex-reference, lightning
# Set the suggested domains
sf_set_active_domains(domains: ["lwc", "apex-guide", "apex-reference", "lightning"])
# Check current state
sf_set_active_domains()
# Clear restrictions
sf_set_active_domains(clear: true)工具行为
| 工具 | 域限制行为 |
|---|---|
sf_search | 通过Orama过滤 where 子句+关键字回退过滤 |
sf_semantic_search | 通过Orama过滤 where 关于扩展+原始查询的条款 |
sf_code_examples | 通过CodeIndex筛选 domains[] 参数 |
sf_graph_query | 后置过滤器 related, namespace, context, search 结果 |
sf_explain_error | 域名感知搜索+发布过滤后的关键字结果 |
sf_apex_lookup | 警告如果 apex-reference/apex-guide 不在活动集中 |
sf_object_reference | 警告如果 sfFieldRef/object-reference 不在活动集中 |
sf_list_domains | 显示所有域,用复选标记标记活动域 |
sf_read_topic | 温和警告(仍允许在活动集外读取) |
sf_limits | 无过滤(硬编码数据,无图搜索) |
所有129个域ID
看 docs/domains.md 按服务类别或用途组织的完整列表 sf_list_domains 在运行时。
______________________________________________________________________
知识库
存储库预装了 35000多个精选降价文件 和一个 知识图谱 (53000+节点,450000+边)覆盖 129个域名 Salesforce文档。
选项A:上下文工程(基于文件)
将您的AI代理指向 _index.md 任何域文件夹中的文件。索引充当路由表,告诉AI哪些文件包含哪些主题:
knowledge/current//_index.md每个域文件夹也有一个 SKILL.md 在 skills//SKILL.md 它教人工智能代理如何导航知识。
选项B:知识图谱
图表位于 knowledge/current/graph.json 将所有文档与语义关系联系起来:
| 边缘类型 | 它连接了什么 |
|---|---|
references | 文件→ 文件(52988交叉引用) |
belongs_to_namespace | 文件→ Apex命名空间(143个命名空间) |
belongs_to_service | 域名→ 服务类别(16类) |
is_type | 文件→ DocType(api-reference, developer-guide, concept等等) |
tagged_with | 文件→ 关键字(22610个唯一关键字) |
contains | 域名→ 文件 |
用以下方法检查:
npm run graph:stats看 图形模式文档 对于具有节点/边类型、ID约定和可视化图表的完整模式。
______________________________________________________________________
数据管道
要使用最新的Salesforce版本更新知识库,请按以下顺序运行管道:
第一步:发现可用交付成果
npm run discover列出Salesforce Index API中提供的所有文档可交付成果(约127个可交付成果)。
第二步:收集原始数据
# Collect a specific domain
npm run collect -- --domain cli-commands
# Collect all configured (P0) domains
npm run collect
# Collect ALL deliverables from the SF index API (121 domains, ~31k pages)
npm run collect -- --discover步骤3:将HTML转换为Markdown
# Process a specific domain
npm run process -- --domain cli-commands
# Process ALL collected domains
npm run process -- --discover自动清理HTML、去除噪声、解析表格、格式化代码块、创建干净的Markdown,以及 编辑 任何Salesforce令牌或秘密。
步骤4:生成知识文件和图表
# Generate ALL collected domains and rebuild the full Knowledge Graph
npm run generate -- --discover构建知识图(交叉引用、名称空间、服务类别、doctype集群),生成上下文文件,并更新库存文档。
步骤5:检查图表
npm run graph:stats完整管道(一个衬里)
npm run collect -- --discover && npm run process -- --discover && npm run generate -- --discover______________________________________________________________________
CLI参考
| 命令 | 描述 |
|---|---|
npm run discover | 列出可用的SF文件交付成果 |
npm run collect | 下载原始HTML文档 |
npm run process | 转换HTML→ 带标签的Markdown |
npm run generate | 生成知识文件+图表 |
npm run graph:stats | 分析知识图谱 |
npm run mcp:start | 启动MCP服务器(stdio) |
npm run build | 编译TypeScript |
npm run test | 运行测试套件 |
npm run lint | 运行ESLint |
支持所有管道命令 --domain 用于单域处理和 --discover 用于所有域处理。
______________________________________________________________________
CI/CD
______________________________________________________________________
文档
______________________________________________________________________
许可证
MIT© 阿维纳瓦
______________________________________________________________________
库存
| 域 | 描述 | 状态 | 文件 |
|---|---|---|---|
| Salesforce现场参考指南 | 使用此简明参考快速查找 | 的标准字段的详细信息✅ 可用 | 4817 |
| Apex参考 | Apex类库参考——所有系统类和方法 | ✅ 可用 | 4623 |
| Connect REST API开发人员指南 | 将移动应用程序、内联网站和第三方web应用程序与Sal集成 | ✅ 可用 | 2465 |
| Salesforce平台的对象引用 | 获取标准对象的详细信息,以便您可以与Salesforce d进行交互 | ✅ 可用 | 1777 |
| 收入云/代理收入管理 | 产品目录、定价、计费、动态收入编排器 | ✅ 可用 | 1324 |
| OmniStudio | OmniStudio——OmniScripts、FlexCards、DataRaptors、集成程序 | ✅ 可用 | 1297 |
| 公共部门解决方案开发人员指南 | 使用公共部门解决方案API和开发人员资源统一公共服务 | ✅ 可用 | 1003 |
| Salesforce健康云开发人员指南 | 使用健康云API配置健康云控制台,这有助于护理 | ✅ 可用 | 833 |
| 营销云API | 营销云API的开发人员文档 | ✅ 可用 | 809 |
| 生命科学云开发人员指南 | 利用生命科学云的开发人员资源实现操作自动化✅ 可用 | 714 | |
| 元数据API | 元数据API-部署、检索、元数据类型 | ✅ 可用 | 693 |
| 保险开发商指南 | 了解更多关于保险开发人员来源的信息,以自动化后端工作 | ✅ 可用 | 616 |
| Visualforce开发人员指南 | 了解如何使用框架Visualforce开发自定义用户界面和应用程序 | ✅ 可用 | 609 |
| Apex开发者指南 | Apex语言指南——语法、触发器、测试、最佳实践 | ✅ 可用 | 566 |
| 金融服务云开发者指南 | 使用API和 | 将金融服务云扩展到其他Salesforce产品✅ 可用 | 527 |
| 忠诚度管理开发人员指南 | 使用忠诚度管理API和开发人员资源创建个性化忠诚度 | ✅ 可用 | 526 |
| 消费品云开发者指南 | 使用API和开发人员资源来配置、定制和扩展功能 | ✅ 可用 | 524 |
| CRM分析REST API开发人员指南 | 描述如何将查询直接发送到CRM Analytics,访问具有以下功能的数据集 | ✅ 可用 | 519 |
| 闪电光环组件开发人员指南 | 为Salesforce创建适用于Android、iOS、移动网络和Light的Aura组件 | ✅ 可用 | 491 |
| 移动SDK开发指南 | 构建访问Salesf的独立原生、React native和混合移动应用程序 | ✅ 可用 | 409 |
| 云计算 | 数据云开发人员指南——数据模型、连接器、身份解析 | ✅ 可用 | 400 |
| 程序化营销内容 | 营销云程序化内容的开发人员文档 | ✅ 可用 | 381 |
| ISV力量指南 | 规划、构建和销售AppExchange解决方案和咨询服务。 | ✅ 可用 | 356 |
| 服务云 | 服务云——案例、知识、全渠道、权利 | ✅ 可用 | 344 |
| 工具API | 工具API-代码覆盖率、调试日志、自定义字段 | ✅ 可用 | 339 |
| Einstein Discovery REST API开发人员指南 | 描述如何创建和访问爱因斯坦发现预测、发现模型 | ✅ 可用 | 312 |
| 教育云开发者指南 | Education Cloud为您提供支持所需的工具和开发人员资源 | ✅ 可用 | 308 |
| REST API | Salesforce REST API-资源、方法、组合、批处理 | ✅ 可用 | 308 |
| 非营利云开发者指南 | 使用API和开发人员资源来配置、定制和扩展功能 | ✅ 可用 | 304 |
| 数据准备配方REST API开发人员指南 | 描述如何检索、更新和安排数据准备配方。 | ✅ 可用 | 296 |
| *+99多个域名* | *看 完整清单* | ✅ 可用 | *6,901* |
*129个域名|35391个知识档案*
______________________________________________________________________
Built with Antigravity
