How to integrate Salesforce MCP with Google ADK

Connect Google ADK to Salesforce MCP. Add new contact to spring campaign, clone opportunity with all associated products, and more using natural language, with authentication handled for you.

Salesforce logoSalesforce
Oauth2S2s Oauth2

Salesforce is a leading CRM platform that helps businesses manage sales, service, and marketing. It centralizes customer data, enabling teams to drive growth and build strong relationships.

288 Tools7 Triggers

Introduction

This guide walks you through connecting Salesforce to Google ADK using the Composio tool router. By the end, you'll have a working Salesforce agent that can manage accounts and contacts, capture leads, track opportunities, run SOQL queries and reports, and log calls and tasks through natural language commands.

This guide will help you understand how to give your Google ADK agent real control over a Salesforce account through Composio's Salesforce MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate Salesforce with

TL;DR

Here's what you'll learn:
  • Get a Salesforce account set up and connected to Composio
  • Install the Google ADK and Composio packages
  • Create a Composio Tool Router session for Salesforce
  • Build an agent that connects to Salesforce through MCP
  • Interact with Salesforce using natural language

What is Google ADK?

Google ADK (Agents Development Kit) is Google's framework for building AI agents powered by Gemini models. It provides tools for creating agents that can use external services through the Model Context Protocol.

Key features include:

  • Gemini Integration: Native support for Google's Gemini models
  • MCP Toolset: Built-in support for Model Context Protocol tools
  • Streamable HTTP: Connect to external services through streamable HTTP
  • CLI and Web UI: Run agents via command line or web interface

What is the Salesforce MCP server, and what's possible with it?

The Salesforce MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Salesforce account. It provides structured and secure access to your accounts, contacts, leads, opportunities, campaigns, files, and organization data, so your agent can create, find, update, delete, and analyze CRM records on your behalf.

  • Customer and account management: Have your agent create, retrieve, update, or delete accounts and contacts as customer details change.
  • Lead and opportunity tracking: Let the agent add leads, maintain opportunity details, and find the sales records your team needs.
  • CRM search and reporting: Instruct your agent to search across Salesforce records or run precise queries to answer questions about customers, campaigns, and sales activity.
  • Campaign and bulk record operations: Direct your agent to create and update campaigns, create many records at once, or update matching records in bulk.
  • Files and Salesforce administration: Have your agent upload, retrieve, or delete Salesforce files, inspect available fields, create custom fields or objects, and check organization limits.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step09 STEPS
1

Prerequisites

Before starting, make sure you have:
  • A Google API key for Gemini models
  • A Composio account and API key
  • Python 3.9 or later installed
  • Basic familiarity with Python
2

Getting API Keys for Google and Composio

Google API Key
  • Go to Google AI Studio and create an API key.
  • Copy the key and keep it safe. You will put this in GOOGLE_API_KEY.
Composio API Key and User ID
  • Log in to the Composio dashboard.
  • Go to Settings → API Keys and copy your Composio API key. Use this for COMPOSIO_API_KEY.
  • Decide on a stable user identifier to scope sessions, often your email or a user ID. Use this for COMPOSIO_USER_ID.
3

Install dependencies

bash
pip install google-adk composio python-dotenv

Inside your virtual environment, install the required packages.

What's happening:

  • google-adk is Google's Agents Development Kit
  • composio connects your agent to Salesforce via MCP
  • python-dotenv loads environment variables
4

Set up ADK project

bash
adk create my_agent

Set up a new Google ADK project.

What's happening:

  • This creates an agent folder with a root agent file and .env file
5

Set environment variables

bash
GOOGLE_API_KEY=your-google-api-key
COMPOSIO_API_KEY=your-composio-api-key
COMPOSIO_USER_ID=your-user-id-or-email

Save all your credentials in the .env file.

What's happening:

  • GOOGLE_API_KEY authenticates with Google's Gemini models
  • COMPOSIO_API_KEY authenticates with Composio
  • COMPOSIO_USER_ID identifies the user for session management
6

Import modules and validate environment

python
import os
import warnings

from composio import Composio
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset

load_dotenv()

warnings.filterwarnings("ignore", message=".*BaseAuthenticatedTool.*")

GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
COMPOSIO_USER_ID = os.getenv("COMPOSIO_USER_ID")

if not GOOGLE_API_KEY:
    raise ValueError("GOOGLE_API_KEY is not set in the environment.")
if not COMPOSIO_API_KEY:
    raise ValueError("COMPOSIO_API_KEY is not set in the environment.")
if not COMPOSIO_USER_ID:
    raise ValueError("COMPOSIO_USER_ID is not set in the environment.")
What's happening:
  • os reads environment variables
  • Composio is the main Composio SDK client
  • GoogleProvider declares that you are using Google ADK as the agent runtime
  • Agent is the Google ADK LLM agent class
  • McpToolset lets the ADK agent call MCP tools over HTTP
7

Create Composio client and Tool Router session

python
composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=COMPOSIO_USER_ID,
    toolkits=["salesforce"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url,
print(f"Composio MCP URL: {COMPOSIO_MCP_URL}")
What's happening:
  • Authenticates to Composio with your API key
  • Declares Google ADK as the provider
  • Spins up a short-lived MCP endpoint for your user and selected toolkit
  • Stores the MCP HTTP URL for the ADK MCP integration
8

Set up the McpToolset and create the Agent

python
composio_toolset = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url=COMPOSIO_MCP_URL,
        headers={"x-api-key": COMPOSIO_API_KEY}
    )
)

root_agent = Agent(
    model="gemini-2.5-flash",
    name="composio_agent",
    description="An agent that uses Composio tools to perform actions.",
    instruction=(
        "You are a helpful assistant connected to Composio. "
        "You have the following tools available: "
        "COMPOSIO_SEARCH_TOOLS, COMPOSIO_MULTI_EXECUTE_TOOL, "
        "COMPOSIO_MANAGE_CONNECTIONS, COMPOSIO_REMOTE_BASH_TOOL, COMPOSIO_REMOTE_WORKBENCH. "
        "Use these tools to help users with Salesforce operations."
    ),
    tools=[composio_toolset],
)

print("\nAgent setup complete. You can now run this agent directly ;)")
What's happening:
  • Connects the ADK agent to the Composio MCP endpoint through McpToolset
  • Uses Gemini as the model powering the agent
  • Lists exact tool names in instruction to reduce misnamed tool calls
9

Run the agent

bash
# Run in CLI mode
adk run my_agent

# Or run in web UI mode
adk web

Execute the agent from the project root. The web command opens a web portal where you can chat with the agent.

What's happening:

  • adk run runs the agent in CLI mode
  • adk web . opens a web UI for interactive testing

Complete Code

Here's the complete code to get you started with Salesforce and Google ADK:

python
import os
import warnings

from composio import Composio
from composio_google import GoogleProvider
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset

load_dotenv()
warnings.filterwarnings("ignore", message=".*BaseAuthenticatedTool.*")

GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
COMPOSIO_USER_ID = os.getenv("COMPOSIO_USER_ID")

if not GOOGLE_API_KEY:
    raise ValueError("GOOGLE_API_KEY is not set in the environment.")
if not COMPOSIO_API_KEY:
    raise ValueError("COMPOSIO_API_KEY is not set in the environment.")
if not COMPOSIO_USER_ID:
    raise ValueError("COMPOSIO_USER_ID is not set in the environment.")

composio_client = Composio(api_key=COMPOSIO_API_KEY, provider=GoogleProvider())

composio_session = composio_client.create(
    user_id=COMPOSIO_USER_ID,
    toolkits=["salesforce"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url


composio_toolset = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url=COMPOSIO_MCP_URL,
        headers={"x-api-key": COMPOSIO_API_KEY}
    )
)

root_agent = Agent(
    model="gemini-2.5-flash",
    name="composio_agent",
    description="An agent that uses Composio tools to perform actions.",
    instruction=(
        "You are a helpful assistant connected to Composio. "
        "You have the following tools available: "
        "COMPOSIO_SEARCH_TOOLS, COMPOSIO_MULTI_EXECUTE_TOOL, "
        "COMPOSIO_MANAGE_CONNECTIONS, COMPOSIO_REMOTE_BASH_TOOL, COMPOSIO_REMOTE_WORKBENCH. "
        "Use these tools to help users with Salesforce operations."
    ),  
    tools=[composio_toolset],
)

print("\nAgent setup complete. You can now run this agent directly ;)")

Conclusion

You've successfully integrated Salesforce with the Google ADK through Composio's MCP Tool Router. Your agent can now interact with Salesforce using natural language commands.

Key takeaways:

  • The Tool Router approach dynamically routes requests to the appropriate Salesforce tools
  • Environment variables keep your credentials secure and separate from code
  • Clear agent instructions reduce tool calling errors
  • The ADK web UI provides an interactive interface for testing and development

You can extend this setup by adding more toolkits to the toolkits array in your session configuration.

TOOLS & TRIGGERS

Supported Tools and Triggers

Every Salesforce action and event your agent gets out of the box.

Abort query job

Abort a Bulk API 2.

Add contact to campaign

Adds a contact to a campaign by creating a CampaignMember record to track campaign engagement.

Add lead to campaign

Adds a lead to a campaign by creating a CampaignMember record, allowing you to track campaign engagement.

Add product to opportunity

Adds a product (line item) to an opportunity.

Apply lead assignment rules

Applies configured lead assignment rules to a specific lead, automatically routing it to the appropriate owner based on your organization's rules.

Associate contact to account

Associates a Salesforce contact with an account by updating its AccountId, replacing any existing association.

Clone opportunity with products

Clones a Salesforce opportunity, with optional name, close date, and stage changes, and optionally copies its product line items.

Clone record

Creates a copy of an existing Salesforce record by reading its data, removing system fields, and creating a new record.

Clone report

Creates a persisted copy of an existing Salesforce report under a new name.

Close or abort a job

Tool to close or abort a Salesforce Bulk API v2 ingest job.

Complete task

Updates a Salesforce task with status Completed, optional completion notes, and additional field values.

Create account

Creates a new account in Salesforce with the specified information.

Create analytics notification

Create a scheduled report, dashboard or Analytics notification with delivery actions.

Create a record

Creates a Salesforce record using the UI API and returns its ID and field values, including formatted display values where available.

Create bulk ingest job

Create a Bulk API 2.

Create bulk query job

Create a Bulk API 2.

Create campaign

Creates a new campaign in Salesforce.

Create contact

Creates a new contact in Salesforce with the specified information.

Create custom field

Tool to create a custom field on a Salesforce object using the Tooling API.

Create custom object

Creates a Salesforce custom object using the Metadata API, with a configured name field and object settings.

Create folder

Create a Salesforce folder, optionally beneath an existing parent folder.

Create folder shares

Append shares to a Salesforce folder without replacing its share list.

Create Knowledge article draft

Create a draft copy of an online primary Knowledge article without unpublishing it.

Create lead

Creates a new lead in Salesforce.

Create list view

Create a Salesforce UI API list view for a standard or custom object.

Create note

Creates a new note attached to a Salesforce record with the specified title and content.

Create opportunity

Creates a Salesforce opportunity with the specified information.

Create SObject record

Tool to create a new Salesforce SObject record.

Create sObject tree

Tool to create one or more sObject trees with root records of the specified type.

Create task

Creates a new task in Salesforce to track activities, to-dos, and follow-ups related to contacts, leads, or other records.

Create Tooling Flow

Create a Salesforce Flow version through the Tooling API.

Create Tooling API record

Create a supported Salesforce Tooling API sObject record.

Create validation rule

Create an active or inactive Salesforce validation rule through Tooling API.

Delete account

Deletes a Salesforce account by its ID.

Delete analytics notification

Permanently delete one Salesforce analytics notification by ID.

Delete campaign

Permanently deletes a campaign from Salesforce.

Delete contact

Permanently deletes a contact from Salesforce.

Delete dashboard

Delete a Salesforce dashboard by moving it to the Recycle Bin.

Delete file

Tool to permanently delete a file from Salesforce.

Delete folder

Delete a Salesforce report or dashboard folder by ID.

Delete folder share

Delete one report or dashboard folder share.

Delete ingest job

Delete a Bulk API 2.

Delete job query

Tool to delete a Salesforce Bulk API v2 query job.

Delete lead

Permanently deletes a lead from Salesforce.

Delete note

Permanently deletes a note from Salesforce.

Delete opportunity

Permanently deletes an opportunity from Salesforce.

Delete report

Delete a saved Salesforce report by moving it to the Recycle Bin.

Delete sObject record

Delete a single Salesforce record by object type and record ID.

Delete multiple records (SObject Collections)

Tool to delete up to 200 records in one request with optional rollback.

Delete survey translations

Delete one or a batch of translated Survey flow fields (REST API 48.

Delete Tooling API record

Delete one Tooling API metadata record by object name and Salesforce ID.

Describe dashboard

Get dashboard metadata, components, filters, layout, and running user.

Describe list view

Retrieve columns, filters, ordering, and generated SOQL for a list view.

Describe report type

Describe a Salesforce report type's fields, filters and default metadata.

Describe Tooling object

Describe a Tooling API object's fields, URLs, and child relationships.

Discover unit tests

Discover one page of Apex and automated flow tests without running them.

Download attachment body

Download the binary Body field of a legacy Salesforce Attachment record.

Execute composite

Execute up to 25 dependent Salesforce subrequests for sObjects, query, queryAll, and sObject Collections, including record creation, updates, or deletion.

Execute composite batch

Execute up to 25 independent JSON Salesforce REST subrequests serially.

Execute global quick action

Execute a global (non-object-specific) quick action (POST /quickActions/{actionName}).

Execute invocable action

Invoke any standard or custom invocable action by name (POST /actions/standard/{name} or /actions/custom/{name}).

Execute sObject Quick Action

Tool to execute a specific quick action on an sObject to create records with pre-configured defaults.

Execute SOSL search

Execute a SOSL search to search across multiple Salesforce objects.

Execute Tooling composite

Execute up to 25 mixed GET, POST, PUT, PATCH, or DELETE Tooling API requests, including at most five queries.

Get batch of UI API records

Tool to retrieve multiple Salesforce records in a single request with customizable field selection.

Get account

Retrieves a Salesforce account by ID and returns the fields represented in the account response schema.

Get all objects

Retrieves Salesforce objects (standard and custom) with detailed metadata.

Get all fields for an object

Retrieves all fields (standard and custom) for a Salesforce object with complete metadata including field types, constraints, picklist values, and relationships.

Get all navigation items

Retrieve a page of navigation items accessible to the user, optionally filtered by item names and device form factor.

Get analytics notification

Retrieve a Salesforce analytics notification or subscription by ID and source.

Get Analytics notification limits

Get maximum and remaining notification limits for a selected source.

Get Apex log body

Return the raw text body of one Salesforce Apex debug log.

Get API resources by version

Discovers available REST API resource URIs for a Salesforce API version, returning a subset of resource types represented by the response schema.

Get an app

Tool to get metadata about a specific Salesforce app by ID.

Get App Menu

Discover App Menu types or retrieve Lightning/mobile menu items or headers.

Get appointment candidates

Find available Salesforce Scheduler resources and time slots without booking an appointment.

Get appointment slots

Find available Salesforce Scheduler time slots without booking appointments.

Get apps

Tool to get metadata for all apps a user has access to.

Get campaign

Retrieves a Salesforce campaign by ID and returns the fields represented in the response model.

Get Chatter resources

Tool to access Chatter resources directory.

Get child records

Tool to get child records for a specified parent record and child relationship name.

Get Compact Layouts

Tool to retrieve compact layout information for multiple Salesforce objects.

Get composite resources

Tool to retrieve a list of available composite resources in Salesforce.

Get multiple records by IDs

Retrieves multiple records of the same object type by IDs with a request body.

Get consent preferences

Tool to check consent preferences for a SINGLE action (e.

Get contact

Retrieves a Salesforce contact by ID, optionally requesting selected fields.

Retrieve specific contact by id

Retrieves a Salesforce Contact by its unique ID; the ID must correspond to an existing Contact record in Salesforce.

Get dashboard

Gets detailed metadata for a specific dashboard including its components, layout, and filters.

Get dashboard components

Read details and status for selected dashboard components without refreshing or saving.

Get dashboard filter options

Validate dashboard filter options against report fields without saving changes.

Get dashboard status

Read dashboard component refresh status without triggering a refresh.

Get data categories

List visible Knowledge data category groups or retrieve one category's children.

Get deleted records

List record IDs and deletion times for one Salesforce object and time window.

Get Embedded Service configuration

Retrieve an Embedded Service deployment's configuration or response headers.

Get enhanced note content

Download the rich-text Content blob for a Salesforce Enhanced Note.

Get file content

Returns the binary content of a Salesforce file, including references to external files.

Get file information

Tool to retrieve comprehensive metadata and information about a specified file in Salesforce.

Get file shares

Returns information about the objects with which the specified file has been shared.

Get folder

Get a report or dashboard folder's details, ancestors, and sharing URLs.

Get folder share

Retrieve one explicit access entry for a report or dashboard folder.

Get folder shares

Lists the explicit access entries for a report or dashboard folder.

Get global actions

Tool to retrieve actions displayed in the Salesforce Global Actions menu with metadata.

Get ingest job info

Retrieve status, processing counts, and metadata for one Bulk API 2.

Get invalid Apex compilation results

Read compilation results for invalid Apex classes and triggers (API 68.

Get job failed record results

Tool to retrieve failed records from a Salesforce Bulk API 2.

Get job successful record results

Tool to retrieve successfully processed records from a Salesforce Bulk API 2.

Get job unprocessed record results

Tool to retrieve unprocessed records from a Salesforce Bulk API 2.

Get last selected app

Retrieves the app the current user last selected or the app the user sees by default.

Get lead

Retrieves a specific lead by ID from Salesforce, returning all available fields.

Get List View Header Actions

Tool to retrieve header actions on list views.

Get batch of list view metadata

Tool to retrieve metadata for multiple list views in a single batch request.

Get list view metadata

Returns list view metadata by object and list view API name.

Get list view records by ID

Returns record data for a list view by its ID.

Get list view records by API name

Retrieves paginated record data for a specified list view using the object and list view API names.

Get list view results

Retrieves the results of a list view for a specified sObject.

Get lookup field suggestions

Tool to retrieve lookup field suggestions for editing lookup fields with search filtering.

Get lookup field suggestions with POST

Tool to get lookup field suggestions with POST request.

Get Metadata Deployment Status

Poll a Metadata API deployment request and optionally return detailed results.

Get named layout

Retrieve an object's alternate named layout by its discovered layout name.

Get note

Retrieves a specific note by ID from Salesforce, returning all available fields.

Get list views for an object

Returns a collection of list views associated with a Salesforce object.

Get object UI layout

Retrieve object-level UI layout metadata without requiring a record ID.

Get opportunity

Retrieves a Salesforce opportunity by its ID, optionally requesting a selected set of fields.

Get organization limits

Tool to retrieve organization limits with max and remaining allocations.

Get photo actions

Tool to retrieve available photo actions for Salesforce pages.

Get Values for All Picklist Fields

Tool to get values for all picklist fields of a record type, including dependent picklists.

Get platform event schema

Read a platform event schema by event API name or schema ID, without publishing events.

Get Process Approvals

List Salesforce approval processes grouped by object, or read their headers.

Get process rules

Read active workflow rules or their headers, globally, by object, or by rule ID.

Get job info query

Tool to retrieve information about a Salesforce Bulk API v2 query job.

Get job query result

Retrieves results for a completed Bulk API v2 query job in CSV format.

Get query result pages

List up to five parallel result download links for a completed Bulk API 2.

Get quick actions

List global Salesforce quick actions and their types.

Get record count for objects

Tool to retrieve total record counts for specified Salesforce objects.

Get record edit page actions

Tool to get available actions on record edit pages.

Get related list actions

Tool to get actions on related lists for record detail pages.

Get batch of related list user preferences

Tool to get a batch of related list user preferences from Salesforce.

Get related list records with request body

Tool to retrieve related list records with request body parameters for filtering and pagination.

Get relevant items

Get the current user's relevant record IDs grouped by Salesforce object.

Get report fields

Read a report's available filter fields, optionally intersecting other reports.

Get report instance results

Gets the results of a report instance created by running a report.

Get rich text image

Download an image embedded in a Salesforce record's rich text area field.

Get scheduling resources

Discover available Salesforce Scheduler REST resources and their URIs.

Get search result layouts

Retrieves search result layout information for specified sObjects.

Get search scope

Get the connected user's default global search scope and object order.

Search suggested queries

Returns suggested searches based on the user's query string matching searches other users have performed in Salesforce Knowledge.

Get self-service user password status

Read a legacy self-service user's password expiration status or headers.

Get sObject basic information

Get basic sObject metadata, related resource URLs, and recent records.

Get sObject by external ID

Tool to retrieve a Salesforce record by matching an external ID field value.

Get multiple sObject records

Tool to retrieve multiple records of the same sObject type in a single API call.

Get sObject compact layouts

Retrieve compact layouts and record type assignments for a Salesforce object.

Get sObject layout headers

Retrieve only HTTP headers for an object's approval or compact layouts.

Get sObject layouts

Retrieve an object's page layouts and record-type mappings, or HTTP headers.

Get sObject list view information

Tool to retrieve basic information about a specific list view for an sObject.

Get list views for sObject

Tool to retrieve list views for a specified sObject.

Get PlatformAction SObject metadata

Retrieve basic metadata and recent items for the PlatformAction sObject.

Get sObject Quick Action Default Values by ID

Retrieve default values for a quick action in a specific record context.

Get sObject Quick Action Default Values

Retrieve default values for a specific quick action on an sObject.

Get sObject quick actions

List an object's quick actions, including global actions, or retrieve headers only.

Get sObject record by ID

Tool to retrieve a single Salesforce record by ID from any sObject type.

Get records using sObject relationships

Retrieves a collection of related records by traversing an sObject relationship, such as Contacts for an Account.

Get layouts for object with record type

Tool to retrieve layout metadata for a specific record type on an object.

Get approval layouts for object

Retrieves approval layouts for a specified Salesforce object.

Get updated sObject records

Retrieves IDs of sObject records updated within a specified timeframe, along with the latest date covered.

Get support knowledge

Retrieves the root of the Support Knowledge REST API.

Get directory of supported objects

Tool to get a Salesforce org's active theme and directory of supported objects.

Get support knowledge articles

Retrieves visible Salesforce Knowledge articles, with filters including publication status and data categories.

Get Survey Translations

Read translated Survey Flow field values individually or in a batch.

Get tabs

List all tabs available to the current user, or inspect their HTTP headers.

Get theme

Tool to get icons and colors for Salesforce UI themes.

Get Tooling completions

Retrieve available Apex system symbol or Visualforce markup completions.

Get Tooling FlexiPage

Retrieve one FlexiPage metadata record by its Tooling API ID.

Get Tooling API record

Retrieve one complete Tooling API metadata record by object name and ID.

Get lookup field actions

Tool to get lookup field actions for a Salesforce object.

Get MRU List View Actions

Tool to retrieve header actions available on the MRU (Most Recently Used) list view for a specified Salesforce object.

Get related list actions

Tool to get available actions on related lists for a record detail page.

Get Personalized Navigation Items

Tool to get personalized navigation items for a specific Salesforce app.

Get Account AllAccounts list view metadata

Retrieves list view metadata for the Account AllAccounts view using Salesforce UI API.

Get List View Metadata

Tool to get list view metadata from Salesforce UI API.

Get Account SearchResult list view metadata

Retrieves list view metadata for the Account __SearchResult view using Salesforce UI API.

Get List Views for Object

Tool to get list views for a Salesforce object.

Get record UI data and metadata

Tool to retrieve layout, field metadata, and record data in a single response.

Get related list user preferences

Tool to retrieve user preferences for a specific related list on an object.

Get user info

Retrieves information about the current user or a specific user in Salesforce.

Get custom actions headers

Tool to return HTTP headers for custom invocable actions without response body.

Get standard actions headers

Tool to return HTTP headers for standard invocable actions metadata without response body.

Get AppMenu Salesforce1 headers

Tool to return HTTP headers for AppMenu Salesforce1 mobile navigation items without response body.

Get process rules headers

Tool to return HTTP headers for process rules of an sObject without retrieving the response body.

Get Quick Actions headers

Tool to return HTTP headers for Quick Actions resource without response body.

Get quick action default values headers by ID

Tool to return HTTP headers for sObject quick action default values by context ID without response body.

Get global publisher layouts headers

Tool to return HTTP headers for all global publisher layouts without response body.

Get sObject quick action headers

Tool to return HTTP headers for a specific sObject quick action without response body.

Get User password headers

Request HTTP headers for a Salesforce user's password resource without retrieving the response body.

List accounts

List Salesforce accounts using a SOQL query with filtering, sorting, and field selection.

List Analytics notifications

List Analytics notifications or report/dashboard subscriptions by source.

List Analytics templates

Tool to list CRM Analytics templates available in the org.

List API versions

List available Salesforce REST API versions, release labels, and root URLs.

List bulk jobs

List one page of Salesforce Bulk API ingest or query jobs with optional filters.

List campaigns

Lists campaigns from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection.

List communities

List Experience Cloud sites available to the connected Salesforce user.

List contacts

Lists Salesforce contacts using a SOQL query with filtering, sorting, and field selection, returning one page with pagination indicators.

Get custom invocable actions

Retrieves the list of custom actions including Flow actions, Apex actions, and invocable processes.

List dashboards

Lists dashboards with basic metadata including name, ID, and URLs.

List email templates

Lists available email templates in Salesforce with filtering and search capabilities.

List folder children

List one page of a Salesforce folder's immediate child folders.

List folders

List one page of visible Salesforce folders, optionally filtered by content type.

List folder share recipients

List eligible folder share recipients without granting any access.

List leads

Lists leads from Salesforce using SOQL query, allowing flexible filtering, sorting, and field selection.

List notes

Lists Salesforce Note or ContentNote records using a SOQL query with filtering, sorting, and field selection.

List opportunities

Lists Salesforce opportunities using a SOQL query with flexible filtering, sorting, and field selection.

List pricebook entries

Lists Salesforce pricebook entries using SOQL, with flexible filtering, sorting, and field selection.

List pricebooks

Lists Salesforce pricebooks using SOQL, with flexible filtering, sorting, and field selection.

List recent list views

List recently used list views for a Salesforce object.

List recent records

List records recently viewed or referenced by the connected Salesforce user.

List report filter operators

List available report or dashboard filter operators by field data type.

List report runs

List asynchronous runs of a Salesforce report, including status and results URLs.

List reports

Lists reports with basic metadata including name, ID, and URLs.

List report types

List report types available to the connected Salesforce user.

Get standard invocable actions

Retrieves the list of standard actions that can be statically invoked.

List Tooling API objects

List available Salesforce Tooling API objects and their metadata.

Log call

Logs a completed phone call as a task in Salesforce with call-specific details like duration, type, and disposition.

Log email activity

Creates an EmailMessage record to log email activity in Salesforce, associating it with related records.

Mass transfer ownership

Transfers ownership of up to 200 Salesforce records to a new owner using the composite API.

Parameterized Search

Searches Salesforce objects using parameterized GET or POST requests instead of a SOSL clause.

Upsert records using external ID

Tool to upsert up to 200 records using external ID field matching.

Execute Composite Graph

Tool to execute multiple related REST API requests in a single transactional call with up to 500 subrequests per graph.

Create records using sObject Collections

Tool to create up to 200 records in one request using sObject Collections.

Parameterized Search

Tool to execute parameterized search across Salesforce objects with advanced filtering.

Process Approvals

Submit records for approval, or approve/reject pending work items as an assigned approver.

Query All (including deleted)

Tool to execute SOQL queries including soft-deleted and archived records.

Query more (next page of SOQL results)

Retrieve the next page of SOQL results using a query locator (GET /query/{queryLocator}).

Refresh dashboard

Trigger an asynchronous refresh of a Salesforce dashboard's cached data.

Remove from campaign

Delete a CampaignMember record by its ID, or find and delete the first matching member for a campaign and lead or contact ID.

Replace folder shares

Replace a folder's entire share list, removing omitted shares.

Reset self-service user password

Reset a legacy self-service user's password and email them a reset link.

Retrieve lead by id

Retrieves a Salesforce Lead by ID, optionally selecting fields.

Retrieve opportunities data

Retrieves basic Salesforce Opportunity object metadata and recently viewed opportunity items.

Run report

Runs a report synchronously (GET /analytics/reports/{id}?

Run report async

Run a Salesforce report asynchronously (POST /analytics/reports/{id}/instances).

Run report with overrides

Run a report synchronously with transient metadata overrides.

Run SOQL query

Executes a SOQL SELECT query against Salesforce data and returns a page of matching records with pagination information.

Run tests asynchronously

Enqueue explicitly selected Apex or automated flow test classes and methods.

Run tests synchronously

Run methods from one Apex or automated flow test class synchronously.

Save report

Create a saved report, or update selected fields when report_id is provided.

Search accounts

Search Salesforce accounts by name, industry, type, location, or contact information.

Search campaigns

Search for Salesforce campaigns using multiple criteria like name, type, status, date range, or active status.

Search contacts

Searches Salesforce contacts by name, email, phone, account name, or title using partial matches.

Search suggested article title matches

Search for Salesforce Knowledge articles with titles matching the search query.

Search leads

Searches Salesforce leads by name, email, phone, company, title, status, or lead source, combining supplied criteria with OR.

Search notes

Search Salesforce Note records by title, body, parent name, owner, creation date, or privacy.

Search opportunities

Search for Salesforce opportunities using multiple criteria like name, account, stage, amount, close date, or status.

Search tasks

Search for Salesforce tasks using multiple criteria like subject, status, priority, assigned user, related records, or dates.

Search Tooling API records

Search Tooling API metadata records with a SOSL statement.

Send email

Sends an email through Salesforce with options for recipients, attachments, and activity logging.

Send email from template

Sends an email using a predefined Salesforce email template with merge field support.

Send mass email

Sends individual emails using a template or custom subject and body in batches of up to 150 via emailSimple, counting against the org's daily single-email allocation.

Set self-service user password

Replace one legacy self-service user's password with the supplied password.

Set user password

Set or reset a Salesforce user's password.

Update sObject record

Tool to update specific fields in an existing Salesforce sObject record.

Get user password expiration status

Tool to check whether a Salesforce user's password has expired.

Start metadata deployment

Submit a ZIP package to the Salesforce Metadata API for deployment.

Execute Tooling API query

Tool to execute SOQL queries against Salesforce Tooling API metadata objects.

Trigger process rules

Trigger all active workflow rules for records, regardless of evaluation criteria.

Update account

Updates an existing account in Salesforce with the specified changes.

Update analytics notification

Save changes to an analytics notification's schedule, delivery or subscription settings.

Update campaign

Updates an existing campaign in Salesforce with the specified changes.

Update contact

Updates an existing contact in Salesforce with the specified changes.

Update custom field metadata

Update the Metadata representation of one CustomField Tooling record.

Update dashboard

Saves metadata changes to an existing Salesforce dashboard.

Update a favorite

Tool to update a favorite's properties in Salesforce UI API.

Update folder

Rename a Salesforce report or dashboard folder by its ID.

Update folder share

Update the access level of one existing report or dashboard folder share.

Update Knowledge article version

Publish, unpublish, archive, schedule publication or archiving, or update assignment details for a Salesforce Knowledge primary article version.

Update lead

Updates an existing lead in Salesforce with the specified changes.

Update list view preferences

Tool to update user preferences for a Salesforce list view including column widths, text wrapping, and display order.

Update note

Updates an existing note in Salesforce with the specified changes.

Update opportunity

Updates an existing Salesforce opportunity with supplied standard or custom fields, omitting empty standard strings.

Update a record

Tool to update a record's data in Salesforce via UI API.

Update Related List Preferences

Update user preferences for a specific Salesforce related list, including column widths, text wrapping, and sort order.

Update sObject collection

Update up to 200 Salesforce records by ID in one request.

Update task

Updates an existing task in Salesforce with new information.

Update Tooling Flow

Delete and replace a draft Flow version with updated Tooling API Metadata.

Update Tooling API record

Update a supported Salesforce Tooling API record by object name and ID.

Upload file to Salesforce Files

Upload a file to Salesforce Files home via the Connect REST API.

Upload job data

Tool to upload CSV data to a Salesforce Bulk API v2 ingest job.

Upsert sObject by External ID

Upsert a Salesforce record by external ID, creating or updating it based on the matching value.

Upsert Survey Translations

Add or update Survey Flow field translations individually or in a batch.

Who Am I

Return the identity (email, name, org) of the connected Salesforce account.

FAQ

Frequently asked questions

With a standalone Salesforce MCP server, the agents and LLMs can only access a fixed set of Salesforce tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Salesforce and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. Google ADK fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Salesforce tools.

Yes, absolutely. You can configure which Salesforce scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Salesforce data and credentials are handled as safely as possible.

Start with Salesforce.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Salesforce tool your agent needs.Free to start.

Start building