MCP server for Salesforce metadata and data operations
Salesforce MCP has 10 tools with basic schemas and descriptions, but significant quality gaps. Tool names follow verb_noun convention (good), but descriptions are inconsistent, some are detailed (create_tab: 127 chars), others minimal (run_soql_query: 47 chars). Parameter descriptions exist but lack actionable constraints (e.g., 'query' param has no format guidance). Array schemas use 'properties' instead of 'items', violating JSON Schema. No output schemas documented. Error handling is absent, no recovery guidance or categorization. No tool annotations (readOnlyHint, destructiveHint). Security: no evidence of secret injection or permission gates. Composition is reasonable (10 focused tools), but missing idempotency guarantees and pagination for list operations.
Creates a new Lightning Custom Application.
Create a new object in salesforce
Creates a new record in a Salesforce object.
Creates a new Custom Tab in Salesforce (for Custom Objects, VF Pages, or Web Links).
Delete fields in a salesforce custom object
Deletes a record from Salesforce.
Retrieves field metadata for a Salesforce object.
Array schemas use 'properties' instead of 'items' (create_object.fields, delete_object_fields.fields). This violates JSON Schema spec and prevents proper validation of array elements.
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to guess at field names and types for downstream tool chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools marked DESTRUCTIVE (delete_object_fields, delete_record) lack explicit hints to warn agents of irreversible consequences.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Executes a SOQL query against Salesforce.
Executes a SOSL search against Salesforce.
Updates an existing record in Salesforce.
Query/search parameters (run_soql_query.query, run_sosl_search.search) lack format constraints. No guidance on SOQL/SOSL syntax, valid field names, or error recovery. LLMs will hallucinate invalid queries.
No error handling or recovery guidance. Implementations return TextContent but no structured error classification (retryable vs user-fixable vs fatal). Agents cannot self-correct on failures.