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 henry@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