SAP CPI MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ALLOW_WRITE | No | Set to 'true' to enable write/destructive tools | false |
| CPI_BASE_URL | Yes | Base URL of the CPI OData API, e.g., https://your-tenant.it-cpiXXX.cfapps.eu10.hana.ondemand.com/api/v1 | |
| CPI_CLIENT_ID | Yes | Client ID from the service key | |
| CPI_TOKEN_URL | Yes | OAuth token URL, e.g., https://your-subdomain.authentication.eu10.hana.ondemand.com/oauth/token | |
| MCP_AUTH_TOKEN | No | Static bearer token for securing the HTTP endpoint (optional for stdio) | |
| CPI_CLIENT_SECRET | Yes | Client secret from the service key |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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_propertiesC | Get custom header properties (business keys, custom status) for a message. |
| get_mpl_run_stepsB | 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_packagesC | List all integration packages in the tenant's design workspace. |
| get_integration_packageC | Get details of a single integration package by Id. |
| create_integration_packageC | 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_flowsC | List the integration flow design-time artifacts in a package. |
| get_integration_flowA | Get a design-time integration flow artifact by Id and Version. |
| download_integration_flowC | Download the integration flow content as a base64-encoded zip ($value). Useful for backup/transport. |
| get_flow_configurationsA | Get the externalized configuration parameters of an integration flow (endpoints, credentials names, etc.). |
| update_flow_configurationB | 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_endpointsC | 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_credentialsB | List deployed OAuth2 Client Credential security artifacts (metadata only). |
| list_keystore_entriesB | List entries (certificates / key pairs) in the tenant keystore. |
| list_number_rangesB | List configured number range objects. |
| create_number_rangeC | Create a number range object. Requires ALLOW_WRITE. |
| list_data_storesC | List data stores (transient/persistent message persistence used by flows). |
| get_data_store_entriesC | List the entries in a specific data store. IntegrationFlow is the flow Id (empty for a global store). |
| list_variablesC | 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. DELETE requires confirm=true. Provide 'path' relative to /api/v1 (e.g. "/IntegrationPackages('X')"). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server