Salesforce MCP Server
Salesforce MCP 서버
Claude와 Salesforce를 통합하는 MCP(Model Context Protocol) 서버 구현으로, Salesforce 데이터 및 메타데이터와 자연어 상호작용을 지원합니다. 이 서버를 통해 Claude는 일상적인 언어를 사용하여 Salesforce 객체와 레코드를 쿼리, 수정 및 관리할 수 있습니다.
특징
개체 및 필드 관리 : 자연어를 사용하여 사용자 정의 개체 및 필드를 만들고 수정합니다.
스마트 개체 검색 : 부분 이름 일치를 사용하여 Salesforce 개체 찾기
자세한 스키마 정보 : 모든 개체에 대한 포괄적인 필드 및 관계 세부 정보를 얻으세요.
유연한 데이터 쿼리 : 관계 지원 및 복잡한 필터를 사용한 레코드 쿼리
데이터 조작 : 레코드를 쉽게 삽입, 업데이트, 삭제 및 업서트합니다.
객체 간 검색 : SOSL을 사용하여 여러 객체에서 검색
직관적인 오류 처리 : Salesforce 관련 오류 세부 정보를 통한 명확한 피드백
Related MCP server: Salesforce MCP Server
설치
지엑스피1
설정
Salesforce 인증
다음 두 가지 방법 중 하나를 사용하여 Salesforce에 인증할 수 있습니다.
1. 사용자 이름/비밀번호 인증
Salesforce 자격 증명 설정
보안 토큰 받기(Salesforce 설정에서 재설정)
구성 섹션에 표시된 대로 환경 변수를 구성합니다.
2. 소비자 키/비밀번호를 사용한 OAuth2 인증
Salesforce에서 연결된 앱 설정
소비자 키와 소비자 비밀번호를 얻으세요
구성 섹션에 표시된 대로 환경 변수를 구성합니다.
IDE 통합
커서 IDE 설정
패키지를 전역으로 설치합니다.
npm install -g @surajadsul02/mcp-server-salesforceCursor IDE에서 MCP 서버를 구성합니다
.cursor/mcp.json:
env 명령 사용
{
"mcpServers": {
"salesforce": {
"command": "env",
"args": [
"SALESFORCE_USERNAME=your.actual.email@example.com",
"SALESFORCE_PASSWORD=YourActualPassword123",
"SALESFORCE_TOKEN=YourActualSecurityToken123",
"SALESFORCE_INSTANCE_URL=https://login.salesforce.com",
"npx",
"-y",
"@surajadsul02/mcp-server-salesforce"
]
}
}
}커서에서 OAuth2 인증을 위해
{
"mcpServers": {
"salesforce": {
"command": "env",
"args": [
"SALESFORCE_USERNAME=your.actual.email@example.com",
"SALESFORCE_PASSWORD=YourActualPassword123",
"SALESFORCE_TOKEN=YourActualSecurityToken123",
"SALESFORCE_INSTANCE_URL=https://login.salesforce.com",
"SALESFORCE_CONSUMER_KEY=YourConsumerKey",
"SALESFORCE_CONSUMER_SECRET=YourConsumerSecret",
"npx",
"-y",
"@surajadsul02/mcp-server-salesforce"
]
}
}
}클로드 데스크탑 설정
패키지를 전역으로 설치합니다(아직 설치되지 않은 경우):
npm install -g @surajadsul02/mcp-server-salesforceclaude_desktop_config.json에 다음을 추가하세요:
사용자 이름/비밀번호 인증을 위해
{
"mcpServers": {
"salesforce": {
"command": "npx",
"args": ["-y", "@surajadsul02/mcp-server-salesforce"],
"env": {
"SALESFORCE_USERNAME": "your_username",
"SALESFORCE_PASSWORD": "your_password",
"SALESFORCE_TOKEN": "your_security_token",
"SALESFORCE_INSTANCE_URL": "https://login.salesforce.com"
}
}
}
}OAuth2 인증을 위해
{
"mcpServers": {
"salesforce": {
"command": "npx",
"args": ["-y", "@surajadsul02/mcp-server-salesforce"],
"env": {
"SALESFORCE_USERNAME": "your_username",
"SALESFORCE_PASSWORD": "your_password",
"SALESFORCE_CONSUMER_KEY": "your_consumer_key",
"SALESFORCE_CONSUMER_SECRET": "your_consumer_secret",
"SALESFORCE_INSTANCE_URL": "https://login.salesforce.com"
}
}
}
}구성 파일 위치:
macOS:
~/Library/Application Support/Claude Desktop/claude_desktop_config.jsonWindows:
%APPDATA%\Claude Desktop\claude_desktop_config.jsonLinux:
~/.config/Claude Desktop/claude_desktop_config.json
필수 환경 변수
사용자 이름/비밀번호 인증의 경우:
SALESFORCE_USERNAME: Salesforce 사용자 이름/이메일SALESFORCE_PASSWORD: Salesforce 비밀번호SALESFORCE_TOKEN: Salesforce 보안 토큰SALESFORCE_INSTANCE_URL: Salesforce 인스턴스 URL(선택 사항, 기본값: https://login.salesforce.com )
OAuth2 인증의 경우:
SALESFORCE_USERNAME: Salesforce 사용자 이름/이메일SALESFORCE_PASSWORD: Salesforce 비밀번호SALESFORCE_CONSUMER_KEY: 연결된 앱의 소비자 키SALESFORCE_CONSUMER_SECRET: 연결된 앱의 소비자 비밀SALESFORCE_INSTANCE_URL: Salesforce 인스턴스 URL(선택 사항, 기본값: https://login.salesforce.com )
사용 예
객체 검색
"Find all objects related to Accounts"
"Show me objects that handle customer service"
"What objects are available for order management?"스키마 정보 가져오기
"What fields are available in the Account object?"
"Show me the picklist values for Case Status"
"Describe the relationship fields in Opportunity"레코드 쿼리
"Get all Accounts created this month"
"Show me high-priority Cases with their related Contacts"
"Find all Opportunities over $100k"사용자 정의 개체 관리
"Create a Customer Feedback object"
"Add a Rating field to the Feedback object"
"Update sharing settings for the Service Request object"객체 간 검색
"Search for 'cloud' in Accounts and Opportunities"
"Find mentions of 'network issue' in Cases and Knowledge Articles"
"Search for customer name across all relevant objects"개발
소스에서 빌드
# Clone the repository
git clone https://github.com/surajadsul02/mcp-server-salesforce.git
# Navigate to directory
cd mcp-server-salesforce
# Install dependencies
npm install
# Build the project
npm run build문제 해결
인증 오류
자격 증명이 올바른지 확인하세요
사용자 이름/암호 인증의 경우: 보안 토큰이 올바른지 확인하세요.
OAuth2의 경우: 소비자 키와 비밀번호를 확인하세요.
연결 문제
Salesforce 인스턴스 URL을 확인하세요
네트워크 연결 확인
적절한 API 액세스 권한을 확인하세요
커서 IDE 통합
구성 변경 후 Cursor IDE를 다시 시작합니다.
오류 메시지는 개발자 도구(도움말 > 개발자 도구 전환)에서 확인하세요.
패키지가 전역적으로 설치되었는지 확인하세요
Claude 데스크톱 통합
구성 파일 위치 확인
파일 권한 확인
구성 변경 후 Claude Desktop을 다시 시작하세요.
환경 변수가 올바르게 설정되었는지 확인하세요.
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
문제 및 지원
문제가 발생하거나 지원이 필요한 경우 GitHub 저장소에 문제를 제출하세요.
Available Tools
8 toolssalesforce_describe_objectA
Get detailed schema metadata including all fields, relationships, and field properties of any Salesforce object. Examples: 'Account' shows all Account fields including custom fields; 'Case' shows all Case fields including relationships to Account, Contact etc.
| Name | Required | Description | Default |
|---|---|---|---|
| objectName | Yes | API name of the object (e.g., 'Account', 'Contact', 'Custom_Object__c') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool does (get metadata) but lacks details on behavioral traits such as whether it requires authentication, has rate limits, returns paginated results, or handles errors. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the first sentence stating the core purpose and the second providing illustrative examples. Every sentence earns its place by clarifying usage without unnecessary details, making it efficient and easy to understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (metadata retrieval) and the absence of annotations and output schema, the description is adequate but incomplete. It covers the purpose and usage with examples, but lacks details on behavioral aspects and return values, which are important for a tool that likely returns structured metadata. A minimum viable description is provided, but gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'objectName' well-documented in the schema. The description adds minimal value beyond the schema by providing examples ('Account', 'Case', 'Custom_Object__c'), but does not elaborate on parameter semantics like format constraints or usage nuances. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Get detailed schema metadata') and resource ('any Salesforce object'), with concrete examples ('Account', 'Case') that illustrate what the tool retrieves. It distinguishes itself from sibling tools like salesforce_query_records or salesforce_search_objects by focusing on schema metadata rather than data records or object searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to obtain schema metadata including fields, relationships, and properties. It implies usage through examples like 'Account' and 'Case', but does not explicitly state when not to use it or name specific alternatives among the sibling tools, such as salesforce_search_objects for finding objects rather than describing them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_dml_recordsA
Perform data manipulation operations on Salesforce records:
insert: Create new records
update: Modify existing records (requires Id)
delete: Remove records (requires Id)
upsert: Insert or update based on external ID field Examples: Insert new Accounts, Update Case status, Delete old records, Upsert based on custom external ID
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Type of DML operation to perform | |
| objectName | Yes | API name of the object | |
| records | Yes | Array of records to process | |
| externalIdField | No | External ID field name for upsert operations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that operations are destructive (insert, update, delete, upsert) and mentions prerequisites like requiring Id for update/delete and external ID field for upsert. However, it doesn't cover authentication needs, rate limits, error handling, or what happens on partial failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear opening statement followed by bullet points for each operation and examples. Every sentence earns its place by providing essential information without redundancy. It's appropriately sized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters, no annotations, and no output schema, the description is adequate but has gaps. It covers the basic operations and parameters but doesn't address return values, error conditions, or system-level constraints. Given the complexity of DML operations, more behavioral context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining what each operation does (e.g., 'upsert: Insert or update based on external ID field') and providing concrete examples that clarify parameter usage ('Insert new Accounts, Update Case status'). This enhances understanding beyond the schema's technical descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs data manipulation operations on Salesforce records with specific verbs (insert, update, delete, upsert) and distinguishes it from sibling tools like salesforce_query_records (read-only) and salesforce_describe_object (metadata). It explicitly names the resource (Salesforce records) and the action scope (data manipulation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use each operation type (e.g., 'update: Modify existing records (requires Id)'), but doesn't explicitly state when to choose this tool over alternatives like salesforce_manage_object or salesforce_upload_report_xml. It gives operational guidance but lacks sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_manage_fieldA
Create new custom fields or modify existing fields on any Salesforce object:
Field Types: Text, Number, Date, Lookup, Master-Detail, Picklist etc.
Properties: Required, Unique, External ID, Length, Scale etc.
Relationships: Create lookups and master-detail relationships Examples: Add Rating__c picklist to Account, Create Account lookup on Custom Object Note: Changes affect metadata and require proper permissions
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Whether to create new field or update existing | |
| objectName | Yes | API name of the object to add/modify the field | |
| fieldName | Yes | API name for the field (without __c suffix) | |
| label | No | Label for the field | |
| type | No | Field type (required for create) | |
| required | No | Whether the field is required | |
| unique | No | Whether the field value must be unique | |
| externalId | No | Whether the field is an external ID | |
| length | No | Length for text fields | |
| precision | No | Precision for numeric fields | |
| scale | No | Scale for numeric fields | |
| referenceTo | No | API name of the object to reference (for Lookup/MasterDetail) | |
| relationshipLabel | No | Label for the relationship (for Lookup/MasterDetail) | |
| relationshipName | No | API name for the relationship (for Lookup/MasterDetail) | |
| deleteConstraint | No | Delete constraint for Lookup fields | |
| picklistValues | No | Values for Picklist/MultiselectPicklist fields | |
| description | No | Description of the field |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a metadata mutation tool ('Changes affect metadata'), specifies permission requirements ('require proper permissions'), and provides examples of operations. It doesn't mention rate limits, error handling, or the impact on existing data, but covers the essential safety and scope aspects well for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear opening statement followed by bullet-pointed categories and specific examples, then a critical note about permissions. Every sentence earns its place by providing distinct value: the purpose, parameter categories, concrete examples, and important constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex metadata mutation tool with 17 parameters and no annotations or output schema, the description does well by explaining the tool's purpose, scope, permission requirements, and providing examples. However, it doesn't describe what the tool returns (success/failure indicators, field IDs, etc.), which would be helpful given the absence of an output schema. The parameter coverage is handled by the schema, but behavioral context is adequately addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 17 parameters thoroughly. The description adds some context by listing categories of parameters ('Field Types', 'Properties', 'Relationships') and providing examples, but doesn't add significant semantic meaning beyond what's already in the parameter descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Create new custom fields or modify existing fields') and resource ('on any Salesforce object'), distinguishing it from siblings like salesforce_describe_object (metadata inspection), salesforce_dml_records (data manipulation), and salesforce_manage_object (object-level operations). It precisely defines the scope of field management operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (creating/modifying fields with specific types and properties) and mentions prerequisites ('require proper permissions'). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, such as when to use salesforce_manage_object instead for object-level changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_manage_objectA
Create new custom objects or modify existing ones in Salesforce:
Create: New custom objects with fields, relationships, and settings
Update: Modify existing object settings, labels, sharing model Examples: Create Customer_Feedback__c object, Update object sharing settings Note: Changes affect metadata and require proper permissions
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Whether to create new object or update existing | |
| objectName | Yes | API name for the object (without __c suffix) | |
| label | No | Label for the object | |
| pluralLabel | No | Plural label for the object | |
| description | No | Description of the object | |
| nameFieldLabel | No | Label for the name field | |
| nameFieldType | No | Type of the name field | |
| nameFieldFormat | No | Display format for AutoNumber field (e.g., 'A-{0000}') | |
| sharingModel | No | Sharing model for the object |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses important behavioral traits: 'Changes affect metadata' (not data), 'require proper permissions', and the dual create/update capability. However, it doesn't mention potential side effects, error conditions, or what happens during updates to existing objects (e.g., whether changes are reversible).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening statement, bullet points for operations, examples, and a note about permissions. It's appropriately sized for a complex tool, though the bullet formatting could be more concise. Every sentence adds value, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex metadata mutation tool with 9 parameters and no annotations or output schema, the description provides adequate but incomplete coverage. It explains the core operations and permission requirements but lacks details about return values, error handling, and the full scope of what can be modified. The examples help but don't substitute for comprehensive behavioral documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds minimal value beyond what's in the schema - it mentions 'fields, relationships, and settings' for create operations and 'settings, labels, sharing model' for updates, but doesn't provide additional semantic context beyond the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Create new custom objects or modify existing ones') and resources ('in Salesforce'), distinguishing it from siblings like salesforce_describe_object (read-only) and salesforce_manage_field (field-level operations). It explicitly covers both create and update operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Create new custom objects or modify existing ones') and mentions permission requirements, but doesn't explicitly contrast with alternatives like salesforce_manage_field for field-level changes or salesforce_dml_records for data operations. The examples help but don't establish explicit boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_query_recordsA
Query records from any Salesforce object using SOQL, including relationship queries.
Examples:
Parent-to-child query (e.g., Account with Contacts):
objectName: "Account"
fields: ["Name", "(SELECT Id, FirstName, LastName FROM Contacts)"]
Child-to-parent query (e.g., Contact with Account details):
objectName: "Contact"
fields: ["FirstName", "LastName", "Account.Name", "Account.Industry"]
Multiple level query (e.g., Contact -> Account -> Owner):
objectName: "Contact"
fields: ["Name", "Account.Name", "Account.Owner.Name"]
Related object filtering:
objectName: "Contact"
fields: ["Name", "Account.Name"]
whereClause: "Account.Industry = 'Technology'"
Note: When using relationship fields:
Use dot notation for parent relationships (e.g., "Account.Name")
Use subqueries in parentheses for child relationships (e.g., "(SELECT Id FROM Contacts)")
Custom relationship fields end in "__r" (e.g., "CustomObject__r.Name")
| Name | Required | Description | Default |
|---|---|---|---|
| objectName | Yes | API name of the object to query | |
| fields | Yes | List of fields to retrieve, including relationship fields | |
| whereClause | No | WHERE clause, can include conditions on related objects | |
| orderBy | No | ORDER BY clause, can include fields from related objects | |
| limit | No | Maximum number of records to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about relationship query syntax (dot notation, subqueries, custom fields ending in '__r'), which helps the agent understand how to structure queries. However, it doesn't mention important behavioral traits like pagination, rate limits, authentication needs, or error handling, leaving gaps for a tool with 5 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose in the first sentence, followed by helpful examples. The examples are well-structured but slightly lengthy; every sentence earns its place by clarifying relationship query usage, though it could be more concise by integrating some explanatory notes into the examples themselves.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a Salesforce query tool with 5 parameters, no annotations, and no output schema, the description is moderately complete. It covers the core functionality and relationship syntax well but lacks details on behavioral aspects (e.g., result format, error cases, limits) and doesn't fully compensate for the absence of an output schema, leaving the agent uncertain about what to expect from the tool's response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds value by providing concrete examples that illustrate how to use parameters like fields and whereClause with relationship queries, but it doesn't add semantic meaning beyond what the schema descriptions already state. This meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Query records from any Salesforce object using SOQL, including relationship queries.' This specifies the verb ('query'), resource ('records from any Salesforce object'), and method ('using SOQL'), distinguishing it from siblings like salesforce_dml_records (for data manipulation) and salesforce_search_all/search_objects (for search operations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool by emphasizing SOQL queries with relationship support, which implicitly differentiates it from search tools that might use different query languages or scopes. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the siblings, such as when to prefer salesforce_search_all over this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_search_allA
Search across multiple Salesforce objects using SOSL (Salesforce Object Search Language).
Examples:
Basic search across all objects: { "searchTerm": "John", "objects": [ { "name": "Account", "fields": ["Name"], "limit": 10 }, { "name": "Contact", "fields": ["FirstName", "LastName", "Email"] } ] }
Advanced search with filters: { "searchTerm": "Cloud*", "searchIn": "NAME FIELDS", "objects": [ { "name": "Account", "fields": ["Name", "Industry"], "orderBy": "Name DESC", "where": "Industry = 'Technology'" } ], "withClauses": [ { "type": "NETWORK", "value": "ALL NETWORKS" }, { "type": "SNIPPET", "fields": ["Description"] } ] }
Notes:
Use * and ? for wildcards in search terms
Each object can have its own WHERE, ORDER BY, and LIMIT clauses
Support for WITH clauses: DATA CATEGORY, DIVISION, METADATA, NETWORK, PRICEBOOKID, SNIPPET, SECURITY_ENFORCED
"updateable" and "viewable" options control record access filtering
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | Yes | Text to search for (supports wildcards * and ?) | |
| searchIn | No | Which fields to search in | |
| objects | Yes | List of objects to search and their return fields | |
| withClauses | No | Additional WITH clauses for the search | |
| updateable | No | Return only updateable records | |
| viewable | No | Return only viewable records |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions access control options ('updateable' and 'viewable' options control record access filtering') and search capabilities, but doesn't cover important behavioral aspects like rate limits, authentication requirements, error handling, or what the output looks like. It provides some operational context but misses key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, but includes extensive examples and notes that could be streamlined. While informative, some details (like the second advanced example) might be excessive. The structure is logical but could be more concise while maintaining clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex search tool with 6 parameters, no annotations, and no output schema, the description provides good operational guidance but lacks critical context. It doesn't describe the return format, error conditions, performance characteristics, or how results are structured across multiple objects. The examples help but don't fully compensate for missing behavioral and output information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds significant value through detailed examples showing how parameters work together, explanations of wildcard support, WITH clause types, and object-specific clauses. It provides practical context beyond the schema's technical definitions, though it doesn't fully explain all parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Search across multiple Salesforce objects') and technology used ('using SOSL'), distinguishing it from sibling tools like salesforce_query_records (which likely uses SOQL) and salesforce_search_objects (which might be more limited). It provides a verb+resource+method combination that is precise and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through examples and notes (e.g., 'Search across multiple Salesforce objects'), but doesn't explicitly state when to use this tool versus alternatives like salesforce_query_records or salesforce_search_objects. It provides operational guidance but lacks comparative context with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_search_objectsB
Search for Salesforce standard and custom objects by name pattern. Examples: 'Account' will find Account, AccountHistory; 'Order' will find WorkOrder, ServiceOrder__c etc.
| Name | Required | Description | Default |
|---|---|---|---|
| searchPattern | Yes | Search pattern to find objects (e.g., 'Account Coverage' will find objects like 'AccountCoverage__c') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions searching for standard and custom objects with examples, but doesn't disclose behavioral traits such as whether this is a read-only operation, if there are rate limits, authentication needs, or what the return format looks like. For a search tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of two sentences that directly explain the tool's purpose and provide illustrative examples. Every sentence earns its place without unnecessary elaboration, making it efficient and easy to understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., read-only status, rate limits), output format, and doesn't fully compensate for the absence of structured data. This makes it inadequate for an AI agent to fully understand the tool's behavior and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'searchPattern' fully documented in the input schema. The description adds examples like 'Account' and 'Order' to illustrate usage, but doesn't provide additional semantic details beyond what the schema already states (e.g., pattern matching rules or case sensitivity). Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as searching for Salesforce objects by name pattern, with specific examples like 'Account' and 'Order'. It distinguishes from siblings by focusing on object search rather than describing objects (salesforce_describe_object), managing objects (salesforce_manage_object), or searching all data (salesforce_search_all). However, it doesn't explicitly contrast with salesforce_search_all, which might handle broader searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when searching for objects by name pattern, as shown in the examples. However, it doesn't explicitly state when to use this tool versus alternatives like salesforce_search_all or salesforce_describe_object, nor does it provide exclusions or prerequisites. The context is clear but lacks explicit guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salesforce_upload_report_xmlA
Upload XML to generate or update reports in Salesforce.
Examples:
Create a new report:
reportName: "Monthly Sales Summary"
folderId: "00l5e000000XXXXX" (optional - uploads to user's private reports by default)
xmlContent: "<Report xmlns=..."
isDeveloperName: false
Update existing report:
reportId: "00O5e000000XXXXX"
xmlContent: "<Report xmlns=..."
Note: XML must follow Salesforce report metadata format. For custom report types, ensure the report type exists in your org before uploading.
| Name | Required | Description | Default |
|---|---|---|---|
| reportName | No | Name for the new report (required for new reports) | |
| reportId | No | Report ID to update an existing report | |
| folderId | No | Folder ID where the report should be saved (optional) | |
| xmlContent | Yes | XML content for the report in Salesforce report metadata format | |
| isDeveloperName | No | If true, reportName is treated as the API name instead of the display name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's dual functionality (create/update), default behavior (uploads to user's private reports by default), and important constraints (XML format requirements, report type prerequisites). However, it doesn't mention potential side effects like overwriting existing reports during updates or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by numbered examples and important notes. Every sentence adds value: the opening defines the tool, examples demonstrate usage, and notes provide critical constraints. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, the description does an excellent job covering usage patterns, constraints, and prerequisites. The main gap is the lack of information about return values or error conditions, which would be helpful given the absence of an output schema. However, the description provides substantial context for proper tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds significant value by clarifying parameter usage patterns through concrete examples, showing how parameters combine for different scenarios (new report requires reportName, update requires reportId), and explaining the optional folderId default behavior. This goes well beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('upload XML to generate or update reports') and identifies the resource ('reports in Salesforce'). It distinguishes this from sibling tools like salesforce_query_records or salesforce_dml_records by focusing specifically on report XML upload functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance through numbered examples showing when to use different parameter combinations (create new report vs. update existing report). It also includes important contextual notes about XML format requirements and prerequisites for custom report types, which helps the agent understand when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
- First observed
salesforce_describe_object - First observed
salesforce_dml_records - First observed
salesforce_manage_field - First observed
salesforce_manage_object - First observed
salesforce_query_records - First observed
salesforce_search_all - First observed
salesforce_search_objects - First observed
salesforce_upload_report_xml
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose with no overlap: describe_object for metadata, dml_records for data manipulation, manage_field/object for schema changes, query_records for SOQL queries, search_all for SOSL searches, search_objects for object discovery, and upload_report_xml for report management. The descriptions reinforce these boundaries, making tool selection unambiguous.
All tools follow a consistent snake_case pattern with a 'salesforce_' prefix and descriptive verb_noun combinations (e.g., salesforce_describe_object, salesforce_query_records). This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming style.
With 8 tools, the server is well-scoped for Salesforce operations, covering key areas like data access, metadata management, and reporting. Each tool serves a specific, non-redundant function, making the count appropriate for the domain without being overwhelming or insufficient.
The tool set provides comprehensive coverage for core Salesforce workflows, including CRUD operations, schema management, querying, and reporting. A minor gap exists in lacking a dedicated tool for handling Salesforce-specific features like Apex code or flows, but agents can work around this using existing tools for most common tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server implementation that integrates Claude with Salesforce, enabling natural language interactions with Salesforce data and metadata for querying, modifying, and managing objects and records.6151,718167MIT
- AlicenseAqualityCmaintenanceAn MCP server implementation that integrates Claude with Salesforce, enabling natural language interactions with Salesforce data and metadata for querying, modifying, and managing objects and records.74815MIT
- -licenseNot gradedqualityNot gradedmaintenanceAn MCP server implementation that integrates Claude/VS Code with Salesforce, enabling natural language interactions with your Salesforce data and metadata.-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides comprehensive access to Salesforce Tooling API for metadata management, SOQL queries, code analysis, and debugging through Claude and other AI assistants.425MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/usama-dtc/salesforce_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server