Connect your AI Agents to Salesforce in minutes

Merge lets you securely connect your agents to Salesforce and thousands of tools instantly

Available tools

create_account

Create a new Salesforce account. Required: Name (must be unique). Use unique account names with timestamps to avoid duplicates.

get_account

Retrieve a Salesforce account by ID with complete details including standard and custom fields. Returns account information such as name, industry, revenue, employee count, addresses, and any custom fields. Use this to fetch full account details before updating or to verify account data. Supports selective field retrieval for performance optimization.

update_account

Update an existing Salesforce account with new information. Modify any account fields including name, industry, revenue, employee count, addresses, parent relationship, and custom fields. Only provide fields you want to change - unchanged fields remain as-is. Supports partial updates for efficient data management. Use when account information changes or to enrich account data.

delete_account

Permanently delete a Salesforce account from the system. This moves the account to the Recycle Bin where it can be restored within 15 days, after which it's permanently deleted. Use with extreme caution - deleting accounts removes all related contacts, opportunities, cases, and activities. This is a destructive operation that impacts multiple objects. Requires delete permissions on Account object.

list_accounts

List Salesforce accounts with automatic field access handling. Dynamically removes inaccessible fields and retries query.

search_accounts

Search Salesforce accounts using text queries across name, website, and phone fields. Automatically handles field access permissions by removing inaccessible fields and retrying. More powerful than list_accounts for finding specific accounts by keywords. Returns ranked results based on relevance.

create_event

Create a new Salesforce event. Required workflow: Call discover_required_fields('Event') first to identify mandatory fields and prevent creation errors.

get_event

Get a Salesforce event by ID

update_event

Update an existing Salesforce event

delete_event

Delete a Salesforce event

list_events

List Salesforce events

log_activity

Log a Salesforce activity

search_events

Search Salesforce events

create_case

Create a new Salesforce case. Required workflow: Call discover_required_fields('Case') first to identify mandatory fields and prevent creation errors.

get_case

Retrieve a Salesforce case by ID with complete details including standard and custom fields. Returns case information such as case number, subject, status, priority, origin, contact/account associations, and any custom fields. Use this to fetch full case details before updating or to verify case data. Supports selective field retrieval for performance optimization.

update_case

Update an existing Salesforce case with new information. Modify any case fields including subject, status, priority, type, reason, description, contact/account associations, and custom fields. Only provide fields you want to change - unchanged fields remain as-is. Supports partial updates for efficient case management. Use when case details change or to update case status/priority.

delete_case

Permanently delete a Salesforce case from the system. This moves the case to the Recycle Bin where it can be restored within 15 days, after which it's permanently deleted. Use with caution - deleting cases removes customer support history and metrics. All related activities, emails, and case comments are also deleted. Requires delete permissions on Case object.

list_cases

List Salesforce cases with automatic field access handling. Dynamically removes inaccessible fields and retries query. Supports flexible filtering with comparison operators.

search_cases

Search Salesforce cases using text queries across subject and description fields. Automatically handles field access permissions by removing inaccessible fields and retrying. Returns ranked results based on relevance.

get_chatter_comments

Get comments for a Chatter feed element.

post_chatter_comment

Post comment to Chatter feed element.

update_chatter_comment

Update Chatter comment by ID.

delete_chatter_comment

Delete Chatter comment by ID.

get_chatter_comment

Get specific Chatter comment by ID.

get_chatter_feed

Get Chatter feed for news, user, group, or record.

post_to_chatter_feed

Post to Chatter feed (news, user, group, or record). News feed posts redirect to user-profile endpoint since the news feed is read-only.

get_chatter_feed_element

Get specific Chatter feed element by ID.

delete_chatter_feed_element

Delete Chatter feed element by ID.

list_chatter_groups

List Chatter groups.

create_chatter_group

Create new Chatter group.

get_chatter_group

Get specific Chatter group by ID.

join_chatter_group

Join Chatter group.

leave_chatter_group

Leave Chatter group.

get_chatter_group_members

Get Chatter group members.

get_chatter_user

Get Chatter user information by ID.

follow_chatter_user

Follow Chatter user.

unfollow_chatter_user

Unfollow Chatter user.

get_chatter_user_followers

Get Chatter user followers.

get_chatter_user_following

Get Chatter users being followed.

like_chatter_item

Like Chatter item (feed element or comment).

unlike_chatter_item

Unlike Chatter item (feed element or comment).

create_contact

Create a new Salesforce contact. Required workflow: Call discover_required_fields('Contact') first to identify mandatory fields and prevent creation errors.

get_contact

Retrieve a Salesforce contact by ID with complete details including standard and custom fields. Returns contact information such as name, email, phone, account association, title, department, and any custom fields. Use this to fetch full contact details before updating or to verify contact data. Supports selective field retrieval for performance optimization.

update_contact

Update an existing Salesforce contact with new information. Modify any contact fields including name, email, phone, account association, title, department, address, and custom fields. Only provide fields you want to change - unchanged fields remain as-is. Supports partial updates for efficient data management. Use when contact information changes or to enrich contact data.

delete_contact

Permanently delete a Salesforce contact from the system. This moves the contact to the Recycle Bin where it can be restored within 15 days, after which it's permanently deleted. Use with caution - deleting contacts removes relationship history with accounts and opportunities. All related activities, notes, and attachments are also deleted. Requires delete permissions on Contact object.

list_contacts

List Salesforce contacts with automatic field access handling. Dynamically removes inaccessible fields and retries query. Supports flexible filtering with comparison operators.

search_contacts

Search Salesforce contacts using text queries across name, email, and phone fields. Automatically handles field access permissions by removing inaccessible fields and retrying. Returns ranked results based on relevance.

list_objects

List all standard and custom objects in the Salesforce org. Use this to discover what objects are available before creating or querying records. Supports filtering by standard/custom objects and searching by name or label. Returns object metadata including capabilities (createable, updateable, deletable, queryable).

discover_required_fields

Discover required, custom, and recommended fields for any Salesforce object. Returns comprehensive field metadata including data types, picklist values, validation rules, and lookup relationships. Essential for understanding org-specific field requirements before creating or updating records. Use this tool FIRST before any create_* or update_* operations to understand which fields are required, what custom fields exist in your org, valid picklist values, and field constraints. Supports both standard objects (Lead, Contact, Account, Opportunity, Task, Case, Event, Note) and custom objects (ending with '__c').

discover_properties

Discover all available properties/fields for Salesforce objects including custom fields, data types, picklist values, and field capabilities. Essential for understanding what fields can be used in create, update, search, and filter operations.

create_lead

Create a new Salesforce lead. Required: LastName, Company. Use unique email addresses and company names to avoid duplicate detection issues.

get_lead

Retrieve a Salesforce lead by ID with complete details including standard and custom fields. Returns lead information such as name, company, email, phone, status, lead source, and any custom fields. Use this to fetch full lead details before updating or to verify lead data. Supports selective field retrieval for performance optimization.

update_lead

Update an existing Salesforce lead with new information. Modify any lead fields including name, company, contact details, status, rating, and custom fields. Only provide fields you want to change - unchanged fields remain as-is. Supports partial updates for efficient data management. Use after lead qualification or when contact information changes.

delete_lead

Permanently delete a Salesforce lead from the system. This moves the lead to the Recycle Bin where it can be restored within 15 days, after which it's permanently deleted. Use with caution - consider converting leads instead of deleting them to preserve data history. Requires delete permissions on Lead object.

list_leads

List Salesforce leads with automatic field access handling. Dynamically removes inaccessible fields and retries query. Supports flexible filtering with comparison operators.

search_leads

Search Salesforce leads using text queries across name, company, email, and phone fields. Automatically handles field access permissions by removing inaccessible fields and retrying. Returns ranked results based on relevance.

convert_lead

Convert a Salesforce lead to Account, Contact, and optionally Opportunity. IMPORTANT: Works best with newly created leads to avoid duplicate detection issues. Use unique account/contact names.

create_note

Create a new Salesforce note. Required workflow: Call discover_required_fields('Note') first to identify mandatory fields and prevent creation errors.

get_note

Get a Salesforce note by ID

update_note

Update a Salesforce note

list_notes

List Salesforce notes (both legacy Notes and modern ContentNotes)

search_notes

Search Salesforce notes (both legacy Notes and modern ContentNotes)

delete_note

Delete a Salesforce note

create_opportunity

Create a new Salesforce opportunity. Required: Name, AccountId, StageName, CloseDate. Use valid AccountId and standard stage names for success.

get_opportunity

Retrieve a Salesforce opportunity by ID with complete details including standard and custom fields. Returns opportunity information such as name, amount, stage, close date, probability, account association, and any custom fields. Use this to fetch full opportunity details before updating or to verify opportunity data. Supports selective field retrieval for performance optimization.

delete_opportunity

Permanently delete a Salesforce opportunity from the system. This moves the opportunity to the Recycle Bin where it can be restored within 15 days, after which it's permanently deleted. Use with caution - deleting opportunities removes sales history and forecasting data. All related activities, notes, and opportunity contact roles are also deleted. Requires delete permissions on Opportunity object.

update_opportunity

Update an existing Salesforce opportunity with new information. Modify any opportunity fields including name, amount, stage, close date, probability, and custom fields. Only provide fields you want to change - unchanged fields remain as-is. Supports partial updates for efficient data management. Use to progress opportunities through sales stages or update deal information.

list_opportunities

List Salesforce opportunities with automatic field access handling. Dynamically removes inaccessible fields and retries query. Supports flexible filtering with comparison operators.

search_opportunities

Search Salesforce opportunities with automatic field access handling. Supports text search combined with flexible filtering. Dynamically removes inaccessible fields and retries query.

run_soql_query

Execute a raw SOQL query against the Salesforce org. Use for ad-hoc queries, cross-object joins, aggregations, or any query not covered by entity-specific tools. Only SELECT queries are supported. Use list_objects to discover available objects, and discover_required_fields to find valid field names. Supports pagination via next_records_url.

create_task

Create a new Salesforce task. Required workflow: Call discover_required_fields('Task') first to identify mandatory fields and prevent creation errors.

get_task

Retrieve a Salesforce task by ID with complete details including standard and custom fields. Returns task information such as subject, status, priority, activity date, related contact/lead, related account/opportunity, and any custom fields. Use this to fetch full task details before updating or to verify task data. Supports selective field retrieval for performance optimization.

update_task

Update an existing Salesforce task with new information. Modify any task fields including subject, status, priority, activity date, related contacts/accounts, and custom fields. Only provide fields you want to change - unchanged fields remain as-is. Supports partial updates for efficient data management. Use to progress tasks through workflow or update task information.

delete_task

Permanently delete a Salesforce task from the system. This moves the task to the Recycle Bin where it can be restored within 15 days, after which it's permanently deleted. Use with caution - deleting tasks removes activity history and tracking data. Requires delete permissions on Task object.

list_tasks

List Salesforce tasks with automatic field access handling. Dynamically removes inaccessible fields and retries query. Supports flexible filtering with comparison operators.

search_tasks

Search Salesforce tasks using text queries across subject and description fields. Automatically handles field access permissions by removing inaccessible fields and retrying. Returns ranked results based on relevance.

validate_credential

Validate Salesforce credentials. Verifies authentication by querying the organization. Returns {success, message}.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Salesforce  MCP server

FAQs on using Merge's Salesforce  MCP server

How can I use the Salesforce MCP server?

The use cases naturally depend on the agent you’ve built, but here are a few common ones:

  • Automated opportunity creation: Your agent can automatically create Salesforce Opportunities when leads hit qualification thresholds
  • Real-time opportunity updates: As sales reps talk to prospects, your agent can automatically update opportunity details, such as the deal amount, expected close date, and status
  • Sales intelligence: Your agent can help sales leaders create custom reports on rep performance via CRM data. For example, a sales leader can ask for a quota attainment report, and the agent can use fields like sales reps’ names, historical quotas, and close-won revenues to create them
  • Proposal writing: Your agent can generate personalized sales proposals by pulling data from the relevant CRM opportunity pages and by leveraging similar past proposals from other prospects

What are popular tools for Salesforce’s MCP server?

Here are some popular MCP tools broken down into categories:

Accounts:

  • <code class="blog_inline-code">search_accounts</code>
  • <code class="blog_inline-code">get_account</code>
  • <code class="blog_inline-code">create_account</code>
  • <code class="blog_inline-code">update_account</code>
  • <code class="blog_inline-code">list_accounts</code>

Leads:

  • <code class="blog_inline-code">search_leads</code>
  • <code class="blog_inline-code">get_lead</code>
  • <code class="blog_inline-code">create_lead</code>
  • <code class="blog_inline-code">update_lead</code>
  • <code class="blog_inline-code">delete_lead</code>
  • <code class="blog_inline-code">list_leads</code>

Opportunities:

  • <code class="blog_inline-code">search_opportunities</code>
  • <code class="blog_inline-code">get_opportunity</code>
  • <code class="blog_inline-code">create_opportunity</code>
  • <code class="blog_inline-code">list_opportunities</code>

Cases:

  • <code class="blog_inline-code">search_cases</code>
  • <code class="blog_inline-code">get_case</code>
  • <code class="blog_inline-code">create_case</code>
  • <code class="blog_inline-code">update_case</code>
  • <code class="blog_inline-code">list_cases</code>

What makes Merge Agent Handler’s Salesforce MCP server better than alternative Salesforce MCP servers?

Here are just a few reasons:

  • Enterprise-grade security with DLP: Merge Agent Handler scans tool inputs and responses for sensitive data and applies configured rules to block, redact, or mask sensitive information. This protects Salesforce data handled by agents
  • Real-time observability and a fully-searchable audit trail: Every tool call is logged, including underlying API requests, enabling debugging, monitoring, and compliance reviews. Logs are also fully-searchable, making it easy for your team to troubleshoot and resolve specific integration issues quickly
  • Built-in authentication and credential lifecycle management: Agent Handler provides guided authentication flows, dynamic authorization, and secure credential handling without requiring custom auth code

  • Connector Studio for customizing Salesforce tools: You can add, modify, or extend Salesforce connector functionality, which is especially useful when your agents need to work with and support custom Salesforce objects or workflows

How can I add the Salesforce MCP connector to Tool Packs in Merge Agent Handler?

To add the Salesforce connector to a Tool Pack in Merge Agent Handler:

1. Log into the Agent Handler dashboard.

2. Create or select a Tool Pack. Navigate to "Tool Packs" in the sidebar, and either create a new Tool Pack or select an existing one.

3. Add the Salesforce connector to your Tool Pack. Simply Click "Add Connector," select Salesforce from the available connectors, and configure the authentication type (Individual or Shared credentials).

4. Customize the connector (optional). Navigate to "Connectors" in the sidebar, and then select the Salesforce connector. From there, you can add new tools, modify existing tool descriptions, or adjust input schemas. You can also edit tool implementations for custom Salesforce actions.

5. Save your changes.The Salesforce connector and its tools should now be available in your Tool Pack.

Explore other MCP servers built and managed by Merge

jira_service_management
Jira Service Management
kintone
Kintone
klaviyo
Klaviyo
linear
Linear
linkedin
LinkedIn
looker
Looker
lucidchart
Lucidchart
make
Make
microsoft_teams
Microsoft Teams
microsoft_teams_gcc
Microsoft Teams GCC High
miro
Miro
monday
Monday.com
n8n
n8n
netsuite
NetSuite
notion
Notion
npi_registry
NPI Registry
onedrive
OneDrive
onenote
OneNote
oracle_hcm
Oracle HCM
oracle_sales_cloud
Oracle Sales Cloud
oracle_scm
Oracle SCM
oura
Oura
outlook
Outlook
pagerduty
PagerDuty

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now