Describe Object Schema
sf_describe_objectRetrieves a Salesforce object's fields, child relationships, and record types via the REST Describe API. Use it to inspect object structure before querying or creating records.
Instructions
Retrieves schema metadata for a Salesforce object via the REST Describe API: fields (name, label, type, required, picklist values, length, references), child relationships, and record type info. Call this before querying or creating records on an unfamiliar object, or when a user asks what fields exist on an object.
objectApiName: SObject API name, e.g. 'Account', 'My_Object__c' fieldsOnly: set true for a smaller/faster response with just the field list, omitting child relationships and record types waitForFields: field API names to poll for after a sf_create_custom_field call — Salesforce's own REST describe/SOQL schema cache can lag several minutes behind the Metadata API on some orgs even though the field is fully deployed; this retries so you don't have to. Not caused by this MCP server and not fixable here — it's Salesforce-side. timeoutSeconds: max time to poll when waitForFields is set (default 60, max 300)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fieldsOnly | No | If true, returns only the field list (name, label, type, required, picklist values) and omits child relationships/record type info — use for a smaller, faster response when you only need field names/types before a query or DML call. | |
| objectApiName | Yes | SObject API name to describe, e.g. 'Account', 'My_Object__c' | |
| waitForFields | No | Field API names to wait for. Salesforce's own REST describe/SOQL schema cache can lag several minutes behind a metadata deploy on some orgs (confirmed live 2026-07-31: a field visible via Tooling API and the Metadata API can still be invisible to REST describe and SOQL long after creation) — this isn't caused by anything in this MCP server (no caching happens here; every call is a fresh HTTP request), so it can't be fixed client-side, only worked around. When set, retries describe until every named field appears or timeoutSeconds elapses, instead of you polling manually. | |
| timeoutSeconds | No | Max time to poll when waitForFields is set. Ignored otherwise. |