Skip to main content
Glama

SAP CPI MCP Server

⚠️ Archived — superseded by sap-cpi-multi-tenant-mcp-server. This repo was single-tenant only. All further development (multi-tenant support, build_integration_flow flow authoring, and everything since) continues at the link above. This repo is kept for history only and will not receive further updates.

A Model Context Protocol server that lets an MCP client (Claude Desktop, Claude Code, etc.) monitor and manage SAP Cloud Integration (CPI / Integration Suite) through its OData v1 APIs — the same surface documented as the "Cloud Integration" package on the SAP Business Accelerator Hub.

It runs locally over stdio or as an HTTP service you can deploy to SAP BTP Cloud Foundry.

45 tools: curated tools for the common workflows, plus generic escape-hatch tools (cpi_query, cpi_get_entity, cpi_invoke_function, cpi_write) that reach any of the ~130 entity sets and 35 operations the API exposes.


What it can do (tools)

Monitoring — Message Processing Logs (MPL)

Tool

Purpose

search_message_processing_logs

Search/filter MPLs by status, flow, time window

get_mpl_details

Full MPL entry for a MessageGuid

get_mpl_error_information

Detailed error/exception text for a failed message

get_mpl_custom_header_properties

Custom header properties (business keys)

get_mpl_run_steps

Per-step run trace within a message

get_message_store_entries

Persisted payloads for a message

get_failure_summary

Failures grouped by integration flow (health dashboard)

cancel_message_processing_log ⚠️

Cancel a processing/retrying message

Design-time content

Tool

Purpose

list_integration_packages / get_integration_package

Packages

create_integration_package ⚠️ / delete_integration_package ⚠️

Package CRUD

copy_integration_package ⚠️

Copy a standard/Discover package into the workspace

list_integration_flows / get_integration_flow

Integration flows

create_integration_flow ⚠️

Create a new (empty) iFlow in a package

save_integration_flow_as_version ⚠️

Save the flow draft as a new version (+ optional comment)

download_integration_flow

Download flow as base64 zip

get_flow_configurations / update_flow_configuration ⚠️

Externalized parameters

get_flow_resources

Scripts/XSDs/WSDLs inside a flow

where_used

Search a word/string (e.g. a credential name, endpoint, or value) across flow content — process XML, adapter properties, scripts, mappings, parameter files — one package, one flow, or the whole tenant

Runtime & deployment

Tool

Purpose

list_deployed_artifacts / get_deployed_artifact_status

Deployed artifacts + status

deploy_artifact ⚠️

Deploy iFlow / mapping / script / value-mapping / adapter

undeploy_artifact ⚠️

Undeploy a running artifact

get_build_and_deploy_status

Async deploy task status

list_service_endpoints

Runtime endpoint URLs of deployed flows

Admin (security material, config, queues, B2B, logs)

Tool

Purpose

list_user_credentials / deploy_user_credential ⚠️

User Credential security material

list_oauth2_client_credentials

OAuth2 client credentials

list_keystore_entries

Keystore certificates / key pairs

list_number_ranges / create_number_range ⚠️

Number ranges

list_data_stores / get_data_store_entries

Data stores + entries

list_variables

Global/local variables

list_jms_queues

JMS queues (Enterprise plan; 501 on trial)

list_partners

Partner Directory partners

list_log_files

System log files

Generic — full API coverage

Tool

Purpose

cpi_api_catalog

Discover every entity set & function import

cpi_query

Read any entity set with $filter/$orderby/$expand/...

cpi_get_entity

Read one record by (single or composite) key

cpi_invoke_function ⚠️

Invoke any function import

cpi_write ⚠️

Create/update/delete any entity (DELETE needs confirm=true)

⚠️ = write/destructive tool — requires ALLOW_WRITE=true (see below).


Related MCP server: mcp-sap-cpi

Write safety

Read tools always work. Write / deploy / delete tools only run when ALLOW_WRITE=true is set in your .env. In addition, every write action requires an explicit confirm=true: calling a write tool without it returns an "Are you sure you want to …?" prompt and makes no changes. Re-run the same tool with confirm=true to proceed. This gives a two-step confirmation for all create/update/delete/deploy operations.

ALLOW_WRITE=false   # default — read-only
ALLOW_WRITE=true    # enable the ⚠️ tools

Role-based access control (RBAC)

Three roles, layered on top of ALLOW_WRITE/confirm=true rather than replacing them:

Role

Scope(s) granted

Can use

Support

mcp.read

Every read/list/search/download tool

Developer

mcp.read, mcp.write

The above, plus create/update/deploy tools

Architect

mcp.read, mcp.write, mcp.delete

Everything, including delete/undeploy and the generic cpi_write / cpi_invoke_function escape hatches

The generic escape-hatch tools (cpi_write, cpi_invoke_function) are pinned to mcp.delete regardless of the HTTP method or function called — they can reach operations (arbitrary DELETE, or destructive function imports like DeleteValMaps) that the curated tools don't expose, so they're Architect-only rather than Developer-only.

This only applies to the HTTP transport with an XSUAA binding. The static-token and open modes grant full access to everyone (no per-user identity to hang a role off), and the stdio transport is unaffected — it's a local subprocess with no role boundary, same as before.

Setting it up in BTP

  1. xs-security.json defines exactly three scopes and role templates — Support, Developer, Architect. There is no legacy/default role: a caller not assigned one of these three gets an empty scope set and no tools at all (see resolveOauthScopes in src/auth.js), not silent read-only access. Push the updated descriptor:

    cf update-service sap-cpi-mcp-xsuaa -c xs-security.json
    cf restage sap-cpi-mcp-server
  2. In BTP Cockpit → your subaccount → Security → Role Collections, create three collections — Architect, Developer, Support — each pulling in the matching role template from the sap-cpi-mcp app.

  3. Assign your team: either manually per user (Role Collection → Edit → add by email), or — if you already trust an IdP like Entra ID — map IdP groups to these Role Collections under Security → Trust Configuration → your IdP → Role Collection Mappings, so membership in an Entra group like MCP-Architect grants the collection automatically at login.

  4. A user's token then carries whichever scopes their Role Collection grants; src/auth.js reads them off the verified JWT and src/domains/helpers.js enforces them per tool call.

Testing a role change — watch for token caching

After moving a user between Role Collections, the change will not show up until they get a genuinely new access token — MCP clients (including Claude.ai) cache the tool list and will silently reuse a still-valid token via refresh rather than re-authenticating. token-validity in xs-security.json is 3600s (1 hour), so a client can hold a stale scope set for up to an hour after a role change.

To force a real re-check: fully remove/delete the connector in the client (not just "Disconnect" — that alone may not clear the cached token) and re-add it from scratch, so it goes through a brand-new OAuth login. Look for a "tools list refreshed"-style confirmation after reconnecting, and check the tool count actually changed, before concluding a role assignment didn't take effect.


Securing the HTTP endpoint with OAuth 2.0 (XSUAA)

For the hosted (Cloud Foundry) endpoint, authentication is handled by src/auth.js:

  1. OAuth 2.0 (recommended) — bind an XSUAA instance and the server requires a valid JWT:

    cf create-service xsuaa application sap-cpi-mcp-xsuaa -c xs-security.json
    cf bind-service sap-cpi-mcp-server sap-cpi-mcp-xsuaa
    cf restage sap-cpi-mcp-server
    cf create-service-key sap-cpi-mcp-xsuaa claude-connector   # -> clientid/secret/url for the client

    The server verifies the JWT signature against XSUAA's JWKS (<uaa>/token_keys) and checks the audience. A client obtains a token via client_credentials (or authorization_code) from <uaa>/oauth/token and calls /mcp with Authorization: Bearer <jwt>.

  2. Static token (dev/fallback) — if no XSUAA is bound but MCP_AUTH_TOKEN is set, that static bearer token is required instead.

  3. Open — if neither is configured, the endpoint is unauthenticated (local/PoC only).

Auth mode is auto-detected: XSUAA binding → OAuth; else MCP_AUTH_TOKEN → static; else open. The local stdio transport is unaffected by all of this.

OAuth discovery / authorize / token proxy (remote MCP clients)

Remote MCP OAuth clients (e.g. a Claude custom connector) resolve the authorization server either via RFC 8414 discovery at this origin, or — if that's absent — by assuming /authorize and /token live on the MCP server's own host. XSUAA's real endpoints live on a different host (the UAA tenant), so without help the client gets a 404 hitting <this-origin>/authorize directly.

When an XSUAA binding is present, the server exposes:

Route

Purpose

GET /.well-known/oauth-authorization-server

RFC 8414 metadata pointing at the real XSUAA authorization_endpoint / token_endpoint

GET /authorize

Redirects to the real XSUAA /oauth/authorize, forwarding all query params (client_id, redirect_uri, code_challenge, state, ...) as-is

POST /token

Proxies the code/token exchange to the real XSUAA /oauth/token and relays its response verbatim

If no XSUAA binding is found, these routes are not mounted and a warning is logged at startup. This is purely a discovery/proxy convenience for OAuth clients — it does not replace the JWT verification in authMiddleware(), which still gates every request to /mcp.


1. Get CPI API credentials (one-time)

The OData API is served by the Process Integration Runtime service.

  1. In your BTP subaccount → Instances and Subscriptions → create an instance of Process Integration Runtime with plan api.

  2. Under Roles, grant the roles you need, e.g.:

    • MessageProcessingLogRead (read MPLs)

    • IntegrationContentRead (read packages / design artifacts / deployed artifacts)

    • MonitoringDataRead

    • For the ⚠️ write tools (deploy/undeploy/create/delete): add the write/deploy roles too, e.g. WorkspacePackagesEdit, WorkspaceArtifactsDeploy, MessageProcessingLogCustomHeaderRead, and the relevant security-material roles.

  3. Create a Service Key on that instance. From the key you get:

    • url → your CPI_BASE_URL is <url>/api/v1

    • tokenurl → your CPI_TOKEN_URL (it already ends in /oauth/token)

    • clientidCPI_CLIENT_ID

    • clientsecretCPI_CLIENT_SECRET


2. Run locally (stdio) with Claude Desktop / Claude Code

npm install
cp .env.example .env      # then edit .env with your service-key values

Add to your MCP client config (Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "sap-cpi": {
      "command": "node",
      "args": ["C:/path/to/sap-cpi-mcp-server/src/index.js"],
      "env": {
        "CPI_BASE_URL": "https://your-tenant.it-cpiXXX.cfapps.eu10.hana.ondemand.com/api/v1",
        "CPI_TOKEN_URL": "https://your-subdomain.authentication.eu10.hana.ondemand.com/oauth/token",
        "CPI_CLIENT_ID": "your-client-id",
        "CPI_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

For Claude Code:

claude mcp add sap-cpi -- node C:/path/to/sap-cpi-mcp-server/src/index.js

3. Deploy to SAP BTP Cloud Foundry (HTTP)

A full walkthrough of deploying this server as a Cloud Foundry app, securing it with XSUAA, and connecting it to Claude as a custom connector — done entirely through the BTP Cockpit web UI (a cf CLI equivalent is in Appendix A below for anyone who prefers the command line).

What you will end up with

  • A running Cloud Foundry application (sap-cpi-mcp-server) that exposes the MCP server over HTTPS at a /mcp endpoint.

  • The application securely calling your SAP CPI tenant's OData APIs using OAuth client credentials.

  • An XSUAA-protected front door, so only users assigned to an approved role collection can reach the MCP endpoint.

  • Claude connected to that endpoint as a custom connector, able to call all 45 CPI tools directly from a chat.

Architecture at a glance

Component

Role

GitHub repository (sap-cpi-mcp-server)

Node.js MCP server source code — 45 tools for CPI monitoring and management.

Cloud Foundry application (sap-cpi-mcp-server)

Runs the MCP server as an HTTP service; exposes /health and /mcp endpoints.

Process Integration Runtime service key

OAuth client the app uses to call your CPI tenant's OData / monitoring APIs.

XSUAA service instance (sap-cpi-mcp-server-xsuaa)

Issues OAuth tokens that protect the /mcp endpoint from unauthenticated access.

Role Collections

Map SAP BTP users to Architect / Developer / Support levels of access on the MCP server (see RBAC above).

Claude custom connector

Calls the deployed /mcp endpoint over HTTPS, authenticating via the XSUAA OAuth credentials.

Prerequisites

  • An SAP BTP account (trial or licensed) with entitlement for Cloud Foundry Runtime and Authorization and Trust Management Service.

  • Space Developer authorization on the target Cloud Foundry space.

  • Rights to create a Process Integration Runtime service key on the CPI subaccount (for OAuth credentials).

  • A Claude plan that supports custom connectors (Settings → Connectors).

Part A — Package the MCP Server for Deployment

Step 1 — Download the Source Code

Open this GitHub repository and download the project as a ZIP archive.

  • Click Code → Download ZIP.

Figure 1 — The sap-cpi-mcp-server GitHub repository, Code → Download ZIP.

Step 2 — Prepare the Deployment ZIP

Cloud Foundry's build pack looks for package.json at the root of the uploaded archive. GitHub's downloaded ZIP wraps everything inside a folder (e.g., sap-cpi-mcp-server-main/), so it needs to be re-zipped.

  1. Extract the downloaded ZIP and open the extracted folder.

  2. Select package.json, package-lock.json and the src folder (do not select the enclosing folder itself).

  3. Right-click → Send to → Compressed (zipped) folder, and name it sap-cpi-mcp-server.zip.

Figure 2 — Selecting package.json, package-lock.json and src, then Send to → Compressed (zipped) folder.

⚠️ Watch out: If you instead zip the whole extracted folder, package.json ends up one level too deep and staging will fail with a "module not found" style error. Verify the new zip opens straight into package.json, src/, etc. — not into another folder.

Part B — Set Up Cloud Foundry on SAP BTP

Step 3 — Enable the Cloud Foundry Environment

In the BTP Cockpit, open your subaccount's Overview page. If Cloud Foundry hasn't been enabled yet, do so from here.

Figure 3 — Subaccount Overview, with the Cloud Foundry Environment panel and Enable Cloud Foundry.

Figure 4 — Cloud Foundry Environment details: API endpoint, org name/ID, and the Spaces list.

Step 4 — Create Space

Click Create Space (top-right of the Spaces panel shown above) and name it — for example, dev. This is the space you will deploy the application into.

Part C — Deploy the Application

Step 5 — Deploy via BTP Cockpit

Open the dev space → Applications and click Deploy Application.

Figure 5 — The Deploy Application dialog: File location, Deploy with (Manifest/Custom Settings), Manifest location.

  1. Upload the re-zipped file (sap-cpi-mcp-server.zip) at File location.

  2. Keep Deploy with set to Manifest.

  3. Browse to manifest.yml from the extracted folder for Manifest location.

  4. Keep Start application after deploy checked, then click Deploy.

Figure 6 — Dialog filled in with sap-cpi-mcp-server.zip and manifest.yml, ready to deploy.

Step 6 — Confirm the Application Is Running

Once deployment finishes, the application appears in the Applications list with a Started state.

Figure 7 — Applications (1): sap-cpi-mcp-server, Requested State: Started.

Open it to see the Application Overview — buildpack, stack, and the Mapped Routes section with the public HTTPS URL Cloud Foundry assigned to the app.

Figure 8 — Application Overview showing the nodejs_buildpack, cflinuxfs4 stack, and the Mapped Route.

Step 7 — Verify with a Health Check

Open the Mapped Route link from Step 6 and append /health to it. A healthy deployment returns a small JSON payload confirming the server name, version, and an "ok" status.

Figure 9 — GET /health returning { "status": "ok", "server": { "name": "sap-cpi-mcp-server", "version": "1.0.0" } }.

Part D — Connect the App to Your SAP CPI Tenant

Step 8 — Create a Process Integration Runtime Service Key

The app needs its own OAuth client to call your CPI tenant's OData APIs — see 1. Get CPI API credentials above for how to create it and which fields map to which env var.

Step 9 — Configure Environment Variables

In the application, go to User-Provided Variables and click Create Variable for each of CPI_BASE_URL, CPI_TOKEN_URL, CPI_CLIENT_ID, CPI_CLIENT_SECRET, MCP_TRANSPORT=http, and ALLOW_WRITE (keep false unless the connector should be allowed to write):

Figure 10 — User-Provided Variables: ALLOW_WRITE, CPI_BASE_URL, CPI_CLIENT_ID, CPI_CLIENT_SECRET, CPI_TOKEN_URL, MCP_TRANSPORT.

Step 10 — Restage the Application

Environment variable changes only take effect after a restage.

Figure 11 — Restage Application: "Restaging will cause application downtime."

Figure 12 — Application Overview after restage, confirming the app is Started and the route is live.

Part E — Secure the Endpoint with XSUAA

Step 11 — Create the XSUAA Service Instance

In Service Marketplace, search for Authorization and Trust Management Service and click Create.

  1. Plan: application, Runtime Environment: Cloud Foundry, Space: dev.

  2. Instance Name: sap-cpi-mcp-server-xsuaa.

Figure 13 — New Instance or Subscription: Authorization and Trust Management Service, plan application.

  1. On the Parameters step, paste the contents of xs-security.json from the extracted folder — this defines the app's xsappname and its OAuth scopes (mcp.read, mcp.write, mcp.delete).

  2. Click Create.

Figure 14 — Parameters step with the xs-security.json scopes and descriptions pasted in.

Step 12 — Generate a Service Key for the Claude Connector

Open the new sap-cpi-mcp-server-xsuaa instance → Service Keys → Create. These credentials are what Claude will use to authenticate to the MCP endpoint.

Figure 15 — New Service Key dialog for the XSUAA instance.

Open the key's Credentials (JSON view) to retrieve clientid, clientsecret and url — keep this panel handy for Part F.

Figure 16 — Service key credentials: clientid, clientsecret, url, identityzone, tenantid, etc.

🔒 Treat this credentials panel like a password screen — don't leave it visible in a screenshot or screen share.

Step 13 — Bind XSUAA to the Application

In the application, go to Service Bindings → Bind Service Instance, choose sap-cpi-mcp-server-xsuaa, and confirm the binding.

Figure 17 — Bind Service Instance: selecting sap-cpi-mcp-server-xsuaa (service: xsuaa, plan: application).

Note: Restart or restage the app again after binding so it picks up the new VCAP_SERVICES credentials.

Step 14 — Create Role Collections

Under Security → Role Collections, create one collection per role template in xs-security.json (Support, Developer, Architect — see RBAC above).

Figure 18 — Create Role Collection: SapCpiMcp.Architect, mapped to the Architect role template.

Figure 19 — Three role collections created: SapCpiMcp.Architect, .Developer and .Support.

Step 15 — Assign Users to Role Collections

Open the relevant Role Collection and add each user under its Users tab — this determines what that person (or the account they sign in with when connecting Claude) is allowed to do through the MCP server.

Figure 20 — SapCpiMcp.Support role collection, with the Support role template and an assigned user.

Part F — Connect to Claude

Step 16 — Add a Custom Connector in Claude

In Claude, go to Settings → Connectors → Add → Add custom connector.

Figure 21 — Add custom connector: Name, Remote MCP Server URL, and Advanced settings for OAuth Client ID/Secret.

Step 17 — Get the Remote MCP Server URL

Back in the Cockpit, open the application's Application Overview and copy the Mapped Routes URL, then append /mcp to it — e.g. https://sap-cpi-mcp-server.cfapps.<region>.hana.ondemand.com/mcp.

Figure 22 — Application Overview with the Mapped Route to copy (append /mcp when pasting into Claude).

Step 18 — Get the OAuth Client ID & Secret

Open the service key you created in Step 12 and copy its clientid and clientsecret into the connector's OAuth Client ID / OAuth Client Secret fields.

Step 19 — Connect and Authenticate

Click Add, then Connect.

Figure 24 — Connector added, showing the /mcp URL and a Connect button before authentication.

  1. Claude redirects to your SAP identity provider's login page.

  2. Sign in with an account that has been assigned one of the SapCpiMcp role collections from Step 15.

  3. Once authenticated, the connector shows as connected and all 45 MCP tools become available to Claude.

Verification

Confirm the end-to-end connection with two quick prompts in a new Claude chat:

"List out the tools available in the SAP CPI MCP server."

Figure 25 — Claude listing the full MCP tool catalog: discovery/catalog, packages & flows, deployment & runtime status, and more.

"List out the deployed interfaces."

Figure 26 — Claude calling list_deployed_artifacts and returning the tenant's actual deployed integration flow(s).

Both responses coming back with live tenant data confirm the full chain is working: Claude → XSUAA-authenticated /mcp endpoint → Cloud Foundry app → SAP CPI OData API.

Troubleshooting

Symptom

Likely cause

Fix

Staging fails / buildpack can't find package.json

The re-zipped archive still has a wrapping folder (e.g., sap-cpi-mcp-server-main/package.json).

Re-zip so package.json, src/, etc. sit at the root of the archive — see Step 2.

App deploys but /health doesn't return status ok, or the app shows CRASHED

MCP_TRANSPORT isn't set to http, or the app wasn't restaged after the variable was added.

Check the app's Logs tab; confirm MCP_TRANSPORT=http is set, then restage (Step 10).

Claude connector returns 401/403 after login

The signed-in user isn't in any SapCpiMcp role collection, or the XSUAA instance isn't bound to the app.

Confirm Service Bindings shows sap-cpi-mcp-server-xsuaa bound (Step 13), and assign the user to a role collection (Step 15).

App is Running but CPI calls fail with 401

CPI_BASE_URL / CPI_CLIENT_ID / CPI_CLIENT_SECRET are wrong, expired, or the service key lacks the required roles.

Recreate the Process Integration Runtime service key with the roles listed in Step 8, update the variables, and restage.

Appendix A — Equivalent CF CLI commands

cf login -a https://api.cf.<region>.hana.ondemand.com
cf target -o <org> -s <space>

cf push --no-start

cf set-env sap-cpi-mcp-server CPI_BASE_URL "https://<tenant>/api/v1"
cf set-env sap-cpi-mcp-server CPI_TOKEN_URL "https://<subdomain>.authentication.<region>.hana.ondemand.com/oauth/token"
cf set-env sap-cpi-mcp-server CPI_CLIENT_ID "<clientid>"
cf set-env sap-cpi-mcp-server CPI_CLIENT_SECRET "<clientsecret>"
cf set-env sap-cpi-mcp-server MCP_TRANSPORT "http"
cf set-env sap-cpi-mcp-server ALLOW_WRITE "false"

cf create-service xsuaa application sap-cpi-mcp-xsuaa -c xs-security.json
cf bind-service sap-cpi-mcp-server sap-cpi-mcp-xsuaa

cf start sap-cpi-mcp-server

cf create-service-key sap-cpi-mcp-xsuaa sap-cpi-mcp-xsuaa-key

The service key from the last command supplies the clientid, clientsecret and tokenurl to paste into Claude's custom connector — the same values Steps 12 and 18 retrieve through the Cockpit UI. For a simpler dev-only setup without XSUAA, MCP_AUTH_TOKEN (a static shared secret) still works as a fallback auth mode — see Securing the HTTP endpoint above.


4. Example prompts once connected

  • "Show me all failed messages in the last 4 hours."

  • "Give me a failure summary for the last 24 hours grouped by integration flow."

  • "Get the error details for MessageGuid AGh...."

  • "List integration flows in package MyIntegrationPackage and tell me which are deployed."

  • "Is the OrderReplication flow deployed and started? If not, why?"


Notes on the CPI OData API

  • Collection base: .../api/v1

  • MPLs: /MessageProcessingLogs — filter with $filter, sort with $orderby=LogEnd desc.

  • Error text: /MessageProcessingLogs('<guid>')/ErrorInformation/$value (plain text).

  • Packages: /IntegrationPackages, flows: /IntegrationDesigntimeArtifacts.

  • Deployed: /IntegrationRuntimeArtifacts.

  • Time filters use OData datetime literals: LogEnd gt datetime'2024-01-01T00:00:00'.

Requires Node.js 18+ (uses the built-in fetch).

Available Tools

44 tools
cancel_message_processing_logCancel Message Processing LogA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true to actually cancel.
messageGuidYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavior. Mentions mutation and requirement for confirmation. Lacks details on side effects or irreversibility beyond confirmation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with parenthetical example and requirement note. Concise and front-loaded, but could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, permission, and key parameter. Lacks return behavior, error conditions, or irreversible nature. Adequate but not complete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 2 parameters with 50% description coverage. Description adds meaning to 'confirm' but messageGuid remains unclear. Baseline 3 due to moderate compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool cancels a currently processing/retrying message, with an example. Distinct from sibling tools that read or manage other aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates requires ALLOW_WRITE and confirm=true, providing clear prerequisites. Does not explicitly list when not to use or alternatives, but context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

copy_integration_packageCopy Integration Package (from Hub / Discover)A

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

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true to proceed.
packageIdYesId of the package to copy.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only mentions the permission requirement. It does not describe side effects (e.g., overwriting behavior), return values, or whether the copy is deep or shallow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. It front-loads the action and context, and every word adds value. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple copy operation, the description covers the action and a key requirement. However, it lacks information about what the tool returns or how to handle success/failure, which is important for an agent to invoke correctly without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% and both parameters are described adequately. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (copy), the source (standard/partner package from Discover catalog), and destination (design workspace). It distinguishes from sibling tools like create_integration_package and get_integration_package.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a prerequisite (ALLOW_WRITE) and indicates the context for use (copying an existing package into the workspace). It does not explicitly state when not to use or provide alternatives, but the context is clear enough for typical usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cpi_api_catalogCPI API Catalog (discover entity sets & operations)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional case-insensitive substring filter.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description only states it lists data. It does not disclose any behavioral traits such as side effects, authentication requirements, rate limits, or pagination behavior, which would be expected for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, and no extraneous words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one optional parameter, so the description is largely adequate. However, since there is no output schema, mentioning what the output looks like (e.g., list of names, endpoints) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single optional 'filter' parameter. The description does not add meaning beyond the schema's own description ('Optional case-insensitive substring filter'), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists every OData entity set and function import, and explicitly distinguishes from sibling tools by naming the consumer tools (cpi_query, cpi_get_entity, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to discover what ... can target,' providing clear usage context. It implies using this tool before the specific query/get/invoke/write tools, though it doesn't mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cpi_get_entityCPI Get Entity (read one record by key)A

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoSingle key value.
rawNoReturn raw text (use for /$value endpoints).
keysNoComposite key object.
entitySetYes
navigationNoNavigation property to follow, e.g. 'Configurations'.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It conveys read-only intent and composite key support, but lacks details on error handling, required permissions, or consequences of missing parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are concise, front-loaded with purpose, and contain no filler. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description does not explain the return format or the 'raw' parameter. For a tool with nested objects and multiple parameters, more detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema: clarifies key vs keys usage for single/composite keys, provides real-world examples, and explains the navigation parameter. Schema coverage is high but the description still adds crucial context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action is to get a single entity by key, and distinguishes between single-key and composite-key usage with examples. This differentiates it from sibling list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you have a key) but does not explicitly contrast with alternatives or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cpi_invoke_functionCPI Invoke Function Import (run any operation)A

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

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoPOST
paramsNo
confirmNoMust be true to proceed.
functionNameYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses auto-quoting of string parameters, the need for ALLOW_WRITE permission, and the typical mutability of function imports. This goes beyond the schema, though it could mention idempotency or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the purpose and quickly adding critical behavioral notes. Every sentence is necessary and no word is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (no output schema, 4 parameters, large sibling set), the description covers the essential aspects: what it does, how to use parameters, permissions, and side effects. Missing details about return values or error scenarios, but overall adequate for an invocation tool with a referenced catalog.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (25%), with only 'confirm' having a description. The description adds value by noting that string parameters are auto-quoted, which informs the agent about parameter handling. However, it does not explain 'functionName' or 'method' beyond what the schema provides, leaving some parameters underdescribed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool invokes any OData function import, specifying the resource (function imports) and the action (invoke). It references the sibling tool 'cpi_api_catalog' for discovery, distinguishing it from other tools that perform specific operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context about permission requirements (ALLOW_WRITE) and side effects (most change tenant state), but does not explicitly state when to use this tool vs alternatives. It implies usage via the reference to cpi_api_catalog, but lacks explicit when-not or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cpi_queryCPI Query (read any entity set)A

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
skipNo
expandNo$expand comma list.
filterNoOData $filter expression (pre-quote string literals).
selectNo$select comma list.
orderbyNo
entitySetYese.g. IntegrationPackages, KeystoreEntries, DataStores

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behaviors. It describes the tool as a read query (non-destructive) and mentions standard OData options, but fails to discuss rate limits, maximum result size (though top parameter suggests 1000), error handling, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—one sentence plus an example. Every word serves a purpose, and the example immediately clarifies usage. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description gives a clear purpose and example. However, it lacks details on return format, pagination behavior, and potential errors, which are important for a query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 57%, and the description adds value by providing an example of using entitySet, filter, and orderby. However, for parameters like top, skip, expand, select, orderby, the schema already provides basic descriptions; the description doesn't add further semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a read query against any CPI OData entity set, with a specific example. This distinguishes it from siblings like cpi_write (write operations) and cpi_get_entity (likely single entity retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for read queries via 'Run a read query', but does not explicitly state when to use it over alternatives like cpi_get_entity or cpi_write. No guidance on when not to use or prerequisites is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cpi_writeCPI Write (create/update/delete any entity)A

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')").

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body object (for POST/PUT/MERGE).
pathYesPath relative to /api/v1, e.g. /NumberRanges or /Variables(...).
methodYes
confirmNoRequired true for DELETE.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

In absence of annotations, the description carries full burden. It discloses permission requirements (ALLOW_WRITE) and a special condition (confirm for DELETE), but does not mention potential side effects, error scenarios, or rate limits for this potentially dangerous write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words. Front-loads purpose and immediately provides key constraints. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low-level nature and lack of output schema, the description covers core functionality, prerequisites, and path formatting. Could mention return values or idempotency, but still sufficient for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the input schema by clarifying path format with an example and noting the ALLOW_WRITE requirement (not in schema). With 75% schema coverage, it compensates well for the undocumented aspects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Low-level create/update/delete against any CPI OData path', uses specific verbs (create/update/delete) and resource (CPI OData path), and distinguishes itself from sibling tools that target specific entities (e.g., create_integration_package).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides prerequisites ('Requires ALLOW_WRITE', 'DELETE requires confirm=true') and path format guidance. However, it lacks explicit direction on when to use this low-level tool versus the many sibling tools that offer specific operations on particular entities.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_integration_flowCreate 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTechnical Id (no spaces).
nameYes
confirmNoMust be true to proceed.
packageIdYes
descriptionNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It adds that the flow is empty and version 1.0.0, but omits critical details like idempotency, error handling, or response format. The confirm parameter's requirement is already in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loading the purpose and context without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, 3 required, no output schema, and no annotations, the description is too sparse. It omits explanations for the confirm safety guard, id format nuances, and post-creation steps beyond 'edit in web editor'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 40% (only id and confirm have descriptions). The description adds the ALLOW_WRITE requirement but does not clarify the meaning or format of packageId, name, or description, failing to compensate for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create'), the resource ('integration flow'), and specific details ('empty', 'in a package', 'default flow at version 1.0.0'). It distinguishes itself from siblings like create_integration_package and save_integration_flow_as_version.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the requirement for ALLOW_WRITE permission and implies usage when creating a new flow, but does not explicitly state when not to use or list alternative tools for editing or versioning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_integration_packageCreate Integration PackageC

Create a new integration package. Requires ALLOW_WRITE.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTechnical Id (no spaces).
nameYes
confirmNoMust be true to proceed.
shortTextNo
descriptionNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral context. It only states a permission requirement, omitting details about side effects, what happens if 'confirm' is false, or any other behavioral traits beyond creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact—a single sentence with no excess verbiage. It is appropriately front-loaded with the action. However, it could be slightly more efficient by integrating the permission note without the period.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and incomplete parameter documentation, the description is insufficient. It does not explain return values, the nature of an integration package, or provide enough context for an AI agent to confidently invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%, and the tool description adds no parameter information. While the schema itself documents two parameters (id and confirm), the description does not clarify the meaning of name, shortText, or description, leaving semantic gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new integration package' with a specific verb and resource. The name and sibling tools (e.g., copy_integration_package, delete_integration_package) show distinction, as this tool handles creation exclusively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only mentions a permission requirement ('Requires ALLOW_WRITE') but offers no guidance on when to use this tool versus alternatives like copy_integration_package, nor any exclusion criteria or context for typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_number_rangeCreate Number RangeC

Create a number range object. Requires ALLOW_WRITE.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
rotateNo
confirmNoMust be true to proceed.
maxValueNo
minValueNo
descriptionNo
fieldLengthNo
currentValueNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It only states the permission requirement and creation action, omitting details like side effects, idempotency, or state changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise and front-loads the purpose, but it is too brief given the tool's complexity, missing essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters, required fields, and no output schema. The description does not explain what a number range is, how parameters affect behavior, or what the return value is, making it incomplete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a schema description coverage of only 13%, the description adds no value beyond the schema. It does not explain any parameters, leaving the agent without guidance on required fields or defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'number range object', making the purpose unambiguous. It distinguishes from sibling 'list_number_ranges' by implying creation vs. listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires ALLOW_WRITE', indicating the tool is for write operations, but it does not provide explicit when-to-use or when-not-to-use guidance relative to alternatives like 'list_number_ranges'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_integration_packageDelete Integration PackageA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
packageIdYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool is destructive (deletes package and all artifacts) and requires a specific permission and confirmation parameter. This is transparent for a delete operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that state the action and the requirements. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a delete operation with no output schema and only two parameters, the description covers the core aspects: what is deleted, the permission needed, and the confirmation flag. It omits details about potential side effects or error responses, but for its simplicity it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description compensates by explaining that confirm must be true for the operation to proceed and that write permission is required. This adds meaning beyond the raw schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'delete' and the resource 'integration package and all its artifacts', making the purpose unambiguous. It distinguishes itself from sibling tools like copy_integration_package and create_integration_package.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies when to use this tool by requiring ALLOW_WRITE permission and confirm=true. However, it does not explicitly mention when not to use it or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_artifactDeploy 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNointegrationFlow
confirmNoMust be true to proceed.
versionNoactive
artifactIdYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool requires ALLOW_WRITE permission and that deployment is asynchronous—both critical behavioral traits beyond what schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no wasted words. The first sentence gives purpose and permission, the second addresses asynchronous behavior and post-deployment actions. Perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters and no output schema, the description covers the essential behavioral context (async, permission) but lacks detail on parameter roles and return value. It's adequate but leaves room for more parameter-specific guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (25%), and the description only says 'Choose the artifact type' without explaining other parameters like artifactId, version, or confirm. It adds minimal meaning to the parameter set beyond what the enums already imply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Deploy a design-time artifact to the runtime' with the verb 'deploy' and resource 'artifact'. It also mentions choosing the artifact type, distinguishing it from siblings like undeploy_artifact and status-checking tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: deployment is asynchronous and suggests checking status with two specific sibling tools. It does not explicitly state when not to use, but the async hint and status alternatives guide appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_user_credentialDeploy User CredentialA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNodefault
nameYes
userYes
confirmNoMust be true to proceed.
passwordYes
descriptionNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the secret is write-only and cannot be read back, which is critical behavioral info. However, it does not mention other traits like idempotency or conflict behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loading purpose and permission then adding behavioral trait. No fluff, but could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description does not cover return values or error handling. For a creation tool with 6 parameters and no annotation support, more context is needed for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%. The description does not add any meaning beyond the schema for parameters like 'kind', 'name', 'user', 'password', 'confirm', or 'description'. The agent receives no additional guidance on parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create/deploy a User Credential security artifact' using a specific verb and resource. It distinguishes from sibling tools like 'list_user_credentials' which is a listing operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the required permission 'ALLOW_WRITE', giving usage context. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_integration_flowDownload Integration Flow (base64 zip)C

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoactive
artifactIdYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It only discloses the output format (base64 zip) but fails to mention non-destructive nature, authentication needs, rate limits, or response size. This is insufficient for understanding behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), which is concise, but it sacrifices clarity and completeness. It lacks structure and does not efficiently convey needed details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters with 0% schema coverage and no output schema or annotations, the description is woefully incomplete. It does not explain what the zip contains, how to use parameters, or any edge cases. Needs significant expansion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds no explanation for parameters like artifactId or version (default 'active'). Only 'zip ($value)' hints at output but not how parameters affect it. Minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Download' and the resource 'integration flow content' as a base64-encoded zip. The term '($value)' is ambiguous but overall the purpose is clear and distinguishable from siblings like get_integration_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only a brief hint 'Useful for backup/transport' is provided. No when-to-use or when-not-to-use guidance, and no mention of alternative tools like get_integration_flow or list_integration_flows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_and_deploy_statusGet Build & Deploy StatusA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe deploy task id returned by deploy_artifact.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions 'asynchronous' but doesn't disclose read-only nature, expected status format, or polling behavior. A more explicit statement about safety (e.g., non-destructive) would improve it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundant information, efficiently conveys the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple status-check tool. Could mention expected return type or typical usage pattern (e.g., polling), but functional as is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description adds context by noting that the taskId is returned by deploy_artifact, going beyond the schema description which merely states 'The deploy task id returned by deploy_artifact.' The description integrates that into the purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'check' and resource 'asynchronous build/deploy task status'. Distinguishes from siblings like deploy_artifact which returns the task id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage after deploy_artifact to obtain task id, but no explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_data_store_entriesGet Data Store EntriesC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
typeNodefault
dataStoreNameYes
integrationFlowNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must bear the full burden of behavioral transparency. It describes a read operation ('list'), but does not disclose pagination behavior (the 'top' parameter suggests pagination but is unexplained), error handling, or return format. The description only adds context for one parameter, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with no wasted words. It front-loads the core purpose and then clarifies the key parameter. It could be slightly more structured, but it is concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (4 parameters, no output schema), the description is too sparse. It does not explain how to paginate (top parameter), what 'type' means, or what the response looks like. A more complete description would include these details to help the agent use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only explains one of four parameters (IntegrationFlow) partially. The other parameters (top, type, dataStoreName) are not described at all, leaving the agent to guess their meaning and usage. This is insufficient for a tool with 4 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the entries in a specific data store', which specifies the verb and resource. It also clarifies the role of 'IntegrationFlow' parameter (flow Id or empty for global store). However, it does not explicitly differentiate from sibling tools like 'list_data_stores' or 'get_message_store_entries', so it loses a point for not fully distinguishing purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some guidance by indicating that IntegrationFlow can be empty for a global store, hinting at when to use the tool for a specific store vs. global. But it does not mention when not to use it, nor does it offer alternatives like using 'list_data_stores' to find stores first. This is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_deployed_artifact_statusGet Deployed Artifact StatusB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
artifactIdYes
includeErrorDetailsNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It only states it returns status and error details, but does not specify possible status values, whether the operation is read-only (likely but unconfirmed), or any other behavioral context (e.g., rate limits). Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, efficiently conveying the core purpose. However, it omits necessary details for parameters and usage, making it somewhat under-specified for the agent's needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 unannotated parameters, no output schema, and many siblings, the description is incomplete. It lacks parameter semantics, usage context, and behavioral depth, leaving the agent with insufficient information for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the parameters. It does not mention either 'artifactId' or 'includeErrorDetails', nor does it explain their purpose or default values. The phrase 'one runtime artifact' only hints at 'artifactId' but does not clarify the optional 'includeErrorDetails' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and resource 'deployment status of one runtime artifact', clearly distinguishing it from siblings like 'list_deployed_artifacts' (which lists multiple) or 'get_build_and_deploy_status' (which may cover broader status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a single artifact, but does not explicitly state when to use this tool versus alternatives like 'list_deployed_artifacts' or 'get_build_and_deploy_status'. No exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_failure_summaryGet Failure SummaryB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
hoursBackNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals that the tool aggregates over a recent window (implicitly linked to hoursBack) and groups by integration flow. However, it does not disclose whether the operation is read-only, permission requirements, or what happens when the top limit is exceeded. The behavioral traits are partially transparent but lack important details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the core functionality. Every word earns its place; there is no redundancy or filler. It is appropriately concise for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and the presence of many sibling tools, the description lacks completeness. It does not specify the return format (e.g., counts, error details), how the top parameter affects results, or how this summary differs from alternative tools. The agent would need additional information to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description only hints at hoursBack ('recent window') and does not explain the 'top' parameter (e.g., limits number of groups, not messages). The grouping is mentioned but not parameterized. This leaves the agent guessing about parameter semantics, which is a significant gap for a two-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('aggregate'), the resource ('failed/escalated messages'), and the grouping dimension ('by integration flow'). It effectively distinguishes from sibling tools like search_message_processing_logs or get_mpl_error_information by focusing on a summary/aggregation rather than individual logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its many siblings. There is no mention of alternatives, prerequisites, or exclusions. The agent is left to infer usage from the name alone, which is insufficient given the tool's specificity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_flow_configurationsGet Flow Externalized ConfigurationsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoactive
artifactIdYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read-only operation, but the description does not explicitly state that the tool has no side effects, requires no special permissions, or that it returns data without modifying state. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-formed sentence that clearly communicates the tool's action and result. No redundant words, and the key information is front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema), the description is adequate but incomplete. It does not specify the structure of the returned configuration (e.g., list or object), the meaning of the version parameter, or the artifactId's role. Missing details that would help an agent fully understand the tool's usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the parameters artifactId or version beyond the general purpose. It mentions 'endpoints, credentials names' as examples of configuration content but does not clarify what artifactId identifies or how version (default 'active') affects results. The description adds little to parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves externalized configuration parameters of an integration flow, with examples (endpoints, credentials names). This distinguishes it from sibling tools like get_integration_flow (flow details) and update_flow_configuration (modification).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies use when needing configuration parameters, but lacks prerequisites, exclusions, or comparisons with siblings like get_flow_resources or search_message_processing_logs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_flow_resourcesGet Flow ResourcesB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoactive
artifactIdYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states the action but does not mention permissions, side effects, or return format, leaving an information gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff, well-structured and front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is too brief; it lacks parameter semantics and behavioral details, making it incomplete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, yet the description adds no explanation for the two parameters (artifactId and version), failing to clarify their meaning or usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') and resource types ('scripts, XSDs, WSDLs, mappings'), clearly distinguishing it from siblings like get_integration_flow or list_integration_flows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to list resources of a flow) but provides no exclusions or alternatives, such as when to use get_integration_flow instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integration_flowGet Integration Flow DetailsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoactive
artifactIdYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It indicates the artifact is 'design-time', implying a read-only operation, but lacks details on authentication, error handling, or response contents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the verb and resource, with no extraneous wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should indicate what is returned; it does not. It also omits preconditions or error scenarios, making it incomplete for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description adds meaning by stating the tool retrieves by 'Id and Version', clarifying the role of the two parameters. It does not explain format or constraints beyond what the schema names suggest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Get' and the resource 'design-time integration flow artifact', specifying retrieval by Id and Version. This distinguishes it from sibling tools like list_integration_flows or create_integration_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing a specific integration flow by ID, which provides clear context. However, it does not explicitly exclude alternatives or mention when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integration_packageGet Integration PackageC

Get details of a single integration package by Id.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageIdYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states that it gets details, but does not disclose any behavioral traits such as what 'details' include, side effects, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. However, it could be expanded with more context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description is very thin. It does not explain the return value or any additional behavior, leaving the agent with incomplete information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single parameter 'packageId'. The description adds 'by Id' but does not elaborate on the format or source of the ID, nor does it explain what the parameter means.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'integration package', and the method 'by Id', which distinguishes it from sibling tools like list_integration_packages (list all) and create_integration_package (create).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_message_store_entriesGet Message Store EntriesB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageGuidYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description should disclose behavioral traits. It implies a read operation but does not explicitly state safety, side effects, or access requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is clear and front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks return value description, error handling, or examples. Given no output schema, the agent has incomplete information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description only vaguely mentions 'for a message' without explaining the messageGuid parameter's role or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets persisted message store entries, specifically payloads from the 'Persist' step, for a message. This distinguishes it from sibling tools like get_data_store_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not mention prerequisites or context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mpl_custom_header_propertiesGet MPL Custom Header PropertiesC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageGuidYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only says 'Get', implying a read operation, but lacks details on error handling, prerequisites, or side effects. Does not mention if the tool can return empty or fail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, concise and front-loaded. No extraneous information, but it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not explain what the tool returns or its format. It mentions 'business keys' and 'custom status' but not structure. Simple tool, but lacks completeness for an unfamiliar agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage; the description does not explain the 'messageGuid' parameter. An agent would not know what a valid guid looks like or how to obtain it. The description adds no meaning beyond the schema's type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'custom header properties', and specifies what's included (business keys, custom status). It distinguishes from sibling tools like get_mpl_details or get_mpl_error_information, which cover different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like get_mpl_details or get_mpl_error_information. The description only states what it does, not the context of use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mpl_detailsGet MPL DetailsA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageGuidYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It implies a read operation but omits details on authentication, rate limits, or side effects. For a simple retrieval, this is adequate but not transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and resource. No wasted words; efficiently communicates the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter retrieval tool with no output schema, the description covers the essential purpose. It does not describe return format or error conditions, but given the low complexity, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, messageGuid, has 0% schema description coverage. The description adds no extra meaning beyond restating the parameter name ('for a specific MessageGuid'), which is already obvious from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('full Message Processing Log entry'), and the required input ('MessageGuid'). It distinguishes from sibling tools like get_mpl_run_steps and get_mpl_error_information by specifying 'full' entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., get_mpl_run_steps for step details). It does not mention prerequisites, context, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mpl_error_informationGet MPL Error InformationB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageGuidYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It states the tool retrieves text but does not disclose whether it is read-only, any required permissions, or potential side effects. The description lacks important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 12 words, front-loaded with the key action and resource. Every word is necessary and the description is efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no output schema), the description is minimally adequate but lacks details about the return value format, potential empty results, or error scenarios. Not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, messageGuid, has no description in the schema (0% coverage). The tool description does not add any extra meaning, such as expected format or source of the GUID, leaving the parameter underdocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and the resource 'detailed error/exception text for a failed message'. It distinguishes from sibling tools like get_failure_summary by focusing specifically on error text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as get_failure_summary or get_mpl_details. The description does not mention any prerequisites or context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mpl_run_stepsGet MPL Run StepsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageGuidYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. The description only mentions a prerequisite (logging enabled) and implies read-only operation via the verb 'get'. It does not discuss idempotency, error behaviors, or what happens if the message does not exist. Given the lack of annotations, this is insufficient for safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 14 words, efficiently conveying the core purpose and a prerequisite. The main action is front-loaded ('Get the individual run steps for a message'), and the prerequisite is placed in parentheses. No redundant information is present. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema), the description should clarify return values and potential limitations. It does not mention what the tool returns (e.g., a list of step objects) or any constraints beyond the prerequisite. The absence of output schema places the burden on the description, which it fails to meet.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single parameter 'messageGuid'. The description does not mention the parameter at all, nor does it explain how to identify the message. While the parameter name is somewhat self-explanatory, the description adds no value beyond the schema; it fails to map 'message' to the required parameter. This leaves the agent without necessary guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves individual run steps for a message, which is a specific and distinct function. It distinguishes itself from sibling tools like get_mpl_details and get_mpl_error_information by focusing on 'run steps' rather than general details or errors. The verb 'get' and resource 'individual run steps' are precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a prerequisite condition: 'requires trace/step logging enabled on the flow.' This provides clear context for when the tool can be used. While it does not explicitly mention alternatives, the prerequisite implies that without logging enabled, the tool cannot be used, which serves as a when-not-to-use signal. No exclusions are stated, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_data_storesList Data StoresC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as pagination (implied by the 'top' parameter), rate limits, or side effects. The tool is described as a simple list, but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence, 10 words), but it is too sparse given the lack of parameter documentation and behavioral context. It could be expanded without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and a single optional parameter, the description does not explain what the returned data looks like, how pagination works, or how this tool relates to siblings like get_data_store_entries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention the 'top' parameter at all, failing to add semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists data stores and specifies they are transient/persistent message persistence. However, it does not explicitly differentiate from sibling tools like get_data_store_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No context on prerequisites or suitability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_deployed_artifactsList Deployed Runtime ArtifactsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description carries burden. States it lists artifacts and statuses, which is adequate for a simple read operation. However, does not disclose that results are limited by the 'top' parameter or any access constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, minimalistic. But contains misleading 'all' that contradicts schema. Conciseness is acceptable but accuracy is compromised.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list with 1 optional parameter, description covers resource and status but omits explanation of 'top' parameter and return structure. No output schema, so description should provide more detail than it does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has one parameter 'top' (integer, default 100) with 0% schema description coverage. Description says 'List all' which contradicts the limit imposed by 'top'. Fails to add meaning and introduces inconsistency.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'List' and resource 'deployed runtime artifacts', mentions status values like STARTED, ERROR, STARTING. Clearly distinguishes from sibling list tools (e.g., list_integration_flows, list_data_stores) which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like list_integration_flows or deploy_artifact. Does not specify context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_integration_flowsList Integration Flows in a PackageC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
packageIdYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description states 'list', implying read-only behavior with no destructive side effects. This is adequate for a listing tool, but no additional behavioral details (e.g., pagination, permissions) are given. With no annotations, the description carries full burden but does not go beyond the implied action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, very concise with no filler. However, it may be too brief given the need to explain parameters and usage. Slightly more detail without verbosity would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description does not hint at the return format or content (e.g., list of flow IDs, names, etc.). For a listing tool, this is a significant omission. The description is complete only in stating the basic function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, but it does not explain the meaning of 'packageId'. The only parameter is undocumented in both schema and description. The tool name suggests it lists flows within a package, but the description does not clarify the role of packageId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'list' and the resource 'integration flow design-time artifacts in a package'. This distinguishes it from sibling tools like list_integration_packages (lists packages) and get_integration_flow (gets a single flow). However, 'design-time artifacts' is slightly vague but domain-appropriate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Description does not mention when not to use it or any prerequisites. Given many sibling tools for integration flow operations, such guidance would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_integration_packagesList Integration PackagesC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does not mention pagination, rate limits, or the meaning of 'design workspace'. The 'top' parameter hints at limiting results but is not explained in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and minimal annotations, the description is too brief. It fails to explain the return format, any ordering, or the significance of the 'top' parameter, leaving the agent with incomplete context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain the 'top' parameter, but it does not. The agent must infer from the parameter name and constraints that it limits the number of results, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'integration packages' with scope 'in the tenant's design workspace'. It distinguishes from sibling list tools by specifying the resource type, though it could be more precise about what qualifies as an integration package.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_integration_package or list_integration_flows. The description lacks context for choosing this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_jms_queuesList JMS QueuesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It implies a read-only operation ('list'), but does not explicitly state side effects, authentication needs, or rate limits. The description adds minimal behavioral context beyond the verb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and the information provided. Every word is earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and a simple task, the description fully covers what the tool does and what information it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100%. The description does not need to add parameter semantics, and the baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it lists JMS queues with their state (capacity, message counts). It clearly distinguishes from other list tools like 'list_data_stores' or 'list_deployed_artifacts'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. While the purpose is clear, the description does not provide any context about when it should be used or when to choose another list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_keystore_entriesList Keystore Entries (Certificates)B

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full burden. It does not disclose behavior such as return format, pagination, authentication needs, or whether the operation is read-only. Only the basic action is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core purpose without unnecessary words. It is appropriately sized for a simple listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one optional parameter and no output schema, the description provides minimal context. It states what the tool does but omits details like return structure or pagination behavior, which are expected for a complete listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. The sole parameter 'top' is not described; its semantics (presumably limiting the number of entries returned) are left to the agent to infer from the schema's default and bounds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'List', the resource 'entries (certificates / key pairs)', and the location 'tenant keystore'. It clearly distinguishes from other list tools by targeting keystore entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, prerequisites, or context. With many sibling list tools, explicit usage guidelines would help the agent make the correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_log_filesList System Log FilesA

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states the tool lists files but does not disclose whether it is read-only, what happens if no files exist, or any access restrictions. The behavior is adequately implied for a simple list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that conveys the essential information without redundancy. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description is minimally complete. However, it does not specify what the output contains (e.g., file names, paths, sizes) which could help the agent understand the response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters and 100% coverage. The description adds no parameter information because none are needed. Baseline score of 3 is appropriate as the schema already documents the lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'system log files' with specific examples (http, trace) and scope (tenant worker nodes). It distinguishes from sibling tools like search_message_processing_logs which deal with message logs rather than log files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving available log files but does not provide explicit when-to-use or when-not-to-use guidance. No differentiation from alternatives like get_mpl_details or search_message_processing_logs, which have different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_number_rangesList Number RangesB

List configured number range objects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are available, so the description must fully disclose behavioral traits. It only states the action 'list', which implies read-only, but it does not confirm safety, mention pagination, rate limits, or any side effects. The lack of detail leaves the agent with minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. It is front-loaded with the action and resource, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should at least hint at what is returned (e.g., fields, format, or count). It only says 'number range objects', which is vague. For a tool with zero parameters, the description could elaborate on the scope of the 'configured' ranges or expected output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description cannot add parameter meaning beyond the schema. According to guidelines, 0 parameters sets a baseline of 4. The description does not introduce any confusion or misleading information about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('configured number range objects'). It directly mirrors the name and title, but it is specific enough to indicate what the tool does. Despite being short, it is unambiguous and distinct from sibling tools like 'create_number_range'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not specify when to use this tool versus any alternatives. Even if the tool is straightforward, explicit guidance on when-not-to-use or prerequisites is missing, which is a gap for an AI agent evaluating multiple similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_oauth2_client_credentialsList OAuth2 Client CredentialsB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It states 'metadata only', indicating a safe, non-destructive read operation. However, it does not mention authentication requirements, permissions, any side effects, or pagination behavior (the 'top' parameter hints at pagination). The description is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should clarify what 'metadata' includes and any sorting or filtering. It does not mention that results might be paginated via 'top'. The overall completeness is adequate for a simple list operation but lacks detail expected for full agent comprehension.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should explain parameters. The only parameter 'top' is not mentioned in the description. An agent cannot infer that it controls the maximum number of returned artifacts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'List', the resource 'deployed OAuth2 Client Credential security artifacts', and the scope 'metadata only'. It distinguishes from sibling list tools by naming the exact artifact type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the many sibling list tools, nor does it mention any prerequisites or alternatives. The context of sibling tools includes similar list operations, but the description lacks explicit usage recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_partnersList Partner Directory PartnersC

List partners registered in the Partner Directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It does not disclose any behavioral traits such as pagination, rate limits, read-only nature, or the effect of the 'top' parameter. The agent is left uninformed about how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (6 words), but it lacks essential information about the parameter. While brevity is valued, the omission of parameter semantics reduces its effectiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single optional parameter and no output schema or annotations, the description should at least explain the 'top' parameter and return format. It fails to do so, making it incomplete for practical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for parameters, and the description does not mention or explain the 'top' parameter. The agent cannot determine what this parameter does (e.g., limit, page size) from the description or schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'List' and resource 'partners registered in the Partner Directory', which is clear and distinguishes it from sibling list tools for other resources (e.g., list_integration_packages). However, it essentially rephrases the title without adding new information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, when not to use it, or any prerequisites. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_service_endpointsList Service EndpointsC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behaviors. It does not mention authentication requirements, whether only active endpoints are returned, rate limits, or any side effects. The description is too minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it could be structured better with parameter details. For a simple tool, it is acceptable but not exemplary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not indicate what the response contains (e.g., list of objects with name, URL, type). The tool's return value is not described, making it incomplete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter ('top') with no description, and schema description coverage is 0%. The description does not explain what 'top' does (e.g., maximum number of endpoints to return), leaving the agent uninformed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('runtime service endpoints (URLs)'), and clearly states the scope ('exposed by deployed integration flows (HTTP, SOAP, OData, etc.)'). This differentiates it from sibling tools like 'list_integration_flows' or 'list_deployed_artifacts'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. With many sibling tools, such as 'list_deployed_artifacts' or 'get_integration_flow', the agent lacks context on when to choose this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_user_credentialsList User Credentials (Security Material)A

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the critical behavioral trait that no secrets are returned, which is important for security. However, it does not explicitly state that the operation is read-only or describe any potential side effects, though listing credentials is inherently safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently communicates the tool's purpose and a key constraint. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the main functionality and safety concern. It is missing an explanation of the 'top' parameter and perhaps details on what metadata is returned, but is otherwise adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not elaborate on the 'top' parameter. The schema provides numeric constraints but no semantic meaning. The agent must infer the parameter's purpose, which could be unclear without additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists deployed user credential security artifacts, and explicitly notes it returns only names/metadata, not secrets. This distinguishes it from siblings like deploy_user_credential.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives, such as when you need the actual secret values. The context is implied but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_variablesList VariablesC

List global and local variables persisted by integration flows.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose whether variables are returned with metadata, pagination behavior (though 'top' parameter hints at it), or any side effects. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the main action. However, it could be expanded with minimal additional context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple single-parameter tool with no output schema, the description still fails to explain parameter usage or the nature of the output. Incomplete for an agent to confidently invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has one parameter 'top' with 0% description coverage. The tool description does not mention the parameter or its purpose (limiting result count). Description adds no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists global and local variables persisted by integration flows. It distinguishes from sibling tools that list other entities like data stores, deployed artifacts, or integration flows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives among many sibling listing tools. The description lacks context about prerequisites or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_integration_flow_as_versionSave 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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoVersion comment / note.
confirmNoMust be true to proceed.
versionYesNew version to save, e.g. '1.0.1'.
artifactIdYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the basic action by explaining that the comment is applied to the artifact before saving, because the API doesn't accept a comment directly. It also flags the need for ALLOW_WRITE permission. With no annotations, this context is valuable for understanding side effects and requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences that cover purpose, permission, and a behavioral nuance. No extraneous information. Each sentence adds value and is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's straightforward nature (saving a version), the description adequately covers the core functionality, required permission, and a key quirk about comment handling. It could be improved by noting version format or return status, but for a write operation with no output schema, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 75% of parameters with descriptions. The description adds meaningful context about the 'comment' parameter (optional, applied before saving) and implicitly clarifies the 'confirm' flag as a safety measure. This enhances understanding beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: saving the current draft as a new version with an optional comment. It specifies the resource (integration flow) and the operation, and it stands out among siblings which are mostly deploy, list, get, etc., without any similar versioning tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to save a draft as a version) and mentions the required ALLOW_WRITE permission. It does not explicitly list alternatives or when not to use it, but the purpose is clear enough to differentiate from deployment or other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_message_processing_logsSearch Message Processing Logs (MPL)A

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

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
statusNo
toTimeNoISO 8601; LogEnd less than this.
fromTimeNoISO 8601; LogEnd greater than this.
integrationFlowNameNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses ordering ('Most recent first') and indirectly pagination via the 'top' parameter, but it omits behavioral traits like result limits, rate limits, or authentication requirements. The disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second lists filters and ordering. No fluff, front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters and no output schema, the description is minimally adequate. It covers major filters but lacks details on return value structure, exclusive/inclusive time boundaries, and error handling. It's complete enough for basic use but not for complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40% (toTime, fromTime described). The description adds meaning by listing the status enum values and naming the integration flow parameter, but does not explain the 'top' parameter beyond what the schema provides (default, min, max). It compensates somewhat for low coverage but is not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search SAP CPI Message Processing Logs' and lists specific filters (status, integration flow name, time window), which is a specific verb-resource combination. It distinguishes from siblings like 'get_mpl_details' by focusing on filtering and search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by listing filterable fields and ordering ('Most recent first'), but it does not explicitly state when to use this tool versus alternative MPL tools like get_mpl_details or get_mpl_error_information. The guidance is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undeploy_artifactUndeploy ArtifactA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
artifactIdYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries burden. It discloses the effect (stops processing) and the confirm requirement, but doesn't cover reversibility or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded with primary action. Every sentence contributes necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema and no annotations, it covers core purpose and a key behavioral requirement. Lacks return value or error information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and description only mentions confirm requirement without explaining its purpose or the artifactId parameter. Minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'undeploy' and explains it removes from runtime and stops processing messages, distinguishing it from siblings like deploy_artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies the requirement for ALLOW_WRITE permission and confirm=true, which guides when to use. Could be more explicit about when not to use, but effective.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_flow_configurationUpdate Flow Configuration ParameterB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true to proceed.
versionNoactive
dataTypeNoxsd:string
artifactIdYes
parameterKeyYes
parameterValueYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states that the tool updates a parameter and requires write permission. It does not specify side effects, whether changes are immediate, or how errors are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, highly efficient, and front-loaded with the core action. No redundant information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters (3 required), no output schema, and no annotations, the description is insufficient. It lacks context about the integration flow, the nature of configuration parameters, and the effects of the 'confirm' flag.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (17%), with only the 'confirm' parameter having a description. The tool description does not compensate by explaining the meaning or permitted values of parameters like 'parameterKey', 'parameterValue', 'version', or 'dataType'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Update' and the resource 'a single externalized configuration parameter of an integration flow'. This clearly distinguishes it from sibling tools like 'get_flow_configurations' which is read-only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires ALLOW_WRITE' which is a prerequisite but does not provide explicit context for when to use this tool versus alternatives. No when-not-to-use guidance or alternative tool references are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 44 tool updatesv1.0.0
    • First observedcancel_message_processing_log
    • First observedcopy_integration_package
    • First observedcpi_api_catalog
    • First observedcpi_get_entity
    • First observedcpi_invoke_function
    • First observedcpi_query
    • First observedcpi_write
    • First observedcreate_integration_flow
    • First observedcreate_integration_package
    • First observedcreate_number_range
    • First observeddelete_integration_package
    • First observeddeploy_artifact
    • First observeddeploy_user_credential
    • First observeddownload_integration_flow
    • First observedget_build_and_deploy_status
    • First observedget_data_store_entries
    • First observedget_deployed_artifact_status
    • First observedget_failure_summary
    • First observedget_flow_configurations
    • First observedget_flow_resources
    • First observedget_integration_flow
    • First observedget_integration_package
    • First observedget_message_store_entries
    • First observedget_mpl_custom_header_properties
    • First observedget_mpl_details
    • First observedget_mpl_error_information
    • First observedget_mpl_run_steps
    • First observedlist_data_stores
    • First observedlist_deployed_artifacts
    • First observedlist_integration_flows
    • First observedlist_integration_packages
    • First observedlist_jms_queues
    • First observedlist_keystore_entries
    • First observedlist_log_files
    • First observedlist_number_ranges
    • First observedlist_oauth2_client_credentials
    • First observedlist_partners
    • First observedlist_service_endpoints
    • First observedlist_user_credentials
    • First observedlist_variables
    • First observedsave_integration_flow_as_version
    • First observedsearch_message_processing_logs
    • First observedundeploy_artifact
    • First observedupdate_flow_configuration

TDQS

B3.1/5.0
Disambiguation4/5

Tools have clear descriptions and distinct purposes, but the large number (44) and multiple tools for similar resources (e.g., 6 for message processing logs) create some potential for confusion. Overall, descriptions help differentiate.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., create_integration_package, search_message_processing_logs). However, a few use a 'cpi_' prefix as a domain marker (cpi_api_catalog, cpi_get_entity), deviating slightly from the pattern.

Tool Count2/5

With 44 tools, the set exceeds the 'too many' threshold (25+). While SAP CPI is a broad domain, this many tools may overwhelm agents and increase selection errors.

Completeness4/5

The tool surface extensively covers integration package/flow lifecycle, deployments, monitoring, security, and configuration. Minor gaps exist (e.g., no explicit tool for managing routing rules or alerts), but core workflows are well-supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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-mcp-server'

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