ryu-727/salesforce-mcp
If you are the rightful owner of salesforce-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server providing access to Salesforce Tooling API through AI assistants like Claude.
Salesforce Tooling API MCP Server
A Model Context Protocol (MCP) server that provides comprehensive access to Salesforce Tooling API functionality through Claude and other compatible AI assistants.
Features
🔧 Metadata Management
- Apex Class Tools: CRUD operations for Apex classes
- Apex Trigger Tools: CRUD operations for Apex triggers
- Visualforce Tools: CRUD operations for Visualforce pages
🔍 Query & Search
- SOQL Query Tools: Execute Tooling API queries with SOQL
- Metadata Search: Search across different metadata types
- Object Describe: Get schema information for Tooling API objects
📊 Code Analysis & Quality
- Code Coverage Tools: Analyze test coverage for classes and triggers
- Symbol Table Tools: Analyze code structure, dependencies, and get completion suggestions
- Performance Tools: Analyze SOQL query performance
🐛 Development & Debugging
- Debug Tools: Access debug logs and heap dumps
- Test Execution: Run Apex tests and get results
- Syntax Validation: Validate Apex code syntax
🔒 Security & Governance
- Security Tools: Check Apex sharing declarations and permissions
- Org Management: Get organization information and available objects
Installation
- Clone this repository:
git clone <repository-url>
cd salesforce-mcp
- Install dependencies:
npm install
- Build the project:
npm run build
Configuration
Configure your Salesforce connection using environment variables:
SF CLI Authentication
The MCP server uses Salesforce CLI authentication. Make sure you have authenticated to your org using the Salesforce CLI:
# Use default authenticated org
npm run dev
# Specify a particular org by alias
export SF_TARGET_ORG="myorg"
npm run dev
# Or specify by username
export SF_TARGET_ORG="user@example.com"
npm run dev
Prerequisites:
- Install Salesforce CLI: https://developer.salesforce.com/tools/cli
- Authenticate to your org:
sf org login web - Verify authentication:
sf org list
Usage
Running the MCP Server
# Development mode
npm run dev
# Production mode (after build)
./build/index.js
Claude Code CLI Configuration
claude mcp add salesforce-mcp -s project \
-e SF_TARGET_ORG=myorg \
-- npx salesforce-mcp-server@latest
Available Tools
REST API Tools
search_async_apex_jobs- Search AsyncApexJob records with filtering by status, job type, Apex class name, date rangeget_async_apex_job- Get detailed information about a specific AsyncApexJob by IDcall_rest_api- Make generic REST API calls to Salesforceget_org_limits- Get organization limits informationget_sobjects_list- Get list of all available SObjectsdescribe_sobject- Describe a specific SObject schema
Apex Class Management
list_apex_classes- List all Apex classes with optional filteringget_apex_class- Get detailed information about a specific Apex classcreate_apex_class- Create a new Apex classupdate_apex_class- Update an existing Apex classdelete_apex_class- Delete an Apex class
Apex Trigger Management
list_apex_triggers- List all Apex triggersget_apex_trigger- Get detailed information about a specific triggercreate_apex_trigger- Create a new Apex triggerupdate_apex_trigger- Update an existing triggerdelete_apex_trigger- Delete a trigger
Visualforce Page Management
list_apex_pages- List all Visualforce pagesget_apex_page- Get detailed information about a specific pagecreate_apex_page- Create a new Visualforce pageupdate_apex_page- Update an existing pagedelete_apex_page- Delete a page
Query & Analysis Tools
execute_tooling_query- Execute SOQL queries against Tooling APIdescribe_tooling_object- Get schema information for Tooling objectssearch_metadata- Search for metadata across different typesget_code_coverage- Get code coverage informationget_org_coverage- Get organization-wide coverage statisticsget_symbol_table- Analyze code structure and symbolsanalyze_dependencies- Analyze code dependenciesget_completion_suggestions- Get code completion suggestions
Development Tools
run_tests- Execute Apex testsget_test_results- Get test execution resultsget_debug_logs- Retrieve debug logsget_debug_log_body- Get full debug log contentvalidate_syntax- Validate Apex code syntaxcheck_apex_sharing- Check Apex sharing declarationsanalyze_soql_performance- Analyze SOQL query performanceget_org_info- Get organization informationlist_sobjects- List available SObjects
Example Usage with Claude
Once the MCP server is running and connected to Claude, you can use natural language commands like:
- "Search for completed AsyncApexJob records for BatchProcessor class"
- "Get details of AsyncApexJob with ID 707XXXXXXXXXXXXXXX"
- "Find all failed batch jobs from the last week"
- "List all Apex classes that contain 'Account' in their name"
- "Show me the code coverage for all classes below 75%"
- "Get the symbol table for the AccountTriggerHandler class"
- "Create a new Apex class called TestUtils with basic utility methods"
- "Run all tests and show me the results"
Development
Project Structure
src/
├── auth/ # Salesforce authentication
├── client/ # Tooling API HTTP client
├── tools/ # MCP tool implementations
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── index.ts # Main server entry point
Available Scripts
npm run build- Build the TypeScript projectnpm run dev- Run in development mode with hot reloadnpm run watch- Watch mode for TypeScript compilationnpm run lint- Run ESLintnpm run format- Format code with Prettiernpm test- Run tests
Requirements
- Node.js 18+
- Valid Salesforce org with API access
- Salesforce CLI installed and authenticated
License
MIT License - see LICENSE file for details