mc-next-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SF_CLIENT_ID | Yes | Connected App consumer key (required for API calls) | |
| SF_LOGIN_URL | No | OAuth token host (use https://test.salesforce.com for sandboxes) | https://login.salesforce.com |
| MC_NEXT_DEBUG | No | Set to 'true' to log HTTP requests to stderr | false |
| SF_API_VERSION | No | API version for platform tools | 66.0 |
| SF_INSTANCE_URL | No | Instance URL for platform tools. Defaults to the origin of MC_NEXT_API_BASE_URL. | |
| SF_CLIENT_SECRET | Yes | Connected App consumer secret (required for API calls) | |
| DATA360_TENANT_URL | Yes | Data 360 tenant URL (c360a host, e.g., https://my-tenant.c360a.salesforce.com) | |
| MC_NEXT_TIMEOUT_MS | No | Request timeout in milliseconds | 60000 |
| MC_NEXT_MAX_RETRIES | No | Number of retries for 429 / 5xx responses | 3 |
| MC_NEXT_API_BASE_URL | Yes | Marketing Cloud Next base URL including /services/data/vXX (e.g., https://my-org.my.salesforce.com/services/data/v66.0) | |
| DATA360_CONNECT_BASE_URL | Yes | Data 360 Connect base URL including /services/data/vXX (e.g., https://my-tenant.c360a.salesforce.com/services/data/v66.0) | |
| MC_NEXT_ALLOW_DESTRUCTIVE | No | Set to 'true' to allow DELETE and destructive actions (safety gate) | false |
| MC_NEXT_ALLOW_METADATA_CHANGES | No | Set to 'true' to allow custom object/field creation and deletion (safety gate) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mcnext_list_endpointsA | Browse the 445 endpoints across 3 API families (mc-next: 27, data360: 35, data360-connect: 383) and 44 resource groups. Use this first to discover the endpoint id you need. Filter by family, group, kind, method, or a free-text search. |
| mcnext_describe_endpointA | Get the full contract for one endpoint: HTTP method, base URL family, path, path params, query params, request body JSON schema, and a sample body. Call this before invoking an endpoint. |
| mcnext_queryB | List/filter records from a collection endpoint (GET, kind "query"). Supports pagination and filters such as pageSize, offset, orderBy, and family-specific filters. |
| mcnext_readA | Fetch a single record by id or key (GET, kind "read"). Requires the path parameter. |
| mcnext_createA | Create a record (POST, kind "create"). Pass the JSON payload in |
| mcnext_updateA | Update a record (PATCH or PUT, kind "update"). Requires the path parameter and a JSON |
| mcnext_deleteA | Delete a record (DELETE, kind "delete"). Requires the path parameter. This is destructive and is blocked unless MC_NEXT_ALLOW_DESTRUCTIVE=true. |
| mcnext_actionA | Invoke a non-CRUD operation (kind "action"): publish, unpublish, clone, activate, deactivate, run, execute, refresh, validate, search, query, resolve, merge, and similar. Some actions are destructive (delete/remove/cancel/deactivate) and are blocked unless MC_NEXT_ALLOW_DESTRUCTIVE=true. For file-upload endpoints, pass |
| sf_soql_queryA | Execute a SOQL query against the org (Salesforce REST /query). Returns records plus |
| sf_soql_query_moreA | Fetch the next page of results using the |
| sf_list_objectsA | List the sObjects in the org (global describe). Returns each object's name, label, and key prefix. Use sf_describe_object for field-level detail. |
| sf_describe_objectA | Get field-level metadata for an sObject: field names, types, labels, picklist values, and whether each field is required/createable/updateable. Essential before writing SOQL or building a record payload. |
| sf_rest_requestA | Generic REST explorer (like Salesforce Inspector's REST Explorer). Call any path under /services/data/vXX with any method. Paths may be relative (e.g. "/sobjects/Account/describe") or absolute (e.g. "/services/data/v66.0/limits"). Use this for endpoints not covered by the other tools. |
| sf_org_limitsA | Read the org's governor limits and current usage (/limits), including DailyApiRequests, DataStorageMB, and FileStorageMB. Useful for checking remaining API quota before bulk work. |
| sf_create_recordA | Create a single sObject record (POST /sobjects/{SObject}). Returns the new record Id. Use sf_describe_object first to check which fields are createable and required. |
| sf_get_recordA | Fetch a single record by Id (GET /sobjects/{SObject}/{id}). Optionally restrict the returned fields with |
| sf_update_recordA | Update a single record (PATCH /sobjects/{SObject}/{id}). Pass only the fields you want to change. Returns 204 No Content on success. |
| sf_delete_recordA | Delete a single record (DELETE /sobjects/{SObject}/{id}). This is destructive and is blocked unless MC_NEXT_ALLOW_DESTRUCTIVE=true. |
| sf_bulk_create_recordsA | Create up to 200 records in one call (POST /composite/sobjects). Each record is a field map. Set |
| sf_bulk_update_recordsA | Update up to 200 records in one call (PATCH /composite/sobjects). Each record must include its |
| sf_bulk_delete_recordsA | Delete up to 200 records per call (DELETE /composite/sobjects?ids=...). This is destructive and is blocked unless MC_NEXT_ALLOW_DESTRUCTIVE=true. Larger inputs are split into multiple calls automatically. |
| sf_compositeA | Execute up to 25 subrequests in one API call (POST /composite), like Inspector's Composite usage. Subrequests can reference earlier results with "@{referenceId.field}". Useful for multi-step operations that must stay within one API call. |
| sf_create_custom_objectA | Create a custom object via the Tooling API (POST /tooling/sobjects/CustomObject). The API name is derived from |
| sf_create_custom_fieldA | Create a custom field on an object via the Tooling API (POST /tooling/sobjects/CustomField), mirroring Inspector's Field Creator. Optionally grants field-level security to profiles/permission sets. Gated behind MC_NEXT_ALLOW_METADATA_CHANGES=true. |
| sf_delete_custom_fieldA | Delete a custom field via the Tooling API (DELETE /tooling/sobjects/CustomField/{id}). Requires the field's Tooling API Id — find it with sf_list_custom_fields. Gated behind MC_NEXT_ALLOW_METADATA_CHANGES=true. |
| sf_delete_custom_objectA | Delete a custom object via the Tooling API (DELETE /tooling/sobjects/CustomObject/{id}). Requires the object's Tooling API Id — find it with sf_list_custom_objects. This removes the object and its data. Gated behind MC_NEXT_ALLOW_METADATA_CHANGES=true. |
| sf_list_custom_objectsA | List custom objects in the org with their Tooling API Ids (via a Tooling API SOQL query on CustomObject). Use the returned Id with sf_delete_custom_object. |
| sf_list_custom_fieldsA | List custom fields with their Tooling API Ids (via a Tooling API SOQL query on CustomField). Use the returned Id with sf_delete_custom_field. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explore-mc-next | Guided workflow for discovering and calling Marketing Cloud Next endpoints. |
| explore-salesforce-org | Guided workflow for querying org data and metadata. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| endpoint-catalog | Full machine-readable catalog of 445 endpoints across 3 API families and 44 resource groups. |
| api-overview | Authentication model, base URLs, API families, and endpoint statistics. |
TDQS
Scored across 28 tools
The mcnext_* CRUD tools and the sf_* record tools cover the same conceptual operations (create/read/update/delete/query) on different API families, so an agent could initially select the wrong one. The descriptions and naming prefixes clarify the distinction, but the overlap is real and requires careful reading.
Most tools follow a clear prefix + verb + noun pattern (mcnext_query, sf_create_record, sf_bulk_delete_records). The main inconsistency is the use of read/get and query/soql_query across the two prefixes, plus mcnext_ vs sf_ as competing prefixes, but the overall style is uniform snake_case and predictable.
28 tools is on the heavy side, and the server covers two fairly large domains (Salesforce operations and mc-next endpoint access). While most tools have a specific purpose, several could be consolidated or omitted without losing much capability.
The set covers CRUD, bulk operations, query/pagination, schema discovery, org limits, composite requests, and custom object/field lifecycle for Salesforce, plus generic endpoint browsing for mc-next. Minor gaps exist (e.g., no metadata update tools for custom objects/fields), but the generic REST and composite tools can fill most holes.