sap-cpi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_CPI_BASE_URL | Yes | OData API base URL (ends in /api/v1) | |
| MCP_CPI_CLIENT_ID | Yes | Service key client ID | |
| MCP_CPI_TOKEN_URL | Yes | OAuth2 token endpoint | |
| MCP_CPI_CLIENT_SECRET | Yes | Service key client secret |
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 |
|---|---|
| get_integration_packagesB | Get all integration packages. Note: $filter and $select are NOT supported on this entity set. |
| search_integration_packagesB | Search integration packages by ID, version, name, vendor or mode. Fetches all packages and filters client-side (server does not support $filter). |
| get_integration_flowsA | Get integration flows from a package. Requires packageId since listing all iFlows directly is not supported. If no packageId given, tries direct listing (may return 501). |
| search_integration_flowsA | Search integration flows by ID, version or name. Uses exact match via direct entity lookup or $filter on runtime artifacts. |
| get_integration_runtime_artifactsB | Get all integration runtime artifacts. Supports $filter with eq operator (e.g. Status eq 'STARTED', Id eq 'myflow'). |
| search_integration_runtime_artifactsB | Search integration runtime artifacts by ID, version, name, type or status. Uses eq filter. |
| get_message_mappingsB | Get all message mappings. Supports listing and $top. |
| search_message_mappingsB | Search message mappings by ID and version (direct entity lookup). |
| get_script_collectionsA | Get script collections from a package. Requires packageId since listing all directly is not supported. |
| search_script_collectionsB | Search script collections by ID and version (direct entity lookup). |
| get_value_mappingsC | Get all value mappings. Supports listing and $top. |
| search_value_mappingsB | Search value mappings by ID and version (direct entity lookup). |
| get_message_processing_logsB | List message processing logs. Filter by Status, IntegrationFlowName, LogStart/LogEnd, etc. Defaults: top=20, ordered by LogEnd desc. |
| get_message_processing_log_errorsC | Get error details for a specific message processing log entry |
| get_message_processing_log_attachmentsB | Get attachments (payloads, traces) for a specific message processing log entry |
| get_message_processing_log_propertiesA | Get custom header properties (SAP_ApplicationID, business IDs) for a message log entry |
| get_message_processing_log_runsA | Get individual processing step runs for a message log entry |
| get_partnersB | List all Partner Directory partners (trading partner routing entries) |
| get_string_parametersB | List Partner Directory string parameters (MaxJMSRetries, DLQ_EndEvent, etc.) |
| get_binary_parametersC | List Partner Directory binary parameters (XSLTs, certificates, etc.) |
| get_alternative_partnersC | List alternative partner mappings (sender system + interface → partnerID) |
| get_authorized_usersB | List authorized users per partner (message sender authorization) |
| get_keystore_entriesB | List keystore entries (certificates and key pairs deployed on the tenant). Note: $top not supported server-side. |
| get_user_credentialsB | List deployed user credentials (basic auth username/password pairs). Note: $top not supported server-side. |
| get_oauth2_credentialsC | List OAuth2 client credential configurations deployed on the tenant. Note: $top not supported server-side. |
| get_certificate_resourcesA | Get certificate chain details for a keystore entry. Requires hex_alias from a Key Pair entry (Type: "Key Pair") in get_keystore_entries — Certificate-type entries are rejected by CPI. Cannot list all certificates directly. |
| get_secure_parametersB | List secure parameters (encrypted configuration values). Note: $top not supported server-side. |
| get_data_store_entriesA | List data store entries (persisted key-value records across messages). Note: $top not supported server-side. |
| get_variablesB | List runtime variables (state maintained between iFlow executions). Note: $top not supported server-side. |
| get_number_rangesC | List number ranges (auto-incrementing sequences for message numbering). Note: $top not supported server-side. |
| get_jms_brokersB | List JMS broker instances and their status (may return 501 depending on tenant) |
| get_jms_resourcesC | List JMS queue resources (queue depth, consumer count, capacity status) |
| get_metadataA | Fetch the OData $metadata service document (XML schema of all entity sets, properties, and associations). Note: the full metadata is ~184KB; the response is truncated at 50KB. For complete metadata use the local reference/cpi_odata_metadata.xml file. |
| get_log_filesA | List runtime log files for troubleshooting iFlow execution. Note: $top not supported server-side; may return 501 depending on tenant. |
| download_integration_artifactB | Download an integration design-time artifact (iFlow) as a zip file. Returns the zip at the specified output path. |
| upload_integration_artifactA | Create or update an integration design-time artifact from a local zip file. Use mode 'create' to add a new artifact to a package, or 'update' to replace an existing one. |
| deploy_integration_artifactA | Deploy an integration design-time artifact. Returns a TaskId that can be polled with get_deploy_status. |
| get_deploy_statusA | Check the build and deploy status of an artifact. Use the TaskId returned by deploy_integration_artifact. |
| undeploy_integration_artifactA | Undeploy (remove from runtime) an integration artifact by its runtime ID. |
| get_artifact_configurationsB | List externalized parameters (configurations) for an integration design-time artifact. |
| update_artifact_configurationA | Update an externalized parameter value on a design-time artifact. The artifact must be in edit mode (not read-only). |
| get_messaging_queuesB | List JMS messaging queues with per-queue message count and active/exclusive status. |
| get_messaging_messagesA | List individual JMS messages. Filter by queueName to scope to one queue. Each message includes jmsMessageId, mplId, retryCount, sender, receiver, messageType, applicationId, correlationId, customStatus, and timestamps. |
| retry_messaging_messagesB | Retry failed JMS messages via the RetryMessagingMessages function import (POST). Returns the server response string. |
| move_messaging_messagesA | Move JMS messages between queues via the MoveMessagingMessages function import (POST). Returns the server response string. |
| get_run_stepsA | Get all processing steps for a message run. Returns step IDs, activities, status, timing, and model step IDs that map to iFlow elements. Requires RunId from get_message_processing_log_runs. |
| get_trace_contentA | Fetch trace content for a specific trace message. include: 'payload' for message body, 'headers' for HTTP headers, 'properties' for exchange properties, or 'all' for everything. TraceId comes from get_run_steps or get_message_trace. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 47 tools
Many tools come in get/search pairs that are distinct but easy to confuse, and several resource groups (JMS brokers vs JMS resources vs messaging queues; keystore entries vs certificate resources vs credentials) overlap conceptually. The descriptions clarify most boundaries, but with 47 tools an agent could easily select the wrong variant.
Tool names mostly follow a consistent snake_case verb_noun pattern (get_, search_, upload_, deploy_, update_, etc.). There are minor deviations such as get_run_steps vs get_message_processing_log_runs, and get_ vs search_ both being used for list/fetch operations, but overall the convention is predictable.
47 tools is a heavy surface for an MCP server. While the domain is broad, many tools are simple get/search variants of similar entity types, and the count exceeds what most agents need in a single namespace, increasing selection and prompt-overhead risk.
The server covers a broad lifecycle: design-time artifact listing/search/download/upload/deploy/undeploy, runtime monitoring, MPLs, traces, logs, Partner Directory, keystore/credentials, data stores, variables, and JMS messaging. Missing create/update/delete for many entity types (packages, mappings, scripts) feels like a gap, but those are likely read-only OData surfaces, and the core operation workflows are not dead-ended.