Skip to main content
Glama
hypn4

Salesforce MCP Server

by hypn4

salesforce_upsert_record

Upsert Salesforce records using an external ID: update if found, create if missing.

Instructions

Upsert a record using an external ID field.

If a record with the external ID exists, it will be updated. Otherwise, a new record will be created.

Args: sobject: SObject type (e.g., 'Account', 'Contact') external_id_field: Name of the external ID field data: Record data including the external ID field value. Example: {"External_Id__c": "EXT-001", "Name": "Acme Corp"}

Returns: Upsert result with success status

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYes
sobjectYes
external_id_fieldYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of disclosing behavior. It clearly indicates mutation through 'updated' and 'created', but it does not cover permission requirements, error behavior, or whether omitted data fields are preserved during an update. The return value is only vaguely described as 'success status'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core behavior, and structured with clear Args and Returns sections. Every sentence earns its place without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, the description covers the essential invocation details: operation, conditional behavior, parameter meanings, an example, and return outcome. Minor gaps around permissions, error cases, and update semantics prevent full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the Args section compensates meaningfully with concrete examples and the requirement that data include the external ID field. It explains all three parameters, though external_id_field semantics could be slightly more detailed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence specifies the action (upsert), the resource (record), and the mechanism (external ID field). The subsequent if/exists/otherwise-create explanation makes the operation unambiguous and clearly distinguishes it from salesforce_create_record and salesforce_update_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The conditional behavior—update when the external ID exists, create otherwise—tells the agent exactly when this tool is appropriate. It does not explicitly name alternative tools or state when not to use upsert, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

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/hypn4/salesforce-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server