loading…
Search for a command to run...
loading…
A local-first MCP server that enables intent-based searching across over 350 official Salesforce developer documents and release notes. It allows users to retri
A local-first MCP server that enables intent-based searching across over 350 official Salesforce developer documents and release notes. It allows users to retrieve API references, code examples, and technical documentation directly through natural language queries.
A local-first Model Context Protocol (MCP) server for searching Salesforce Developer Documentation. Search across 360 official Salesforce PDF documents directly from VS Code, Claude Desktop, or any MCP-compatible client.
# Clone the repository
git clone https://github.com/SalesforceDiariesBySanket/salesforce-docs-mcp.git
cd salesforce-docs-mcp
# Install dependencies
npm install
# Build the TypeScript
npm run build
# Build the search index (parses all PDFs - takes 5-10 minutes)
npm run build-index
Add to your VS Code MCP configuration (%APPDATA%\Code\User\mcp.json on Windows):
{
"servers": {
"salesforce-docs": {
"type": "stdio",
"command": "node",
"args": ["C:\\path\\to\\salesforce-docs-mcp\\dist\\index.js"]
}
}
}
Add to your Claude Desktop configuration (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"salesforce-docs": {
"command": "node",
"args": ["C:\\path\\to\\salesforce-docs-mcp\\dist\\index.js"]
}
}
}
search_salesforce_docsSearch across all Salesforce documentation with natural language queries.
Example: "How to create an Apex trigger on Account"
Example: "REST API authentication with OAuth 2.0"
Example: "Lightning Web Component wire service"
get_api_referenceGet specific Salesforce API reference documentation.
Example: API name "REST API", endpoint "/services/data"
Example: API name "Bulk API 2.0", endpoint "jobs"
get_release_notesGet Salesforce release notes for specific releases or features.
Example: release "Winter 26"
Example: feature "Dynamic Forms"
get_code_exampleGet code examples from Salesforce documentation.
Example: topic "trigger on Account", language "apex"
list_doc_categoriesList all documentation categories with document counts.
get_documentGet full content of a specific document by ID or filename.
The MCP server automatically detects the topic of your query and searches in the most relevant documentation:
| Query | Detected Intent | Searches In |
|---|---|---|
| "How to create an Apex trigger" | Apex Development | ~15 Apex docs |
| "REST API OAuth authentication" | REST API | ~10 REST API docs |
| "LWC wire decorator" | Lightning/LWC | ~12 Lightning docs |
| "Bulk API 2.0 job" | Bulk API | ~5 Bulk API docs |
| "sharing rules permission set" | Security | 12 Security docs |
| "SOQL query limits" | SOQL/SOSL | ~5 SOQL docs |
Benefits:
Override: You can always specify category or subcategory to search in a specific area.
| Category | Description |
|---|---|
core_platform |
Apex, LWC, Visualforce, SOQL/SOSL, Formulas |
apis |
REST, SOAP, Metadata, Bulk, Tooling APIs |
dev_tools |
Salesforce CLI, VS Code, Packaging |
clouds |
Sales, Service, Experience, Industry Clouds |
security |
Authentication, Authorization, Sharing |
integration |
Integration Patterns, Connectors |
best_practices |
Limits, Performance, Cheatsheets |
release_notes |
Winter '15 to present |
salesforce-docs-mcp/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── types.ts # TypeScript type definitions
│ ├── db/
│ │ ├── database.ts # SQLite connection (sql.js)
│ │ └── queries.ts # Search queries with intent detection
│ └── utils/
│ ├── formatter.ts # Result formatting
│ ├── intent.ts # Intent detection patterns
│ ├── classifier.ts # Document classification
│ └── chunker.ts # PDF text chunking
├── scripts/
│ ├── build-index.ts # PDF parsing and indexing
│ ├── test-search.ts # Search testing (114 tests)
│ ├── test-llm-judge.ts # LLM-as-judge evaluation
│ └── postinstall.js # Post-install setup
├── docs/
│ ├── pdfs/ # 291 Salesforce developer PDFs
│ └── release-notes/ # 69 release notes PDFs
├── data/
│ └── salesforce-docs.db # SQLite search index (357 docs)
├── package.json
├── tsconfig.json
└── README.md
Download Salesforce PDFs to docs/pdfs/ then rebuild the index:
npm run build-index
PDFs can be downloaded from:
https://resources.docs.salesforce.com/{version}/latest/en-us/sfdc/pdf/{name}.pdf
Current version: 258 (Winter '26, API v65.0)
# Run in development mode
npm run dev
# Build TypeScript
npm run build
# Test search functionality
npm run test-search
| Metric | Value |
|---|---|
| PDF Documents | 360 (291 + 69 release notes) |
| Documents indexed | 357 |
| Search chunks | ~156,000 |
| Database size | ~520 MB |
| Intent-filtered query | < 50ms (scoped search) |
| Unfiltered query | < 500ms (full corpus) |
| Cached query | < 10ms |
Traditional Search:
"Apex trigger" → Scan all 156K chunks → Filter → Rank → ~500ms
Intent-Based Search:
"Apex trigger" → Detect: Apex (high confidence)
→ Filter to apex subcategory (~15 docs, ~6,000 chunks)
→ Scan → Rank → ~50ms
Note: Uses sql.js (pure JavaScript SQLite) with LIKE-based text search. Intent detection reduces search scope by 90%+ for topic-specific queries.
MIT License - see LICENSE for details.
Salesforce Documentation: The Salesforce documentation PDF files included in this repository are the property of Salesforce, Inc. and are provided for convenience only. These documents are subject to Salesforce's own terms of use and copyright.
Trademark Notice: The trademarks and product names of Salesforce®, including the mark Salesforce®, are the property of Salesforce, Inc. This project is not affiliated with, sponsored by, or endorsed by Salesforce, Inc. The use of the Salesforce® trademark and Salesforce documentation in this project does not indicate an endorsement, recommendation, or business relationship between Salesforce, Inc. and the project maintainers.
Official Documentation: For official Salesforce documentation, please visit developer.salesforce.com/docs.
© 2026 Sanket (SalesforceDiariesBySanket) | Salesforce documentation © Salesforce, Inc.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"salesforce-documentation-mcp-server": {
"command": "npx",
"args": []
}
}
}