Skip to main content
Glama
premsaidaggolu

SAP CPI MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STATUS1NoSet to 'disable' or 'disabled' to take tenant 1 out of rotation; unset or 'enable' means enabled
STATUS2NoSet to 'disable' or 'disabled' to take tenant 2 out of rotation
ALLOW_WRITENoSet to 'true' to enable write/destructive tools; defaults to 'false' (read-only)
ALLOW_WRITE1NoPer-tenant override to allow writes on tenant 1, e.g. 'true'
ALLOW_WRITE2NoPer-tenant override to allow writes on tenant 2, e.g. 'true'
CPI_BASE_URLNoThe base URL for the CPI OData API, e.g. https://your-tenant.it-cpiXXX.cfapps.eu10.hana.ondemand.com/api/v1
TENANT_NAME1NoOptional display name for the first tenant; defaults to 'tenant1'
TENANT_NAME2NoOptional display name for the second tenant; defaults to 'tenant2'
CPI_BASE_URL1NoBase URL for the first tenant (starting index 1) in a multi-tenant setup
CPI_BASE_URL2NoBase URL for the second tenant (continue with CPI_BASE_URL3, etc. for more)
CPI_CLIENT_IDNoThe OAuth client ID from your service key
CPI_TOKEN_URLNoThe OAuth token URL, typically ending in /oauth/token (from your service key's tokenurl)
CPI_CLIENT_ID1NoOAuth client ID for the first tenant
CPI_CLIENT_ID2NoOAuth client ID for the second tenant
CPI_TOKEN_URL1NoOAuth token URL for the first tenant
CPI_TOKEN_URL2NoOAuth token URL for the second tenant
MCP_AUTH_TOKENNoOptional static bearer token for the HTTP endpoint when no XSUAA binding is present; if set, requests must include Authorization: Bearer <token>
CPI_CLIENT_SECRETNoThe OAuth client secret from your service key
CPI_CLIENT_SECRET1NoOAuth client secret for the first tenant
CPI_CLIENT_SECRET2NoOAuth client secret for the second tenant

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_cpi_tenantsA

List the SAP CPI tenants this MCP server is configured to reach. Call this first if it isn't already clear which tenant to use — every other tool takes a tenant argument once 2 or more tenants are configured, and this is how to find the valid names.

search_message_processing_logsA

Search SAP CPI Message Processing Logs. Filter by status (COMPLETED, FAILED, PROCESSING, RETRY, ESCALATED, DISCARDED), integration flow name, and time window. Most recent first.

get_mpl_detailsA

Get the full Message Processing Log entry for a specific MessageGuid.

get_mpl_error_informationB

Retrieve the detailed error/exception text for a failed message.

get_mpl_custom_header_propertiesB

Get custom header properties (business keys, custom status) for a message.

get_mpl_run_stepsA

Get the individual run steps for a message (requires trace/step logging enabled on the flow).

get_message_store_entriesB

Get persisted message store entries (payloads persisted via the 'Persist' step) for a message.

get_failure_summaryB

Aggregate failed/escalated messages over a recent window, grouped by integration flow.

cancel_message_processing_logA

Cancel a currently processing/retrying message (e.g. a stuck JMS or scheduled message). Requires ALLOW_WRITE and confirm=true.

list_integration_packagesB

List all integration packages in the tenant's design workspace.

get_integration_packageA

Get details of a single integration package by Id.

create_integration_packageB

Create a new integration package. Requires ALLOW_WRITE.

delete_integration_packageA

Delete an integration package and all its artifacts. Requires ALLOW_WRITE and confirm=true.

copy_integration_packageA

Copy a standard/partner package (e.g. from the Discover catalog) into the design workspace. Requires ALLOW_WRITE.

list_integration_flowsA

List the integration flow design-time artifacts in a package.

get_integration_flowB

Get a design-time integration flow artifact by Id and Version.

download_integration_flowB

Download the integration flow content as a base64-encoded zip ($value). Useful for backup/transport.

get_flow_configurationsC

Get the externalized configuration parameters of an integration flow (endpoints, credentials names, etc.).

update_flow_configurationA

Update a single externalized configuration parameter of an integration flow. Requires ALLOW_WRITE.

get_flow_resourcesB

List the resources (scripts, XSDs, WSDLs, mappings) inside an integration flow.

create_integration_flowA

Create a new (empty) integration flow in a package — a default flow at version 1.0.0 that you then edit in the Integration Suite web editor. Requires ALLOW_WRITE.

save_integration_flow_as_versionA

Save the current draft ('active') of an integration flow as a new version, with an optional version comment. Requires ALLOW_WRITE. (The comment is applied to the artifact before the version is saved, since the SaveAsVersion API doesn't take one directly.)

list_deployed_artifactsB

List all deployed runtime artifacts and their status (STARTED, ERROR, STARTING, etc.).

get_deployed_artifact_statusB

Get the deployment status of one runtime artifact, plus error details if failed.

deploy_artifactA

Deploy a design-time artifact to the runtime. Choose the artifact type. Requires ALLOW_WRITE. Deployment is asynchronous — check status with get_deployed_artifact_status or get_build_and_deploy_status.

undeploy_artifactA

Undeploy (remove from runtime) a deployed artifact. Stops it processing messages. Requires ALLOW_WRITE and confirm=true.

get_build_and_deploy_statusA

Check the asynchronous build/deploy task status for a deployment (returned as a task id).

list_service_endpointsA

List the runtime service endpoints (URLs) exposed by deployed integration flows (HTTP, SOAP, OData, etc.).

list_user_credentialsA

List deployed User Credential security artifacts (names/metadata only, no secrets).

deploy_user_credentialA

Create/deploy a User Credential security artifact. Requires ALLOW_WRITE. The secret is write-only and cannot be read back.

list_oauth2_client_credentialsA

List deployed OAuth2 Client Credential security artifacts (metadata only).

list_keystore_entriesB

List entries (certificates / key pairs) in the tenant keystore.

list_number_rangesA

List configured number range objects.

create_number_rangeC

Create a number range object. Requires ALLOW_WRITE.

list_data_storesA

List data stores (transient/persistent message persistence used by flows).

get_data_store_entriesA

List the entries in a specific data store. IntegrationFlow is the flow Id (empty for a global store).

list_variablesB

List global and local variables persisted by integration flows.

list_jms_queuesA

List JMS queues and their state (capacity, message counts).

list_partnersC

List partners registered in the Partner Directory.

list_log_filesA

List available system log files (http, trace, etc.) for the tenant worker nodes.

cpi_api_catalogA

List every OData entity set and function import this CPI tenant exposes. Use this to discover what cpi_query / cpi_get_entity / cpi_invoke_function / cpi_write can target.

cpi_queryA

Run a read query against ANY CPI OData entity set with standard OData options. Example: entitySet='MessageProcessingLogs', filter="Status eq 'FAILED'", orderby='LogEnd desc'.

cpi_get_entityA

Get a single entity by key. Use 'key' for a single-key entity (e.g. package Id), or 'keys' (object) for composite keys (e.g. {Id:'x',Version:'active'}). Optionally fetch a navigation property.

cpi_invoke_functionA

Invoke any OData function import (see cpi_api_catalog). String parameters are auto-quoted. Requires ALLOW_WRITE (most function imports change tenant state).

cpi_writeA

Low-level create/update/delete against any CPI OData path. Requires ALLOW_WRITE. Every call (POST/PUT/DELETE/MERGE) requires confirm=true. Provide 'path' relative to /api/v1 (e.g. "/IntegrationPackages('X')").

where_usedA

Search for a word/text across integration flow content in the design workspace (BPMN process XML, adapter channel properties — including credential/user references, groovy scripts, mappings, and parameter files). Wizard-style: if packageId is omitted, returns the list of packages to pick from (plus the option to set searchAllPackages=true to search the whole tenant in one call). If a packageId is chosen but artifactId is omitted, returns the list of integration flows in that package (plus the option to set searchAllArtifacts=true to search every flow in that package). Call the tool again with the missing field filled in from the returned options.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/premsaidaggolu/sap-cpi-multi-tenant-mcp-server'

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