SAP CPI MCP Server
This server enables AI clients to monitor and manage SAP Cloud Integration (CPI) via its OData v1 APIs, offering comprehensive tools for message monitoring, design-time content, deployment, administration, and generic API access with robust safety controls.
Monitoring: Search message processing logs by status, integration flow, and time; retrieve detailed log entries, error texts, custom header properties, per-step run traces, message store entries, and failure summaries; cancel stuck messages.
Design-time: Manage integration packages (list, create, delete, copy), integration flows (create, save, download, list resources), externalized configurations, and perform content search with
where_used.Deployment: List artifacts and statuses, deploy/undeploy, monitor async builds, and list runtime service endpoints.
Admin: Manage security materials (user credentials, OAuth2 clients, keystore), number ranges, data stores, variables, JMS queues, partners, and log files.
Generic API: Discover entity sets/operations, run OData queries, get entities, invoke function imports, and perform create/update/delete with
confirm=true.Safety: Write/destructive tools require
ALLOW_WRITE=trueenv and explicitconfirm; RBAC roles (Support read-only, Developer read+create/deploy, Architect full access). Supports stdio and HTTP (BTP Cloud Foundry) deployments, with OAuth2, static token, or open authentication.
Allows monitoring and managing SAP Cloud Integration (CPI) through its OData APIs, including message processing logs, design-time content, runtime deployment, and admin tasks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SAP CPI MCP Servershow me failed messages from the last hour"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_flowflow 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/filter MPLs by status, flow, time window |
| Full MPL entry for a MessageGuid |
| Detailed error/exception text for a failed message |
| Custom header properties (business keys) |
| Per-step run trace within a message |
| Persisted payloads for a message |
| Failures grouped by integration flow (health dashboard) |
| Cancel a processing/retrying message |
Design-time content
Tool | Purpose |
| Packages |
| Package CRUD |
| Copy a standard/Discover package into the workspace |
| Integration flows |
| Create a new (empty) iFlow in a package |
| Save the flow draft as a new version (+ optional comment) |
| Download flow as base64 zip |
| Externalized parameters |
| Scripts/XSDs/WSDLs inside a flow |
| 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 |
| Deployed artifacts + status |
| Deploy iFlow / mapping / script / value-mapping / adapter |
| Undeploy a running artifact |
| Async deploy task status |
| Runtime endpoint URLs of deployed flows |
Admin (security material, config, queues, B2B, logs)
Tool | Purpose |
| User Credential security material |
| OAuth2 client credentials |
| Keystore certificates / key pairs |
| Number ranges |
| Data stores + entries |
| Global/local variables |
| JMS queues (Enterprise plan; 501 on trial) |
| Partner Directory partners |
| System log files |
Generic — full API coverage
Tool | Purpose |
| Discover every entity set & function import |
| Read any entity set with |
| Read one record by (single or composite) key |
| Invoke any function import |
| Create/update/delete any entity (DELETE needs |
⚠️ = 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 ⚠️ toolsRole-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 |
| Every read/list/search/download tool |
Developer |
| The above, plus create/update/deploy tools |
Architect |
| Everything, including delete/undeploy and the generic |
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
xs-security.jsondefines 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 (seeresolveOauthScopesinsrc/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-serverIn BTP Cockpit → your subaccount → Security → Role Collections, create three collections —
Architect,Developer,Support— each pulling in the matching role template from thesap-cpi-mcpapp.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-Architectgrants the collection automatically at login.A user's token then carries whichever scopes their Role Collection grants;
src/auth.jsreads them off the verified JWT andsrc/domains/helpers.jsenforces 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:
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 clientThe server verifies the JWT signature against XSUAA's JWKS (
<uaa>/token_keys) and checks the audience. A client obtains a token viaclient_credentials(orauthorization_code) from<uaa>/oauth/tokenand calls/mcpwithAuthorization: Bearer <jwt>.Static token (dev/fallback) — if no XSUAA is bound but
MCP_AUTH_TOKENis set, that static bearer token is required instead.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 |
| RFC 8414 metadata pointing at the real XSUAA |
| Redirects to the real XSUAA |
| Proxies the code/token exchange to the real XSUAA |
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.
In your BTP subaccount → Instances and Subscriptions → create an instance of Process Integration Runtime with plan
api.Under Roles, grant the roles you need, e.g.:
MessageProcessingLogRead(read MPLs)IntegrationContentRead(read packages / design artifacts / deployed artifacts)MonitoringDataReadFor the ⚠️ write tools (deploy/undeploy/create/delete): add the write/deploy roles too, e.g.
WorkspacePackagesEdit,WorkspaceArtifactsDeploy,MessageProcessingLogCustomHeaderRead, and the relevant security-material roles.
Create a Service Key on that instance. From the key you get:
url→ yourCPI_BASE_URLis<url>/api/v1tokenurl→ yourCPI_TOKEN_URL(it already ends in/oauth/token)clientid→CPI_CLIENT_IDclientsecret→CPI_CLIENT_SECRET
2. Run locally (stdio) with Claude Desktop / Claude Code
npm install
cp .env.example .env # then edit .env with your service-key valuesAdd 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.js3. 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/mcpendpoint.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 ( | Node.js MCP server source code — 45 tools for CPI monitoring and management. |
Cloud Foundry application ( | Runs the MCP server as an HTTP service; exposes |
Process Integration Runtime service key | OAuth client the app uses to call your CPI tenant's OData / monitoring APIs. |
XSUAA service instance ( | Issues OAuth tokens that protect the |
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 |
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.
Extract the downloaded ZIP and open the extracted folder.
Select
package.json,package-lock.jsonand thesrcfolder (do not select the enclosing folder itself).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.jsonends up one level too deep and staging will fail with a "module not found" style error. Verify the new zip opens straight intopackage.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.
Upload the re-zipped file (
sap-cpi-mcp-server.zip) at File location.Keep Deploy with set to Manifest.
Browse to
manifest.ymlfrom the extracted folder for Manifest location.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.
Plan: application, Runtime Environment: Cloud Foundry, Space: dev.
Instance Name:
sap-cpi-mcp-server-xsuaa.
Figure 13 — New Instance or Subscription: Authorization and Trust Management Service, plan application.
On the Parameters step, paste the contents of
xs-security.jsonfrom the extracted folder — this defines the app'sxsappnameand its OAuth scopes (mcp.read,mcp.write,mcp.delete).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_SERVICEScredentials.
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.
Claude redirects to your SAP identity provider's login page.
Sign in with an account that has been assigned one of the
SapCpiMcprole collections from Step 15.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 | The re-zipped archive still has a wrapping folder (e.g., | Re-zip so |
App deploys but |
| Check the app's Logs tab; confirm |
Claude connector returns 401/403 after login | The signed-in user isn't in any | Confirm Service Bindings shows |
App is Running but CPI calls fail with 401 |
| 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-keyThe service key from the last command supplies the
clientid,clientsecretandtokenurlto 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
MyIntegrationPackageand tell me which are deployed.""Is the
OrderReplicationflow deployed and started? If not, why?"
Notes on the CPI OData API
Collection base:
.../api/v1MPLs:
/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 toolscancel_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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to actually cancel. | |
| messageGuid | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. | |
| packageId | Yes | Id of the package to copy. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional case-insensitive substring filter. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Single key value. | |
| raw | No | Return raw text (use for /$value endpoints). | |
| keys | No | Composite key object. | |
| entitySet | Yes | ||
| navigation | No | Navigation property to follow, e.g. 'Configurations'. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | POST | |
| params | No | ||
| confirm | No | Must be true to proceed. | |
| functionName | Yes |
TDQS
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.
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.
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.
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.
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.
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'.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| skip | No | ||
| expand | No | $expand comma list. | |
| filter | No | OData $filter expression (pre-quote string literals). | |
| select | No | $select comma list. | |
| orderby | No | ||
| entitySet | Yes | e.g. IntegrationPackages, KeystoreEntries, DataStores |
TDQS
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.
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.
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.
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.
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.
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')").
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Request body object (for POST/PUT/MERGE). | |
| path | Yes | Path relative to /api/v1, e.g. /NumberRanges or /Variables(...). | |
| method | Yes | ||
| confirm | No | Required true for DELETE. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Technical Id (no spaces). | |
| name | Yes | ||
| confirm | No | Must be true to proceed. | |
| packageId | Yes | ||
| description | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Technical Id (no spaces). | |
| name | Yes | ||
| confirm | No | Must be true to proceed. | |
| shortText | No | ||
| description | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| rotate | No | ||
| confirm | No | Must be true to proceed. | |
| maxValue | No | ||
| minValue | No | ||
| description | No | ||
| fieldLength | No | ||
| currentValue | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| packageId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | integrationFlow | |
| confirm | No | Must be true to proceed. | |
| version | No | active | |
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | default | |
| name | Yes | ||
| user | Yes | ||
| confirm | No | Must be true to proceed. | |
| password | Yes | ||
| description | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | active | |
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The deploy task id returned by deploy_artifact. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| type | No | default | |
| dataStoreName | Yes | ||
| integrationFlow | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| artifactId | Yes | ||
| includeErrorDetails | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| hoursBack | No |
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | active | |
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | active | |
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | active | |
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| packageId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| messageGuid | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| messageGuid | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| messageGuid | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| messageGuid | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| messageGuid | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| packageId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No |
TDQS
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.
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.
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.
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.
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.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | Version comment / note. | |
| confirm | No | Must be true to proceed. | |
| version | Yes | New version to save, e.g. '1.0.1'. | |
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| status | No | ||
| toTime | No | ISO 8601; LogEnd less than this. | |
| fromTime | No | ISO 8601; LogEnd greater than this. | |
| integrationFlowName | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| artifactId | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to proceed. | |
| version | No | active | |
| dataType | No | xsd:string | |
| artifactId | Yes | ||
| parameterKey | Yes | ||
| parameterValue | Yes |
TDQS
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.
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.
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.
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.
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.
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.
44 tool updates
v1.0.0- First observed
cancel_message_processing_log - First observed
copy_integration_package - First observed
cpi_api_catalog - First observed
cpi_get_entity - First observed
cpi_invoke_function - First observed
cpi_query - First observed
cpi_write - First observed
create_integration_flow - First observed
create_integration_package - First observed
create_number_range - First observed
delete_integration_package - First observed
deploy_artifact - First observed
deploy_user_credential - First observed
download_integration_flow - First observed
get_build_and_deploy_status - First observed
get_data_store_entries - First observed
get_deployed_artifact_status - First observed
get_failure_summary - First observed
get_flow_configurations - First observed
get_flow_resources - First observed
get_integration_flow - First observed
get_integration_package - First observed
get_message_store_entries - First observed
get_mpl_custom_header_properties - First observed
get_mpl_details - First observed
get_mpl_error_information - First observed
get_mpl_run_steps - First observed
list_data_stores - First observed
list_deployed_artifacts - First observed
list_integration_flows - First observed
list_integration_packages - First observed
list_jms_queues - First observed
list_keystore_entries - First observed
list_log_files - First observed
list_number_ranges - First observed
list_oauth2_client_credentials - First observed
list_partners - First observed
list_service_endpoints - First observed
list_user_credentials - First observed
list_variables - First observed
save_integration_flow_as_version - First observed
search_message_processing_logs - First observed
undeploy_artifact - First observed
update_flow_configuration
TDQS
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.
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.
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.
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
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
A managed runtime for custom API integrations. Manage lines, endpoints, keys, logs and DLQ via MCP.
- CeligoOAuthcom.celigo
Manage your Celigo integrator.io account: integrations, flows, connections, errors, and jobs.
- OneOAuthai.withone
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to manage SAP Cloud Integration (CPI) landscapes through natural language by exposing CPI OData APIs as MCP tools.11MIT
- AlicenseAqualityDmaintenanceConnects Claude to SAP Cloud Platform Integration (CPI) to diagnose failed messages, review iFlows, deploy artifacts, and check credentials directly from your conversation.136MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with SAP Cloud Integration (CPI) by exposing CPI APIs as MCP tools for inspecting metadata, runtime artifacts, message logs, and failed messages.3-
- FlicenseBqualityCmaintenanceEnables managing SAP Cloud Integration iFlows, packages, configurations, deployments, and runtime artifacts via natural language through the OData API.25-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/premsaidaggolu/sap-cpi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server