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_artifactA | Download an integration design-time artifact (iFlow) as a zip file. Returns the zip at the specified output path. |
| upload_integration_artifactA | DESTRUCTIVE: Create or update an integration design-time artifact on the live CPI tenant from a local zip file. Use mode 'create' to add a new artifact to a package, or 'update' to replace an existing one. This modifies the design-time artifact and cannot be undone. |
| deploy_integration_artifactA | DESTRUCTIVE: Deploy an integration design-time artifact to the live CPI runtime. This activates the artifact and immediately affects message processing on the tenant. 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 | DESTRUCTIVE: Undeploy (remove from runtime) an integration artifact on the live CPI tenant by its runtime ID. This immediately stops message processing for the artifact and cannot be undone. |
| get_artifact_configurationsB | List externalized parameters (configurations) for an integration design-time artifact. |
| update_artifact_configurationA | DESTRUCTIVE: Update an externalized parameter value on a design-time artifact on the live CPI tenant. This modifies the artifact configuration and may affect message processing. 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_messagesA | DESTRUCTIVE: Retries ALL failed JMS messages on the tenant via the RetryMessagingMessages function import (POST). This affects the live CPI system and cannot be undone. User confirmation is required before proceeding. |
| move_messaging_messagesA | DESTRUCTIVE: Moves ALL JMS messages between queues on the tenant via the MoveMessagingMessages function import (POST). This affects the live CPI system and cannot be undone. User confirmation is required before proceeding. |
| 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
Most tools are clearly separated by resource type (queues, messages, artifacts, packages, logs, keystore, etc.), but there is some overlap between get_* and search_* variants for the same entity (e.g., get_integration_packages vs search_integration_packages, get_integration_flows vs search_integration_flows) that could cause an agent to pick the wrong one. The destructive tools are well-marked, and the get/search distinction is the main source of ambiguity.
The naming is overwhelmingly consistent with a get_/search_/upload_/deploy_/undeploy_/update_/retry_/move_/download_ verb + noun pattern. Minor deviations exist: get_message_processing_log_runs is a plural noun phrase that could be confused with get_message_processing_logs, and get_run_steps doesn't follow the get_<resource> pattern as clearly as others. Overall, the convention is predictable.
47 tools is on the heavy side, but the server covers a broad SAP CPI domain (messaging, artifacts, packages, logs, partner directory, keystore, credentials, data stores, variables, mappings, scripts, value mappings). The count is justified by the breadth, though it pushes the upper bound of what is comfortable for an agent to navigate.
The tool surface covers the main CPI operations: listing/searching design-time and runtime artifacts, deploying/undeploying, downloading, checking deploy status, retrieving message processing logs and run steps, managing JMS messages, and inspecting configuration/security resources. Obvious gaps include no create/update/delete for packages, no direct artifact deletion, and no ability to send/test messages, but the core monitoring and deployment workflows are well covered.