Sf Documentation Knowledge
Salesforce documentation knowledge system β collect, process, and serve SF docs for LLM agents via MCP + Context Engineering
Ask AI about Sf Documentation Knowledge
Powered by Claude Β· Grounded in docs
I know everything about Sf Documentation Knowledge. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Collect, process, and serve Salesforce documentation for LLM agents β using Context Engineering + MCP, not RAG.
Overview
This system programmatically collects all Salesforce documentation from developer.salesforce.com (129 domains, 35,000+ pages), processes it into structured, curated knowledge files, and serves them to LLM agents via:
- Context Engineering β Pre-compiled Markdown files with
_index.mdrouting tables - MCP Server β 12 tools + 4 prompts + 5 resources via Model Context Protocol
- Knowledge Graph β 53,000+ nodes and 450,000+ edges connecting SF concepts, namespaces, services, and cross-references
No embeddings. No vector stores. No blind chunking.
Quick Start
Claude Desktop
Add to ~/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"
}
}
}
}
Remove the
envblock to search all 129 domains. See Domain Restriction for details.
Restart Claude Desktop.
VS Code (GitHub Copilot)
Add to .vscode/mcp.json in your workspace (or globally in VS Code settings):
{
"servers": {
"sf-docs": {
"command": "npx",
"args": ["-y", "-p", "@sfdxy/sf-documentation-knowledge", "sf-docs-mcp"],
"env": {
"SF_ACTIVE_DOMAINS": "apex-guide,apex-reference,lwc"
}
}
}
}
Then use @sf-docs in Copilot Chat to query Salesforce documentation.
Gemini Code Assist / Gemini CLI
Add to your MCP config (~/.gemini/settings.json or project .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"
}
}
}
}
Cursor
Add in Settings -> MCP Servers -> Add Server:
- Name:
sf-docs - Command:
npx -y -p @sfdxy/sf-documentation-knowledge sf-docs-mcp - Transport:
stdio - Environment:
SF_ACTIVE_DOMAINS=apex-guide,apex-reference,lwc
Windsurf
Add to ~/.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
Add to your OpenCode config (~/.config/opencode/config.json or project .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"
}
}
}
}
Any MCP Client (Generic)
Point your MCP client to:
npx -y -p @sfdxy/sf-documentation-knowledge sf-docs-mcp
The server uses stdio transport and is compatible with any MCP client.
Why
-p+sf-docs-mcp?
The package ships two binaries:sf-knowledge(the data pipeline CLI) andsf-docs-mcp(the MCP server). Using-pinstalls the package and then explicitly calls thesf-docs-mcpbinary, ensuring you get the MCP server and not the CLI.
Use from Source
git clone https://github.com/Avinava/sf-documentation-knowledge.git
cd sf-documentation-knowledge
npm install
npm run build
npm run mcp:start
MCP Server
The MCP server loads the full 53k-node knowledge graph and 18,000+ code snippets into memory on startup (~5s) and serves all queries instantly.
Run directly from source:
npm run mcp:start
Or via npx (no clone required):
npx -y -p @sfdxy/sf-documentation-knowledge sf-docs-mcp
Tools (12)
| Tool | Purpose | Example Usage |
|---|---|---|
sf_search | Search across all SF documentation domains | "Find docs about Platform Events" |
sf_semantic_search | AI-powered semantic search with NLP query understanding | "how to process records in bulk" |
sf_read_topic | Read a specific documentation topic's content | Read the SOQL reference page |
sf_graph_query | Navigate the knowledge graph β related docs, namespaces, services | "Show all docs in the System namespace" |
sf_list_domains | List all available domains, filter by service category | "List analytics domains" |
sf_apex_lookup | Look up an Apex class with full documentation | "Look up the String class" |
sf_code_examples | Find working code snippets by topic, language, or domain | "Show batch apex code examples" |
sf_object_reference | Look up Salesforce objects and fields (6,500+ ref pages) | "Look up Account.Industry field" |
sf_explain_error | Decode error messages with context and resolution steps | "Explain UNABLE_TO_LOCK_ROW" |
sf_limits | Governor limits lookup β exact numbers for 15 categories | "What are SOQL limits?" |
sf_set_active_domains | Restrict all tools to specific documentation domains | Focus on revenue-cloud only |
sf_suggest_domains | Suggest relevant domains for a task description | "contract lifecycle management" |
Prompt Templates (4)
| Prompt | What It Does | Arguments |
|---|---|---|
explore_api | Walk through a Salesforce API β endpoints, auth, best practices | api: API name (e.g., "REST API") |
debug_apex | Debug an Apex issue β class lookup, error patterns, examples | topic: class/error (e.g., "System.QueryException") |
compare_services | Compare Salesforce products by documentation coverage | services: categories (e.g., "analytics vs commerce") |
write_apex | Write production-ready Apex β gathers limits, patterns, examples first | task: what to build (e.g., "batch job to update Accounts") |
Resources (5)
Agents can read these without making a tool call:
| Resource URI | Content |
|---|---|
sf://overview | System stats, available tools, quick start guide |
sf://domains | All documentation domains with descriptions |
sf://namespaces | All Apex namespaces with doc counts |
sf://services | All service categories with domain counts |
sf://config | Current domain restriction state and runtime controls |
Domain Restriction
When working on a specific Salesforce product area (e.g., Revenue Cloud, Apex development), you can restrict all tools to only search within relevant domains. This reduces noise and improves result quality.
How It Works
- At startup: Set
SF_ACTIVE_DOMAINSas a comma-separated list of domain IDs in your MCP client config - At runtime: Use
sf_set_active_domainsto change the active domains without restarting - Not set: All 129 domains are searched (default, no breaking change)
- Per-call domain filter outside active set: Returns empty results with a warning (not an error)
- sf_read_topic outside active set: Shows a gentle note but still allows reading
Discovering Domains
# 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)
Behavior by Tool
| Tool | Domain Restriction Behavior |
|---|---|
sf_search | Filters via Orama where clause + keyword fallback filtering |
sf_semantic_search | Filters via Orama where clause on expanded + original queries |
sf_code_examples | Filters via CodeIndex domains[] parameter |
sf_graph_query | Post-filters related, namespace, context, search results |
sf_explain_error | Domain-aware search + post-filtered keyword results |
sf_apex_lookup | Warns if apex-reference/apex-guide not in active set |
sf_object_reference | Warns if sfFieldRef/object-reference not in active set |
sf_list_domains | Shows all domains, marks active ones with checkmark |
sf_read_topic | Gentle warning (still allows reads outside active set) |
sf_limits | No filtering (hardcoded data, no graph search) |
All 129 Domain IDs
See docs/domains.md for the full list organized by service category, or use sf_list_domains at runtime.
Knowledge Base
The repository comes pre-loaded with 35,000+ curated markdown files and a Knowledge Graph (53,000+ nodes, 450,000+ edges) covering 129 domains of Salesforce documentation.
Option A: Context Engineering (File-based)
Point your AI agent to the _index.md file in any domain folder. The index acts as a routing table telling the AI which files contain which topics:
knowledge/current/<domain-name>/_index.md
Each domain folder also has a SKILL.md in skills/<domain-name>/SKILL.md that teaches AI agents how to navigate the knowledge.
Option B: Knowledge Graph
The graph at knowledge/current/graph.json connects all documentation with semantic relationships:
| Edge Type | What It Connects |
|---|---|
references | Document β Document (52,988 cross-references) |
belongs_to_namespace | Document β Apex Namespace (143 namespaces) |
belongs_to_service | Domain β Service Category (16 categories) |
is_type | Document β DocType (api-reference, developer-guide, concept, etc.) |
tagged_with | Document β Keyword (22,610 unique keywords) |
contains | Domain β Document |
Inspect it with:
npm run graph:stats
See Graph Schema Documentation for the full schema with node/edge types, ID conventions, and a visual diagram.
Data Pipeline
To update the knowledge base with the latest Salesforce releases, run the pipeline in order:
Step 1: Discover Available Deliverables
npm run discover
Lists all documentation deliverables available from the Salesforce Index API (~127 deliverables).
Step 2: Collect Raw Data
# 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
Step 3: Process HTML to Markdown
# Process a specific domain
npm run process -- --domain cli-commands
# Process ALL collected domains
npm run process -- --discover
Automatically cleans HTML, strips noise, parses tables, formats code blocks, creates clean Markdown, and redacts any Salesforce tokens or secrets.
Step 4: Generate Knowledge Files & Graph
# Generate ALL collected domains and rebuild the full Knowledge Graph
npm run generate -- --discover
Builds the knowledge graph (cross-references, namespaces, service categories, doctype clustering), generates context files, and updates inventory docs.
Step 5: Inspect the Graph
npm run graph:stats
Full Pipeline (One-liner)
npm run collect -- --discover && npm run process -- --discover && npm run generate -- --discover
CLI Reference
| Command | Description |
|---|---|
npm run discover | List available SF documentation deliverables |
npm run collect | Download raw HTML documentation |
npm run process | Convert HTML β Markdown with tagging |
npm run generate | Generate knowledge files + graph |
npm run graph:stats | Analyze the knowledge graph |
npm run mcp:start | Start the MCP server (stdio) |
npm run build | Compile TypeScript |
npm run test | Run test suite |
npm run lint | Run ESLint |
All pipeline commands support --domain <name> for single-domain processing and --discover for all-domain processing.
CI/CD
| Workflow | Trigger | What It Does |
|---|---|---|
| CI | Push / PR to master | Build, test, lint, MCP smoke test |
| Release | Push v* tag | Build, test, publish to npm, create GitHub release |
| Update Knowledge | Weekly (Sunday) | Run full pipeline to refresh docs |
Documentation
| Document | Description |
|---|---|
| Architecture | System design, data flow, 4-layer architecture |
| Graph Schema | Node/edge types, ID conventions, query examples |
| Domain Reference | All 129 domains organized by service category |
| Full Inventory | Complete domain list with file counts |
| Repo Development Skill | How to develop and extend this repo |
License
MIT Β© Avinava
Inventory
| Domain | Description | Status | Files |
|---|---|---|---|
| Salesforce Field Reference Guide | Use this concise reference to quickly look up details of the standard fields for | β Available | 4817 |
| Apex Reference | Apex class library reference β all system classes and methods | β Available | 4620 |
| Connect REST API Developer Guide | Integrate mobile apps, intranet sites, and third-party web applications with Sal | β Available | 2465 |
| Object Reference for the Salesforce Platform | Get details on standard objects so that you can interface with your Salesforce d | β Available | 1777 |
| Revenue Cloud / Agentforce Revenue Management | Product catalog, pricing, billing, Dynamic Revenue Orchestrator | β Available | 1323 |
| OmniStudio | OmniStudio β OmniScripts, FlexCards, DataRaptors, Integration Procedures | β Available | 1296 |
| Public Sector Solutions Developer Guide | Use Public Sector Solutions API and developer resources to unify public service | β Available | 1003 |
| Salesforce Health Cloud Developer Guide | Use the Health Cloud API to configure the Health Cloud console, which helps care | β Available | 833 |
| Marketing Cloud API | Developer documentation for Marketing Cloud APIs | β Available | 809 |
| Life Sciences Cloud Developer Guide | Use the developer resources of Life Sciences Cloud to automate the operations av | β Available | 714 |
| Metadata API | Metadata API β deployment, retrieval, metadata types | β Available | 688 |
| Insurance Developer Guide | Learn more about the developer sources of Insurance to automate the backend work | β Available | 616 |
| Visualforce Developer Guide | Learn how to develop custom user interfaces and apps with Visualforce, a framewo | β Available | 609 |
| Apex Developer Guide | Apex language guide β syntax, triggers, testing, best practices | β Available | 542 |
| Financial Services Cloud Developer Guide | Extend Financial Services Cloud with other Salesforce products using the API and | β Available | 527 |
| Loyalty Management Developer Guide | Use Loyalty Management API and developer resources to create personalized loyalt | β Available | 526 |
| Consumer Goods Cloud Developer Guide | Use APIs and developer resources to configure, customize, and extend the capabil | β Available | 524 |
| CRM Analytics REST API Developer Guide | Describes how to send queries directly to CRM Analytics, access datasets that ha | β Available | 519 |
| Lightning Aura Components Developer Guide | Create Aura components for Salesforce for Android, iOS, and mobile web and Light | β Available | 491 |
| Mobile SDK Development Guide | Build standalone native, React Native, and hybrid mobile apps that access Salesf | β Available | 409 |
| Data Cloud | Data Cloud developer guide β data models, connectors, identity resolution | β Available | 400 |
| Programmatic Marketing Content | Developer documentation for Marketing Cloud Programmatic Content | β Available | 381 |
| ISVforce Guide | Plan, build, and sell AppExchange solutions and consulting services. | β Available | 356 |
| Service Cloud | Service Cloud β cases, knowledge, omni-channel, entitlements | β Available | 344 |
| Tooling API | Tooling API β code coverage, debug logs, custom fields | β Available | 338 |
| Einstein Discovery REST API Developer Guide | Describes how to create and access Einstein Discovery predictions, discovery mod | β Available | 312 |
| Education Cloud Developer Guide | Education Cloud gives you the tools and developer resources you need to support | β Available | 308 |
| REST API | Salesforce REST API β resources, methods, composite, batch | β Available | 308 |
| Nonprofit Cloud Developer Guide | Use APIs and developer resources to configure, customize, and extend the capabil | β Available | 304 |
| Data Prep Recipe REST API Developer Guide | Describes how to retrieve, update, and schedule Data Prep recipes. | β Available | 296 |
| + 99 more domains | See full inventory | β Available | 6,899 |
129 domains | 35,354 knowledge files
Built with Antigravity
