Cirra AI Salesforce Admin MCP Server
Server Details
Comprehensive Salesforce administration and data management capabilities
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
40 toolscirra_ai_initRead-onlyIdempotentInspect
IMPORTANT: call cirra_ai_init before calling any other tools of the Cirra AI MCP server. You MUST carefully read the instructions returned from this tool call before proceeding
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | (optional) Controls whether the provided `cirra_ai_team` and/or `sf_user` apply only to this chat (`thread`) or are saved as new defaults for future (`global`). Only use 'thread' if explicitly instructed by the user. Leave blank if not switching team or connection. | global |
| sf_user | No | (optional) A Salesforce username identifying the Salesforce connection to use. Omit this to use the current default connection. | |
| cirra_ai_team | No | (optional) The Cirra AI team to use. Use the literal value `__Personal__` to select the user's personal account. Omit this to use the previously selected default team (if any). |
fetch_moreARead-onlyIdempotentInspect
Fetch the next page of a large tool response. Use the nextCursor from _pagination in a previous response. This tool loads data into the context window — prefer the artifact download URL when available.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | Yes | Pagination cursor from _pagination.nextCursor | |
| pageSize | No | (optional) Number of records to return in this page. If omitted, uses the page size from the original query. | |
| artifactId | Yes | Artifact ID from instructions.artifactId |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/idempotent/destructive hints, so safety is covered. Description adds valuable behavioral context: 'loads data into the context window' explains the side effect/mechanism, and clarifies the cursor source. Does not contradict annotations.
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?
Three sentences with zero waste: (1) purpose, (2) required input source, (3) alternative preference. Front-loaded with action verb 'Fetch'. Every clause earns its place.
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 single-purpose pagination helper with 100% schema coverage and clear annotations, the description is complete. It explains the mechanism (context window loading), prerequisites (previous response cursor), and alternatives (artifact URL) without needing output schema details.
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 coverage is 100% (baseline 3). Description adds semantic context by linking 'cursor' to '_pagination.nextCursor' and 'artifactId' to the 'artifact download URL' alternative, helping the agent understand the relationship between parameters and the pagination workflow.
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?
States specific action ('Fetch the next page') and resource ('large tool response'). Clearly distinguishes from CRUD siblings (sobject_create, soql_query, etc.) by identifying itself as a pagination utility rather than a Salesforce operation.
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?
Explicitly states prerequisite ('Use the nextCursor from _pagination in a previous response') and provides clear alternative guidance ('prefer the artifact download URL when available'), helping the agent decide between pagination and direct download.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_createInspect
Create a new public group, queue or role in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name for the group | |
| type | Yes | The type of group to create | |
| label | No | The label for the group. Will be generated from the name if not provided. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| properties | No | Additional properties for the group | |
| description | Yes | The description for the group | |
| supportedObjects | No | The objects that the queue can access |
group_membersADestructiveInspect
Add or remove users from public groups, queues, or roles in Salesforce.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | The names, usernames or IDs of the users | |
| groups | Yes | The names, labels or IDs of the public groups, queues or roles | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| operation | Yes | The operation to perform: 'add' to add users to groups, 'remove' to remove users from groups |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (mentions 'remove' matching destructiveHint=true) and adds specific entity context (queues, roles) beyond the tool name. However, it omits behavioral details beyond annotations, such as failure modes for invalid user IDs or whether partial successes occur.
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?
A single efficient sentence with zero waste. Every element earns its place: the dual operation verbs, target resources, specific entity types (distinguishing groups/queues/roles), and scope.
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 rich schema (100% coverage) and comprehensive annotations (destructive, non-idempotent hints), the description provides sufficient context for tool selection. It appropriately handles the complexity of batch membership operations without requiring output schema details.
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 doesn't add syntax details or format examples for parameters (e.g., ID formats), but accurately reflects the dual operation nature (add/remove) specified in the operation enum.
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 action (Add or remove), the target resource (users), the destination entities (public groups, queues, or roles), and the system (Salesforce). This effectively distinguishes it from sibling tools like group_create or group_update which manage the groups themselves rather than membership.
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 by specifying the operation type (membership management) and target entity types, but lacks explicit guidance on when to choose this over user_update or permission_set_assignments, and doesn't mention prerequisites like admin permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_updateIdempotentInspect
Update a public group or queue in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | The name or ID of the public group or queue. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| properties | Yes | Properties to update |
link_buildRead-onlyIdempotentInspect
Build Salesforce links for setup pages. Always use this tool when user requests a setup page link
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The type of the link to build | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. If not provided, the default connection will be used | |
| setupConfig | No | Used with `setup` types. Describes the type of setup page to build link for |
metadata_createInspect
Create one or more Salesforce metadata elements of a specified type, such as custom fields, validation rules, or custom labels
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The metadata type. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| metadata | Yes | The array of metadata records to create. Each record must include at least a 'fullName' property |
metadata_deleteDestructiveInspect
Delete one or more Salesforce metadata elements of a specified type, such as custom fields, validation rules, or custom labels. Maximum is 10 per batch - DO NOT EXCEED.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The metadata type. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| fullNames | Yes | The full name(s) of the metadata element(s) to delete. |
metadata_describeRead-onlyIdempotentInspect
List all Salesforce metadata types available in the org and their properties, such as directory name, suffix, and child objects
| Name | Required | Description | Default |
|---|---|---|---|
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| verbose | Yes | If false or missing, return only the names of the metadata types. This is the default. If true, return additional properties for each type. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. |
metadata_listRead-onlyIdempotentInspect
List Salesforce metadata elements of a specific type, such as flows, custom objects, or reports, optionally scoped by folder
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The metadata type | |
| folder | No | The folder name (optional). If not provided, all folders are searched. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. |
metadata_readRead-onlyIdempotentInspect
Read full details for one or more Salesforce metadata elements of a specified type, such as flows, validation rules, or approval processes
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The metadata type | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. | |
| fullNames | Yes | The full name(s) of the metadata elements to read. |
metadata_updateIdempotentInspect
Update one or more Salesforce metadata elements of a specified type, such as flows, validation rules, or custom labels
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The metadata type. | |
| upsert | No | Whether to upsert the metadata. If true, the metadata will be upserted (created if it does not yet exist). If false, the metadata will be updated. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| metadata | Yes | The array of metadata records to update. Each record must include at least a 'fullName' property and other required fields for the type. See instructions for details. |
page_layout_cloneInspect
Create a new page layout by cloning an existing layout in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| layout | Yes | The name or ID of the existing layout to clone. ID is preferred if you have it. If using a name, you must also provide the sObject | |
| sObject | Yes | The name of the sObject to which the layout applies. Not needed if you have provided the layout ID | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| namespace | Yes | The namespace prefix of the existing layout to clone. Not needed if you have provided the layout ID or if the layout has no namespace | |
| newLayoutName | Yes | Name of the new (cloned) page layout to create |
page_layout_updateIdempotentInspect
Update the properties or contents of a Salesforce page layout, including adding, removing, or reordering fields, sections, and related lists
| Name | Required | Description | Default |
|---|---|---|---|
| patch | Yes | The array of modifications that need to be applied. This should be provided in the `JSON Patch` format | |
| layout | Yes | The name or ID of the layout. ID is preferred if you have it. If using a name, you must also provide the sObject | |
| sObject | No | The name of the sObject to which the layout applies. Not needed if you have provided the layout ID | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| namespace | No | The namespace prefix of the Page Layout. Not needed if you have provided the layout ID or if the layout has no namespace |
permission_set_assignmentsCDestructiveInspect
Assign or remove permission sets from users in Salesforce.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | The names, usernames or IDs of the users | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| operation | Yes | The operation to perform: 'add' to assign permission sets to users, 'remove' to remove assignments from users | |
| permissionSets | Yes | The names, labels or IDs of the permission sets |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations declare destructiveHint=true and idempotentHint=false, the description fails to disclose what specifically is destroyed (PermissionSetAssignment records) or explain the non-idempotent behavior (e.g., whether adding an existing assignment fails silently or errors). It adds no context about batch limits or Salesforce-specific side effects.
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 single 9-word sentence is front-loaded and contains no filler, earning high marks for structural efficiency. However, the extreme brevity borders on under-specification for a destructive operation with multiple array parameters.
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 destructive nature, 4 parameters, array inputs implying batch operations, and no output schema, the description is insufficient. It omits expected behavior on partial failures, returns values, and the irreversible nature of removing assignments.
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 score is 3. The description does not augment the schema's parameter documentation (e.g., elaborating on valid identifier formats for 'users' or 'permissionSets' beyond what the schema property descriptions already provide).
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 uses specific verbs ('Assign' and 'remove') and clearly identifies the resource ('permission sets') and scope ('from users in Salesforce'). It implicitly distinguishes from sibling 'permission_set_update' by focusing on user assignments rather than metadata updates, though it does not explicitly contrast with other user management tools.
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 no guidance on when to prefer this tool over alternatives like 'user_update' or 'permission_set_update', nor does it mention prerequisites (e.g., admin privileges) or advise on choosing between 'add' and 'remove' operations beyond the literal words.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
permission_set_updateIdempotentInspect
Update the properties or contents of a permission set in Salesforce, including read and edit access to objects and fields
| Name | Required | Description | Default |
|---|---|---|---|
| patch | Yes | The array of modifications that need to be applied. This should be provided in the `JSON Patch` format | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| namespace | No | The namespace of the permission set, if applicable | |
| permissionSet | Yes | The name or ID of the permission set. |
profile_cloneInspect
Clone an existing user profile in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | The name of the new Profile | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| clonedProfileName | Yes | The name of existing Profile which will be cloned |
profile_describeRead-onlyIdempotentInspect
Return detailed metadata for a Salesforce Profile.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | The name or ID of the Profile. | |
| sObject | Yes | Use this to return only permissions related to the a specific sObject type. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| permissionTypes | Yes | List of specific permission types to return. Use this whenever possible (especially for standard profiles) to reduce the size of the response. |
profile_updateIdempotentInspect
Update a Salesforce user profile, including object permissions, field-level security, tab visibility, and system permissions
| Name | Required | Description | Default |
|---|---|---|---|
| patch | Yes | The array of modifications that need to be applied. This should be provided in the `JSON Patch` format | |
| profile | Yes | The name or ID of the Profile | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. |
record_type_createInspect
Create a new sObject record type in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the new record type | |
| label | Yes | The label for the new record type | |
| active | No | Whether the new record type should be active | |
| sObject | Yes | The name of the object for which the record type is being created. Include a namespace prefix for custom objects if applicable | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| description | Yes | The description for the new record type | |
| defaultLayout | Yes | The default layout to use for all profiles. If not provided, the default layout will be the standard layout for the object | |
| businessProcess | Yes | The full name or ID of the business process associated with the record type | |
| existingRecordType | Yes | The name of the existing record type to use as a basis for the new record type. If not provided, the Master record type will be used | |
| defaultAvailability | Yes | The default availability settings for the new record type on all profiles. If not specified, the record type will be hidden for all profiles | |
| availabilityOverrides | Yes | An (optional) array of record type availabilities overrides for one or more profiles | |
| compactLayoutAssignment | Yes | The compact layout that is assigned to the record type. | |
| layoutAssignmentOverrides | Yes | An (optional) array of page layout assignments overrides for one or more profiles |
record_type_updateIdempotentInspect
Update or activate/deactivate an sObject record type in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | The new human readable label | |
| active | Yes | Use this property to activate or deactivate a record type | |
| newName | Yes | The new API name | |
| sObject | Yes | The name of the object | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| recordType | Yes | The name or ID of the record type to update | |
| description | Yes | The updated description of the record type | |
| defaultLayout | Yes | The default layout to use for all profiles. If not provided, the default layout will be the standard layout for the object | |
| businessProcess | Yes | The name of the business process associated with the record type | |
| defaultAvailability | Yes | The default availability settings for the new record type | |
| availabilityOverrides | Yes | An (optional) array of record type availabilities overrides for one or more profiles | |
| compactLayoutAssignment | Yes | The compact layout that is assigned to the record type. | |
| layoutAssignmentOverrides | Yes | An (optional) array of page layout assignments overrides for one or more profiles |
report_runRead-onlyIdempotentInspect
Execute a Salesforce report by ID and return its results, with optional filters and format overrides
| Name | Required | Description | Default |
|---|---|---|---|
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. | |
| reportId | Yes | The ID of the report to execute (15 or 18 character Salesforce ID) | |
| maxRecords | Yes | Maximum number of records to return. Defaults to 2000 | |
| includeDetails | Yes | Whether to include detailed row data in the response. Defaults to true | |
| reportMetadata | Yes | Optional report metadata to override report configuration |
sf_connection_manageDestructiveInspect
Manage connections to Salesforce orgs associated with the user's Cirra AI account. Call cirra_ai_init at least once before using this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The action to perform. Options: 'list' (list all connections), 'describe' (provide details of the connection), 'add' (add a new connection), 'reauthenticate' (refresh auth for a connection), 'remove' (remove a connection) | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. |
sobject_createInspect
Create a new custom object (sObject) in Salesforce with specified sharing model, deployment status, and configuration options
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | The human readable label for the field. If it is not provided, use the sObject property after stripping any suffix, replacing underscores with spaces and capitalizing the elements | |
| sObject | Yes | The name of the object. For example, Account. | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| description | Yes | Provides a description of the object's purpose. Generate a value for this if it is not provided | |
| pluralLabel | Yes | The plural version of the human readable label for the field | |
| enableSearch | No | Whether to enable search for the object. Default is false | |
| sharingModel | Yes | Common options are `ReadWrite`, `Read` and `Private` | |
| enableHistory | No | Whether to enable field history tracking for the object | |
| enableReports | No | Whether to enable reports for the object | |
| nameFieldType | Yes | The type of the name field. Options are `AutoNumber` or `Text` (the default) | |
| nameFieldLabel | No | The label for the name field. Defaults to `<obj label> Name` | |
| deploymentStatus | Yes | Options are `Deployed` (the default) and `In Development` | |
| enableActivities | No | Whether to enable activities for the object | |
| allowInChatterGroups | No | Whether to allow the object to be used in Chatter groups | |
| nameFieldDisplayFormat | No | For `AutoNumber` name fields only: the format to use for the display of the auto-number. For example, `A-{0000}` | |
| nameFieldStartingNumber | No | For `AutoNumber` name fields only: the starting number for the auto-number. For example, `1000` |
sobject_describeRead-onlyIdempotentInspect
Return basic metadata properties for the specified sObject, as well as a list of fields, relationships and record types.
| Name | Required | Description | Default |
|---|---|---|---|
| sObject | Yes | The API name, label or ID of the sObject | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. |
sobject_dmlDestructiveInspect
Create, update, delete, or upsert Salesforce sObject records via DML operations
| Name | Required | Description | Default |
|---|---|---|---|
| records | No | Array of records to process. For an 'update' operation the records must include an `Id` property`. For 'create' or 'upsert' the records may **not** have an `Id`. Do not use this property for the 'delete' operation | |
| sObject | Yes | API name of the sObject | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| operation | Yes | Type of DML operation to perform. Always ask for explicit user permission before executing any of these operations | |
| recordIds | No | Only used for the 'delete' operation: the IDs of the record to deletes | |
| dmlOptions | No | Optional DML options to use for the operation | |
| externalIdField | No | External ID field name. Required for upsert operations, ignored in other cases |
sobject_field_createInspect
Create a new custom field for an sObject in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | The label for the field | |
| sObject | Yes | The API name, label or ID of the sObject | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| fieldName | Yes | The API name of the new field. For example, NewField__c | |
| fieldType | Yes | The type of the field | |
| defaultFLS | No | The default Field-Level Security (FLS) setting to apply for all profiles for the new field | |
| properties | No | A map of properties used when creating the field. Some may be required, depending on the field type. See instructions for details | |
| description | Yes | The description for the field | |
| flsOverrides | No | An (optional) array of Field-Level Security (FLS) overrides for one or more profiles | |
| inlineHelpText | Yes | The inline help text for the field |
sobject_field_updateIdempotentInspect
Update properties of a custom sObject field (standard or custom) in Salesforce, including local picklist values
| Name | Required | Description | Default |
|---|---|---|---|
| sObject | Yes | The API name, label or ID of the sObject | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| fieldName | Yes | The API name, label or ID of the field. For example Industry, Segment__c, SomeNamespace__SomeField__c, 'Some Field' or 00NEk00000B8BYE. | |
| flsUpdates | No | An (optional) array of Field-Level Security (FLS) settings to update for one or more profiles | |
| properties | Yes | Properties to update. Some are required, depending on the field type. See instructions for details |
sobjects_listRead-onlyIdempotentInspect
Lists all the available sObject types with their API names and labels. To get more details about an sObject, use sobject_describe
| Name | Required | Description | Default |
|---|---|---|---|
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. | |
| customObjectsOnly | Yes | if true, list only custom objects |
sobject_updateIdempotentInspect
Update properties of a custom Salesforce object, such as label, plural label, description, sharing model, or deployment status
| Name | Required | Description | Default |
|---|---|---|---|
| sObject | Yes | The API name, label or ID of the custom sObject | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| properties | Yes | A map of properties to update on the object. For example: 'label'. At least one property must be updated |
soql_queryRead-onlyIdempotentInspect
Run a Salesforce SOQL query to return a list of sObject records, with automatic masking of encrypted fields
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum number of records to return. The default is 200. Note: LIMIT is automatically omitted for aggregate queries without GROUP BY. | |
| fields | Yes | List of fields to retrieve. May include relationship fields and aggregates | |
| groupBy | No | GROUP BY clause for aggregate queries. Required when using aggregate functions with grouping, optional otherwise | |
| orderBy | No | (optional) ORDER BY clause. May include fields from related objects | |
| sObject | Yes | The name of the Salesforce object to query | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. | |
| whereClause | Yes | WHERE clause. May include conditions on related objects. Do NOT include APEX snippets or variables: use only literal values | |
| havingClause | No | HAVING clause to filter grouped results by aggregate conditions (e.g. 'COUNT(Id) > 5'). Requires groupBy to be set |
tooling_api_describeRead-onlyIdempotentInspect
List all objects available through the Salesforce Tooling API and their properties. Use tooling_api_query with FieldDefinition to get field details
| Name | Required | Description | Default |
|---|---|---|---|
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| verbose | Yes | If false or missing, return only the names of the objects. This is the default. If true, return additional properties for each object. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. |
tooling_api_dmlDestructiveInspect
Create, update, delete, or upsert Salesforce Tooling API records, such as Apex classes, triggers, and custom metadata
| Name | Required | Description | Default |
|---|---|---|---|
| record | No | The record to process, with all relevant fields. For an 'update' operation the record object must include an `Id` property`. For 'create' or 'upsert' the record may **not** have an `Id`. Do not use this property for the 'delete' operation | |
| sObject | Yes | API name of the Tooling API object | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| recordId | No | Only used for the 'delete' operation: the ID of the record to delete | |
| operation | Yes | Type of DML operation to perform. Always ask for explicit user approval before executing any of these operations, and do not proceed without it | |
| externalIdField | No | External ID field name. Required for upsert operations, ignored in other cases |
tooling_api_queryRead-onlyIdempotentInspect
Run a SOQL query against the Salesforce Tooling API to retrieve metadata objects like Apex classes, triggers, custom fields, and field definitions
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum number of records to return. The default is 200. Note: LIMIT is automatically omitted for aggregate queries without GROUP BY. | |
| fields | Yes | List of fields to retrieve. May include relationship fields and aggregates | |
| groupBy | No | GROUP BY clause for aggregate queries. Required when using aggregate functions with grouping, optional otherwise | |
| orderBy | No | (optional) ORDER BY clause | |
| sObject | Yes | The name of the Tooling API object to query | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. | |
| whereClause | Yes | WHERE clause. May include conditions on related objects |
tooling_api_searchRead-onlyIdempotentInspect
Run a SOSL search query against the Salesforce Tooling API to find matching metadata objects like Apex classes, triggers, and flows
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The SOSL query to execute against the Tooling API. Please take into account all available documentation on object types, field names and limitations for the Tooling API SOSL queries | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| pageSize | No | (optional) Maximum number of records to return per page when the response requires pagination. If omitted, page size is calculated automatically. |
user_createInspect
Create a new Salesforce user. You can clone an existing user by providing the template parameter, or create a new user from scratch by providing the profile and other parameters
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The email of the user | ||
| profile | No | The name or ID of the profile to use for the new user. Not required if template is provided | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| lastName | Yes | The last name of the user | |
| template | No | The name, username, email or id of an existing user to use a a template for the new user | |
| username | Yes | The username of the user. Must be globally unique across all Salesforce organizations | |
| firstName | Yes | The first name of the user | |
| properties | No | An optional map of additional properties to set on the new user |
user_describeRead-onlyIdempotentInspect
Return complete metadata for a Salesforce user
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | The name, username, email or ID of the user | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. |
user_updateIdempotentInspect
Update a Salesforce user, including activating, deactivating, freezing, unfreezing, resetting passwords, or modifying user properties
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | The id, username, full name or email of the user to update | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| operation | Yes | The type of operation to perform. Can be one of: - `deactivate`: To deactivate a user - `activate`: To activate a user - `reset_password`: To reset password of a user. An email to reset password will be sent to the user's email - `freeze`: To freeze a user - `unfreeze`: To unfreeze a user - `unlock_password`: To unlock password for a user - `update` | |
| properties | No | The properties to update when choosing the `update` operation |
value_set_createInspect
Create a new global value set in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the value set | |
| sorted | No | Set to true if the values should be sorted | |
| values | Yes | The values for the value set | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| namespace | No | The namespace, if applicable | |
| description | No | The description (optional). Max 255 characters | |
| masterLabel | No | The label (optional). Will default to the name if not specified |
value_set_updateIdempotentInspect
Update the values in a standard or global value set in Salesforce
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name or ID of the value set | |
| type | No | Indicate whether this is a global or standard value set. Not needed if the ID of the value set is provided | |
| values | Yes | The values for the value set | |
| sf_user | No | (optional) Salesforce username to identify the connection to use. Omit this to use the current default connection. | |
| namespace | No | The namespace for a global value set, if applicable |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail — every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control — enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management — store and rotate API keys and OAuth tokens in one place
Change alerts — get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption — public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics — see which tools are being used most, helping you prioritize development and documentation
Direct user feedback — users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!