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 |
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
} |
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