Skip to main content
Glama
chzkyy
by chzkyy

mcp-workato

An MCP (Model Context Protocol) server that exposes the Workato Platform API to Claude Desktop (and any other MCP-compatible client).

With this server connected, you can ask Claude things like:

  • "List my Workato recipes that are currently running."

  • "Show me the last 10 failed jobs for recipe 12345."

  • "Stop recipe 67890."

  • "Get the source code of custom connector 111."


Features

Exposes the following Workato operations as MCP tools:

Tool

Description

ping

Validate credentials / return current user

Recipes

list_recipes

List recipes (filter by folder, adapters, running status, date range, paginate)

search_recipes

Search recipes by name (case-insensitive, auto-paginating)

get_recipe

Get full recipe details via /api/recipes/:id (config + code + tags)

start_recipe

Start (enable) a recipe — PUT /api/recipes/:id/start

stop_recipe

Stop (disable) a recipe — PUT /api/recipes/:id/stop

force_run_recipe

Force-run a recipe on demand — POST /api/recipes/:id/force_run

delete_recipe

Delete a recipe permanently

reset_recipe_trigger

Reset trigger cursor (re-sync data) — polling/scheduled triggers only

Jobs

list_jobs

List jobs (filter by recipe/status/date range)

get_job

Get job details (input/output/error trace)

Connections

list_connections

List connections

get_connection

Get a connection by id

Folders

list_folders

List project folders

get_folder

Get a folder/project by id

Custom Connectors

list_custom_connectors

List custom connectors

get_custom_connector

Get custom connector metadata

get_custom_connector_code

Get a custom connector's source code

Account

list_account_properties

List account properties (named constants)


Related MCP server: Dataiku DSS MCP Server

Prerequisites

  • Node.js 18+ (tested on Node 22) — required for the built-in fetch API.

  • A Workato account with API access enabled.

  • Your Workato credentials — choose one of three authentication methods:

This server supports three authentication methods. The auth mode is auto-detected:

You provide

Detected mode

WORKATO_TOKEN (only)

api_token (default, simplest)

WORKATO_TOKEN + WORKATO_USER_ID

access_token (legacy)

WORKATO_CLIENT_ID + WORKATO_CLIENT_SECRET

OAuth2

WORKATO_AUTH_MODE=...

(forces a specific mode)


Method 1: API Token ⭐ (simplest — all you need is one token)

This is the simplest method and works with the single token shown on Workato's API Clients page (https://app.<pod>.workato.com/members/api/clients). The token is sent as Authorization: Bearer <token>.

  1. Sign in to Workato.

  2. Open API Clients: https://app.<your-pod>.workato.com/members/api/clients (e.g. for Singapore: https://app.sg.workato.com/members/api/clients).

  3. Copy the API Token shown on that page → WORKATO_TOKEN.

That's it — no user id, no client id/secret needed.

{
  "WORKATO_TOKEN": "YOUR_API_TOKEN",
  "WORKATO_POD": "sg"
}

💡 Make sure WORKATO_POD matches the subdomain of your Workato URL (app.sg.workato.comsg, app.eu.workato.comeu, etc.).


Method 2: API Client / OAuth2 (for automation / service accounts)

Uses Workato's OAuth2 client_credentials flow. You need a Client ID and Client Secret.

  1. Sign in to Workato.

  2. Go to Tools → API Clients (or App Console → API Clients on some plans).

  3. Click "Create API Client" (or "New Client").

  4. Copy the Client IDWORKATO_CLIENT_ID

  5. Copy the Client Secret (shown once!) → WORKATO_CLIENT_SECRET

💡 With this method, you do NOT need WORKATO_TOKEN or WORKATO_USER_ID. The server automatically exchanges client_id + client_secret for a Bearer access token.


Method 3: Access Token (legacy personal API token)

Uses the x-client-secret + x-user-id header scheme. You need a token and user ID.

  1. Sign in to Workato.

  2. Go to Account → API Tokens (or Settings → Account → API Tokens).

  3. Click an existing token, or Create Token.

  4. Copy the Access tokenWORKATO_TOKEN

  5. Copy the User ID (a number like 12345) → WORKATO_USER_ID

⚠️ User ID is a numeric id, NOT your email/username. Find it next to the token, or in Settings → Profile.


Data center / pod

All auth methods need to know your Workato data center. Look at the Workato URL:

URL

Pod

https://www.workato.com

us (default)

https://app.eu.workato.com

eu

https://app.sg.workato.com

sg

https://app.jp.workato.com

jp

https://app.au.workato.com

au

https://app.il.workato.com

il

https://app.kr.workato.com

kr

https://app.workatoapp.cn

cn

https://app.trial.workato.com

trial


Installation

git clone <this-repo> mcp_workato
cd mcp_workato
npm install
npm run build

This produces the compiled server at dist/index.js.


Configuration

Configuration is read from environment variables (or command-line --key value args). See .env.example.

Variable

Required

Default

Description

WORKATO_TOKEN

⚠️

API token (mode 1) / access token (mode 3). Required for modes 1 & 3

WORKATO_USER_ID

⚠️

Numeric Workato user id (mode 3 only)

WORKATO_CLIENT_ID

⚠️

OAuth2 client id (mode 2 only)

WORKATO_CLIENT_SECRET

⚠️

OAuth2 client secret (mode 2 only)

WORKATO_AUTH_MODE

(auto)

Force mode: api_token, access_token, or oauth2

WORKATO_POD

us

Data center: us, eu, sg, jp, au, il, kr, cn, trial

WORKATO_BASE_URL

(from pod)

Override the API base URL completely

WORKATO_TIMEOUT_MS

60000

HTTP request timeout

WORKATO_DEBUG

false

Log each API request to stderr


Connect to Claude Desktop

Edit your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

💡 On Windows, replace D:\\Projects\\Pribadi\\mcp_workato below with the absolute path to your project folder. Use double backslashes (\\) in JSON.

Add the mcp-workato server:

Simplest — API Token mode (Method 1):

{
  "mcpServers": {
    "workato": {
      "command": "node",
      "args": ["D:\\Projects\\Pribadi\\mcp_workato\\dist\\index.js"],
      "env": {
        "WORKATO_TOKEN": "your_api_token_here",
        "WORKATO_POD": "sg"
      }
    }
  }
}

Or, with OAuth2 (Method 2):

{
  "mcpServers": {
    "workato": {
      "command": "node",
      "args": ["D:\\Projects\\Pribadi\\mcp_workato\\dist\\index.js"],
      "env": {
        "WORKATO_CLIENT_ID": "your_client_id",
        "WORKATO_CLIENT_SECRET": "your_client_secret",
        "WORKATO_POD": "us"
      }
    }
  }
}

Then:

  1. Save the file.

  2. Quit Claude Desktop completely (system tray → Quit, not just close the window).

  3. Restart Claude Desktop.

  4. Start a new chat. You should see the workato server's tools available. Try asking: "Can you list my Workato recipes?"

Verify your credentials (ping test)

Before wiring the server into Claude, test that your Workato credentials work. There are three ways:

Option 1 — npm run ping (recommended, easiest)

# Simplest: API token only (Method 1)
npm run ping -- --token YOUR_TOKEN --pod sg

# Or set env vars first (Windows)
set WORKATO_TOKEN=YOUR_TOKEN
set WORKATO_POD=sg
npm run ping

# OAuth2 mode (Method 2)
npm run ping -- --client-id YOUR_ID --client-secret YOUR_SECRET

Expected output with valid credentials:

✅ MCP handshake OK: { name: 'mcp-workato', version: '1.0.0' }
⏳ Calling ping tool...
✅ Ping SUCCESS! Workato responded with:
{ "id": 12345, "name": "Your Name", ... }

If credentials are wrong you'll see:

❌ Ping FAILED:
Error: Workato API error: GET .../api/users/me -> 401 Unauthorized

Option 2 — MCP inspector (interactive UI)

npx @modelcontextprotocol/inspector node dist/index.js

This opens a web UI where you can connect, list tools, and call ping manually.

Option 3 — Through Claude Desktop

Once configured (see below), just ask Claude: "Can you ping Workato to check the connection?"


Run from CLI args (alternative to env vars)

Every setting can also be passed as a command-line argument:

# API token only (Method 1 - simplest)
node dist/index.js --token "YOUR_TOKEN" --pod sg --debug

# OAuth2 mode (Method 2)
node dist/index.js --client-id "YOUR_ID" --client-secret "YOUR_SECRET" --pod eu

Flag

Env var equivalent

--token

WORKATO_TOKEN

--user-id

WORKATO_USER_ID

--client-id

WORKATO_CLIENT_ID

--client-secret

WORKATO_CLIENT_SECRET

--auth-mode

WORKATO_AUTH_MODE

--pod

WORKATO_POD

--base-url

WORKATO_BASE_URL

--token-url

WORKATO_TOKEN_URL

--timeout-ms

WORKATO_TIMEOUT_MS

--debug

WORKATO_DEBUG


Development

npm run build     # compile TypeScript -> dist/
npm run lint      # type-check without emitting
npm start         # run the compiled server
npm run dev       # build + run in one step

Project structure

mcp_workato/
├── src/
│   ├── index.ts            # MCP server entry (stdio transport)
│   ├── tools.ts            # MCP tool definitions + zod schemas
│   ├── workato-client.ts   # Workato REST API client
│   └── config.ts           # env/arg config loader
├── dist/                   # compiled output (after build)
├── .env.example
├── package.json
└── tsconfig.json

How it works

Claude Desktop  ──stdio──►  mcp-workato (this server)  ──HTTPS──►  Workato Platform API
  • Claude Desktop spawns the server as a child process and talks to it over stdin/stdout using the JSON-RPC–based MCP protocol.

  • The server authenticates to Workato using one of three methods (see above): Authorization: Bearer <token> (api_token), the OAuth2 client_credentials flow, or the legacy x-client-secret + x-user-id headers.

  • Each MCP tool maps to one Workato API endpoint; results are returned as JSON text content that Claude can read and reason about.


Security notes

  • Your Workato token is powerful. Treat it like a password.

  • The token is only stored in your local claude_desktop_config.json (or env). It is not sent anywhere except Workato.

  • Set WORKATO_DEBUG=true only for troubleshooting — it logs request URLs (not secrets) to stderr.


Troubleshooting

"Missing required Workato configuration" → The required env vars for your chosen auth mode aren't set in the Claude Desktop config's env block. At minimum, provide WORKATO_TOKEN (for api_token mode), plus WORKATO_USER_ID (access_token mode), or WORKATO_CLIENT_ID + WORKATO_CLIENT_SECRET (oauth2 mode).

401 / "Unauthorized" from Workato → Token is wrong/expired, or the user id doesn't match the token. Regenerate the token in Workato.

Wrong data center / 404 → Set WORKATO_POD to match your Workato URL (e.g. eu, sg), or set WORKATO_BASE_URL directly.

Claude Desktop doesn't see the tools → Fully quit and restart Claude Desktop. Check the project path uses double backslashes on Windows. Check Claude's logs (%APPDATA%\Claude\logs).


License

MIT

Available Tools

19 tools
delete_recipeB

Delete a recipe permanently (DELETE /api/recipes/:id).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the critical fact that deletion is permanent, which alerts the agent to irretrievability. However, it does not mention required permissions, cascading effects on related resources (e.g., jobs/triggers), or side effects beyond the deletion itself.

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

Conciseness5/5

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

The description is a single, dense sentence that conveys the core action, resource, permanence, and endpoint. Every word earns its place with no redundancy or filler.

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

Completeness3/5

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

For a simple delete operation with one parameter, the description is adequate at a basic level. However, it omits practical details such as whether the deletion cascades to related recipes, what happens to in-flight jobs, expected response status, or authorization requirements. Since there is no output schema or annotations, the description should have provided more context for safe invocation.

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

Parameters2/5

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

Schema description coverage is 0%, and the description provides no additional meaning for the 'id' parameter beyond what the schema already conveys (an integer identifier). The parameter is straightforward, but the description does not compensate for the missing schema documentation, leaving any format constraints or context undocumented.

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

Purpose5/5

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

The description explicitly states the action ('Delete'), the resource ('a recipe'), and the permanence ('permanently'), also specifying the HTTP endpoint. This clearly distinguishes it from sibling tools like get_recipe, start_recipe, or list_recipes.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as stop_recipe or reset_recipe_trigger. The description does not mention conditions, prerequisites, or scenarios where deletion is appropriate, leaving the agent to infer usage.

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

force_run_recipeC

Force-run a recipe on demand (POST /api/recipes/:recipe_id/force_run). Rate limit: 1 request per second.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It mentions a rate limit of 1 request per second, which is useful, but it does not disclose whether force_run is destructive, whether it interrupts an existing run, or what side effects it may have. This is a significant gap for an operation named 'force_run'.

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

Conciseness4/5

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

The description is concise and to the point, with the endpoint reference and rate limit in a single sentence. No filler words appear, though it could have expanded on behavior without becoming verbose.

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

Completeness2/5

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

Given the simplicity (one parameter, no output schema) the description is minimal but missing critical context: return value, error behavior, and the difference from start_recipe. The rate limit is noted but not the nature of the operation, so an agent lacks enough context to safely invoke this tool.

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

Parameters2/5

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

The input schema contains a single 'id' parameter with no description, and the schema description coverage is 0%. The description does not explain what 'id' refers to (though the endpoint implies recipe_id) or provide any additional meaning. Since the description does not compensate for the schema's lack of documentation, the semantic coverage is poor.

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

Purpose4/5

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

The description names a specific action ('Force-run') on a clear resource ('a recipe') and includes the endpoint path. However, it does not differentiate itself from the sibling start_recipe, so an agent may not know when force-run is appropriate instead of a normal start.

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

Usage Guidelines2/5

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

No guidance is given on when to use force_run versus start_recipe or other recipe-related tools. The only usage hint is 'on demand', which is vague and does not explain prerequisites or conditions that would warrant forcing a run.

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

get_connectionA

Get details of a single connection by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining side effects. 'Get details' clearly signals a read-only operation, but no other behavior is disclosed (e.g., whether the call may fail if the ID doesn't exist, or if any remote fetch is involved). The description is not misleading, but it provides minimal behavioral context beyond the obvious.

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

Conciseness5/5

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

The description is one concise sentence that is front-loaded with the action and subject. Every word earns its place; there is no fluff or redundancy. It is optimally sized for the tool's simplicity.

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

Completeness3/5

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

For a simple read tool with one parameter and no output schema, the description gives the caller the essential information: what it does and the key parameter. However, it does not explicitly state what is returned ('details' is vague) or error behavior if the ID is not found. This is adequate but not comprehensive, especially given the absence of an output schema.

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

Parameters3/5

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

The schema has one required parameter 'id' with no description coverage. The description says 'by id', which clarifies that the parameter refers to the connection identifier, adding meaning beyond the raw schema. However, it does not elaborate on the source or format of the ID, or what happens for invalid IDs. Minimal but sufficient for this single-parameter tool.

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

Purpose4/5

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

The description clearly states a specific operation: 'Get details' with resource 'single connection by id'. This distinguishes it from list_connections, which would return multiple. However, it does not explicitly contrast with sibling tools, but the resource and single entity modifier make the purpose unambiguous.

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

Usage Guidelines3/5

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

The instruction 'single connection by id' implies use when you have a specific connection ID and need its details, versus list_connections for all connections. This is an implied usage context, but no explicit alternatives or exclusions are given. It is adequate but not as strong as naming the alternative.

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

get_custom_connectorA

Get metadata of a custom connector by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It clearly indicates a read operation ('Get metadata'), implying no destructive side effects. However, it does not disclose potential error behaviors, permission requirements, or the structure of the returned metadata, which would be useful given the absence of an output schema.

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

Conciseness5/5

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

A single, concise sentence that directly states the tool's function with no filler. The key scoping ('by id') is front-loaded, making the purpose immediately clear.

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

Completeness3/5

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

For a simple parameterized get operation, the description covers the core purpose. However, without an output schema or annotations, the agent has no guidance on what the returned metadata contains or what happens if the id does not exist. This is a moderate gap for a tool that must be invoked autonomously.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must explain the 'id' parameter. It does so by stating the operation is 'by id', which tells the agent that the parameter identifies the target connector. However, it provides no additional context such as where to find the ID or what values are valid, beyond the integer type already in the schema.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('metadata of a custom connector') with a clear scope ('by id'). It unambiguously distinguishes this tool from siblings like list_custom_connectors and get_custom_connector_code, which are related but different operations.

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

Usage Guidelines3/5

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

The description implies that this tool should be used when fetching metadata for a single custom connector by its identifier, but it does not explicitly state when to choose this over get_custom_connector_code or list_custom_connectors. The usage context is clear enough, but no alternatives 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_custom_connector_codeB

Get the source code (block DSL) of a custom connector by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It indicates a read operation but doesn't mention any authentication requirements, potential size of the returned code, error conditions, or whether the source code is always available. The description is minimal and doesn't go beyond the literal statement.

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

Conciseness5/5

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

The description is a single, direct sentence that immediately states the purpose and the key detail (block DSL). There is no filler, and the essential information is front-loaded.

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

Completeness4/5

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

For a tool with a single simple integer parameter and no output schema, the description provides the essential information: it retrieves the source code of a custom connector by id. It names the return content type (block DSL). It lacks notes on error behavior or use cases, but given the simplicity of the operation, the description is mostly complete.

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

Parameters3/5

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

The schema has a single integer parameter 'id', and the description says 'by id', which adds minimal meaning by tying the id to the custom connector. However, with 0% schema description coverage, the description could have clarified what the id refers to (e.g., the custom connector's unique identifier) and any constraints like must be positive. It only states the obvious.

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

Purpose5/5

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

The description clearly states the action ('Get the source code'), the specific resource ('custom connector'), and the key qualifier ('block DSL', 'by id'). This distinguishes it from the sibling tool get_custom_connector, which presumably retrieves the full connector object rather than just the code.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_custom_connector, nor does it mention any prerequisites or excluded cases. There is no explicit routing to a sibling or indication of the distinct use case beyond the immediate action.

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

get_folderB

Get details of a folder/project by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It states a read operation but omits any details about return format, potential errors, or access requirements. For a tool with no output schema, this leaves a significant transparency gap.

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

Conciseness4/5

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

The description is a single, efficient sentence with no fluff. It is appropriately concise for such a simple tool, though it could be slightly more informative without becoming verbose.

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

Completeness2/5

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

Given that there is no output schema, the description should explain what 'details' will be returned. It does not mention any response fields, pagination, or handling of missing ids. For an agent to correctly interpret the result, this is incomplete.

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

Parameters3/5

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

The single required parameter 'id' is referenced in the description ('by id'), clarifying its role. However, the schema provides no description for the parameter (0% coverage), and the description does not elaborate on what type of id or how it should be formatted. It adds minimal meaning beyond the schema's type declaration.

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

Purpose5/5

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

The description clearly states the action ('Get details') and the resource ('folder/project by id'), making it distinct from list_folders (which lists all folders). It specifies the key identifier needed to retrieve a single item.

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

Usage Guidelines3/5

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

The description implies usage when you have a specific folder/project id, but it does not explicitly mention when to prefer get_folder over list_folders or other sibling tools. There is no direct exclusion or alternative guidance, leaving the context to be inferred.

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

get_jobA

Get details of a single job by id, including its input/output and error trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.6/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It does disclose that the tool returns details including input/output and error trace, suggesting a read-only operation. It does not mention side effects, authentication, or error behavior, but for a simple single-job getter, the provided behavioral indicators are reasonable. A 3 reflects the partial disclosure.

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

Conciseness5/5

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

The description is a single sentence that is completely front-loaded, stating the verb and object first, then adding the key extra details. There is no filler or redundant content; every word contributes to the meaning.

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

Completeness3/5

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

Given there is no output schema, the description must explain the return value. It mentions 'input/output and error trace', which gives a partial picture, but it does not enumerate other job attributes (e.g., status, timestamps, execution time). For a get-job tool, a bit more on what 'details' includes would help. It is adequate but not fully complete.

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

Parameters2/5

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

The schema has only one parameter 'id' with zero description coverage. The description merely says 'by id', which essentially restates the parameter name without adding meaningful semantics. It does not describe the format, range, or whether the ID is numeric (integer). With low schema coverage, the description fails to compensate, offering minimal value.

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

Purpose5/5

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

Description uses a specific verb ('Get'), a clear resource ('a single job'), and focuses on the scope ('by id'), while mentioning what is included (input/output and error trace). This clearly distinguishes it from sibling tools like list_jobs, which lists multiple jobs. The purpose is unmistakable.

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

Usage Guidelines3/5

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

The description clearly implies when to use the tool: when you have a job ID and need details about a single job. However, it does not explicitly state when not to use it or mention alternatives (e.g., list_jobs for listing) and provides no exclusions. This leaves the agent to infer the boundary partially.

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

get_recipeA

Get full details of a single recipe by id (GET /api/recipes/:id). Returns name, description, code (recipe DSL), config (connections), trigger, running status, job counts, tags, version info, etc.

Pass includes=['tags'] to also retrieve the recipe's tag handles.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecipe numeric id, e.g. 12345
includesNoAdditional fields to include. Accepted value: ['tags']

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden. It reveals the tool's behavior by listing the returned fields (name, description, code, config, trigger, status, job counts, tags, version info) and explains the includes parameter's effect. It does not cover error handling or auth, but for a read-only GET this is reasonable.

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

Conciseness5/5

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

Two sentences, dense with useful information. The main purpose is front-loaded, and the optional parameter tip is separated clearly. No wasted words.

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

Completeness4/5

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

For a simple single-resource fetch, the description is nearly complete: it states the resource identifier, the expected output fields, and the optional include behavior. Missing details like error cases or authentication are minor for this simple GET tool. The returned field list partially compensates for the absence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The schema already explains both id and includes, and the description reinforces the includes usage without adding significantly new meaning beyond what the schema provides.

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

Purpose5/5

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

The description states a specific verb ('Get full details') and a specific resource ('a single recipe by id'), and explicitly names the endpoint. It distinguishes itself from sibling list tools like list_recipes by emphasizing 'single recipe', so an agent can clearly understand its scope.

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

Usage Guidelines4/5

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

The description provides clear context: use this to retrieve full details for one recipe by id, versus listing or searching. It does not explicitly name alternatives or exclusion conditions, but the 'single recipe' phrasing and the inclusion of the includes parameter give enough guidance for correct selection.

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

list_account_propertiesA

List account properties (named constants) defined in the Workato account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states only that the tool lists properties but does not mention pagination, return format, ordering, rate limits, or any side effects (though likely read-only). Minimal behavioral context beyond the obvious 'list' action.

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

Conciseness5/5

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

The description is a single, clear sentence with no filler. The parenthetical clarification adds value without bloating the text, and the core verb-resource pair is front-loaded.

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

Completeness4/5

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

For a parameterless list operation, the description is nearly complete: it names the resource and its scope. However, without an output schema it does not describe the response structure or whether the result is an array, which would be useful but not critical for invocation.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so there is no parameter information missing. The description correctly implies no inputs are needed, matching the empty schema.

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

Purpose5/5

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

The description states a specific verb ('List'), a distinct resource ('account properties'), clarifies what they are ('named constants'), and scopes them to the Workato account. This clearly differentiates from sibling list tools like list_recipes or list_jobs.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or alternative tools for similar purposes, leaving the agent to infer usage solely from the tool name.

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

list_connectionsC

List connections configured in the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

TDQS

C2.4/5.0
Behavior2/5

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

There are no annotations provided, so the description must carry the full burden of disclosing behavior. The description just says 'List' without revealing that the operation is read-only, that it returns a paginated result, or that it does not modify state. It adds no information beyond the obvious list intent.

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

Conciseness3/5

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

The description is a single, short sentence which is concise, but it omits essential details about pagination and parameters. It is not structured to front-load the most useful constraints or intent behind the list operation. The brevity is a trade-off with completeness.

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

Completeness1/5

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

This is a list tool with two parameters and no output schema or annotations. The description provides only a minimal statement, leaving the agent with no understanding of what a 'connection' consists of, how pagination works, or what the return structure is. This is heavily insufficient for correct usage.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the two parameters 'page' and 'per_page' at all. An agent has no idea that 'per_page' controls page size or that 'page' starts at 1. The description fails to compensate for the lack of schema details.

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

Purpose4/5

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

The description states a clear action ('list') and a clear resource ('connections'), and the 'configured in the account' clarifies scope. It is distinct from get_connection (which likely retrieves a single connection) and from list_custom_connectors (which lists a different resource). However, it does not elaborate on what counts as a connection or which account is meant.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus list_custom_connectors or get_connection. It does not mention any typical scenarios, exclusions, or criteria that would help an agent decide between the siblings.

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

list_custom_connectorsC

List custom connectors in the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

TDQS

C2.3/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'List', implying a read operation, but does not mention pagination behavior, output format, permissions, or any side effects. No behavioral traits beyond the literal verb are disclosed.

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

Conciseness3/5

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

The description is a single short sentence with no redundancy, but it is under-specified. While concise, it omits essential context, and the simplicity does not compensate for lack of substance.

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

Completeness2/5

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

For a list tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It lacks pagination semantics, return value details, and any usage context needed for correct invocation.

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

Parameters1/5

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

The schema description coverage is 0%, and the description does not mention the 'page' or 'per_page' parameters at all. An agent has no way to know their meaning, defaults, or allowed ranges from the description, and the schema itself provides no descriptions.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('custom connectors') with a scope ('in the account'), clearly conveying the tool's basic function. However, it does not explicitly differentiate from sibling tools like get_custom_connector, relying instead on the name distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_custom_connector or search_recipes. The description offers a bare action statement with no context, prerequisites, or exclusions.

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

list_foldersC

List project folders in the account. Folders group recipes and connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior, but it only states the basic listing action. It does not mention pagination semantics, response shape, whether folders include hierarchy, or any permissions required. The agent is left without crucial operational context.

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

Conciseness5/5

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

Two short sentences, no fluff, and the core action is front-loaded. The second sentence adds useful domain context. From a pure conciseness and structure standpoint, it is excellent.

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

Completeness2/5

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

For a simple list tool, the description is too thin given no annotations and no output schema. It does not explain pagination parameters, return format, or relationship to get_folder. An agent would struggle to know how to use pagination or interpret results without additional assumptions.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not mention the parameters page or per_page at all. Since the schema itself provides no descriptions, the complete burden falls on the description, which fails to explain the meaning or expected values of these parameters.

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

Purpose5/5

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

The description uses a specific verb ('List') and a clear resource ('project folders in the account'), and adds context by explaining that folders group recipes and connections. This unambiguously distinguishes it from sibling tools like list_recipes or list_connections.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as get_folder or list_recipes. There is no mention of scenarios, prerequisites, or exclusion criteria, leaving the agent to infer usage from the name alone.

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

list_jobsC

List jobs, optionally filtered by recipe_id, status, or date range. Useful for monitoring recipe execution history.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
statusNo
flow_idNo
end_dateNo
per_pageNo
recipe_idNo
start_dateNoISO 8601 datetime, e.g. 2024-01-01T00:00:00Z

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It only mentions a listing operation and filters, but doesn't disclose pagination behavior (page/per_page), how filters combine, or any response format. For a read-like tool with zero annotation coverage, this is insufficiently transparent.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no redundant words. It efficiently communicates the action, filters, and a use case, though it omits some critical details that would make it more complete.

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

Completeness2/5

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

Given 7 parameters, no output schema, and no annotations, the description only scratches the surface. It fails to clarify pagination, flow_id semantics, output shape, or how this tool relates to get_job. The agent is left with too many open questions to invoke it reliably in unfamiliar contexts.

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

Parameters2/5

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

Schema description coverage is only 14%, so the description must compensate for undocumented parameters. It mentions recipe_id, status, and date range but omits flow_id, page, and per_page entirely. Since pagination and flow_id are left unexplained and the coverage gap is large, this scores low.

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

Purpose4/5

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

The description clearly states a specific verb (List) and resource (jobs), and mentions optional filters, making the core action unambiguous. However, it does not explicitly differentiate this list tool from its sibling get_job (singular), so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'Useful for monitoring recipe execution history' gives a clear context for when this tool is appropriate, but it provides no exclusions or alternatives. There is no guidance on when to choose list_jobs over get_job or other list tools, leaving the usage guidance only implied.

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

list_recipesA

List recipes belonging to the authenticated user (GET /api/recipes). Supports filtering by folder, adapters (connectors), running status, and date range. Results are paginated (default: per_page=100, max 100). Set exclude_code=true to speed up listing for large accounts.

Note: The Workato API does NOT support server-side name search. To find recipes by name, use the search_recipes tool instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
orderNoSort order (default: 'default')
runningNoIf true, return only running recipes
per_pageNo
since_idNoReturn recipes with IDs lower than this value
folder_idNoFolder/project id to list recipes from
exclude_codeNoExclude recipe code from response (faster for large lists)
stopped_afterNoISO 8601 datetime — only recipes stopped after this
updated_afterNoISO 8601 datetime — only recipes updated after this
with_subfoldersNoInclude recipes from subfolders (default: false)
adapter_names_allNoComma-separated adapter names — recipes must use ALL of them
adapter_names_anyNoComma-separated adapter names — recipes must use at least ONE

TDQS

A4.7/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden. It discloses pagination defaults (per_page=100, max 100), the performance impact of exclude_code, and the API's lack of name-search support. It does not mention rate limits or error behavior, but the disclosed details are substantive and useful.

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

Conciseness5/5

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

Two clearly separated paragraphs: the first describes the tool's core behavior and key options, the second provides an important routing note. Every sentence adds information without redundancy or padding.

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

Completeness5/5

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

For a complex, 12-parameter tool with no output schema, the description covers essential invocation details: scope, filters, pagination, performance optimization, and when to prefer a sibling. Nothing critical that an agent needs to call this correctly is missing.

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

Parameters4/5

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

With 83% schema coverage, the description adds value beyond the schema by summarizing the filter dimensions (folder, adapters, running status, date range) and highlighting the performance tradeoff of exclude_code. It also states default pagination values, which the schema does not fully convey.

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

Purpose5/5

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

The description clearly states the tool lists recipes for the authenticated user via a specific endpoint, and explicitly contrasts it with search_recipes for name-based lookup. This distinguishes it from siblings and leaves no ambiguity about its function.

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

Usage Guidelines5/5

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

Explicitly instructs when to use search_recipes instead (when searching by name) because the API does not support server-side name search. This provides clear routing guidance relative to an alternative tool.

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

pingA

Validate Workato credentials and return the current user. Use this first to confirm the connection works.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full behavioral burden. It discloses the operation and return value, but lacks details on failure behavior or side effects. For a read-only ping, this is an acceptable but not rich description.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary purpose and followed by a clear usage directive. Every word earns its place with no redundancy.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, the description adequately explains what it does and when to use it. Minor gap: it doesn't specify response format or error behavior, but this is not critical for a simple connectivity check.

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

Parameters4/5

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

The tool has zero parameters, and the empty schema fully documents that. The description adds no parameter details, but the baseline score of 4 is appropriate for zero-parameter tools.

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

Purpose5/5

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

The description states 'Validate Workato credentials and return the current user,' which is a specific verb and resource. It clearly distinguishes this tool from siblings that manage recipes, jobs, and connections.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this first to confirm the connection works,' providing clear when-to-use context. It does not mention alternatives, but none are relevant for a connectivity check.

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

reset_recipe_triggerA

Reset a recipe trigger cursor (POST /api/recipes/:recipe_id/reset_trigger). Use to re-sync data from the source. Only works with polling and scheduled triggers. The recipe must handle duplicate records.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full disclosure burden. It reveals the side effect of duplicate records and specifies the trigger type limitation, going beyond a generic 'reset' statement. It does not cover auth or rate limits, but the core behavior is transparent.

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

Conciseness4/5

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

Three sentences cover the task, usage, constraints, and side-effect warning. It is concise without sacrificing essential information, though the lack of parameter detail keeps it from being perfectly efficient.

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

Completeness4/5

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

For a single-parameter tool with no output schema, the description covers what it does, when to use it, its limitations, and a critical side effect. It lacks explicit info about the id parameter and the response format, but these are minor gaps given the tool's simplicity.

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

Parameters2/5

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

The schema has 0% description coverage and the tool description does not mention the 'id' parameter or what it represents. An agent must infer that 'id' refers to a recipe ID, but this is not explicitly stated in either the schema or description, creating a gap for correct invocation.

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

Purpose5/5

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

The description clearly states the action ('Reset a recipe trigger cursor'), the resource ('recipe trigger'), and the endpoint. It also explains the purpose ('re-sync data from the source'), which distinguishes this from other recipe operations like starting or stopping triggers.

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

Usage Guidelines4/5

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

It explicitly states when to use it ('to re-sync data from the source') and includes critical constraints ('Only works with polling and scheduled triggers'). It doesn't name specific alternative tools, but the condition of usage is clear enough to avoid misuse.

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

search_recipesA

Search recipes by name (case-insensitive). Since the Workato API has no server-side text search, this tool auto-paginates through all recipes and filters client-side by name.

Example: search_recipes({ name: 'PRDI Recipe 04 - PRDI AR DOKU Transactions' })

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRecipe name (or part of it) to search for. Case-insensitive. Example: 'PRDI AR DOKU' matches 'PRDI Recipe 04 - PRDI AR DOKU Transactions (Sync AR Receipt, ...)'
runningNoOptional: limit to running recipes only
folder_idNoOptional: limit search to a specific folder
with_subfoldersNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses that the tool auto-paginates through all recipes and filters client-side, which is a critical implementation detail. It also gives a concrete example. However, it does not describe the return format, potential performance implications, or any rate limits, but the core non-obvious behavior is clearly revealed.

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

Conciseness5/5

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

The description is two sentences plus an example, with no wasted words. The key behavior (client-side filtering) is stated up front, and the example is substantive and aids understanding. Every sentence earns its place.

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

Completeness4/5

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

For a search tool without an output schema, the description sufficiently explains the main behavior and provides a realistic example. It does not detail the return shape or edge cases, but given four parameters and no nested objects, the description is reasonably complete. The absence of an output schema is slightly mitigated by the descriptive example.

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

Parameters4/5

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

Schema description coverage is 75%, and the description adds extra meaning for the required 'name' parameter by giving a full example and emphasizing case-insensitivity. The other parameters already have descriptive schema text. The description enriches the primary parameter without needing to repeat all others.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Search recipes by name (case-insensitive)'. It names the specific resource (recipes) and the operation (search), with an explicit behavioral note about case-insensitivity. This distinguishes it from generic list/get operations among siblings.

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

Usage Guidelines3/5

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

The description explains why the tool exists (no server-side search, so it auto-paginates and filters client-side), which implies when it should be used. However, it does not explicitly state when to prefer this over list_recipes or other siblings, nor does it mention exclusions. Usage context is implied but not made explicit.

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

start_recipeC

Start (enable) a recipe (PUT /api/recipes/:id/start).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must carry behavioral disclosure. It only states 'Start (enable)' and the HTTP method, but does not explain what enabling a recipe entails, side effects, permissions, or whether it is reversible. This is a significant gap for an action-oriented tool.

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

Conciseness3/5

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

The description is a single concise sentence with no redundancy, but it provides minimal information. While it is not bloated, it borders on under-specification rather than being a well-structured, informative summary.

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

Completeness2/5

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

With no output schema, no annotations, and no parameter explanation, the description omits crucial context such as what happens after starting a recipe, expected return values, or error conditions. Even for a simple action, the agent lacks enough information to confidently invoke the tool.

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

Parameters2/5

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

The input schema has a single 'id' parameter with 0% schema description coverage, so the description must compensate. The placeholder ':id' in the HTTP endpoint implies it is the recipe identifier, but the description does not explicitly define the parameter's meaning or format, leaving the agent to infer it from the tool name.

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

Purpose4/5

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

The description uses a specific verb 'Start' and resource 'recipe', and adds an 'enable' clarification plus the HTTP endpoint. This makes the tool's action clear, though it does not explicitly differentiate it from sibling tools like force_run_recipe or stop_recipe.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as force_run_recipe or stop_recipe. The description only states the action without any context about prerequisites or conditions that would select this tool.

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

stop_recipeA

Stop (disable) a recipe (PUT /api/recipes/:id/stop).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses that the tool disables a recipe, but omits whether the operation is reversible, idempotent, whether it generates immediately, or any permission requirements. While not contradictory, the minimal behavioral context is only marginally adequate.

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

Conciseness5/5

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

The description is a single sentence that includes both the action and the endpoint. No filler or redundant explanation; it is front-loaded and efficient.

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

Completeness3/5

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

The tool lacks an output schema and the description does not mention the response format, possible errors, or the expected outcome of the stop operation. For a simple state-changing action, it is minimally viable, but it leaves the agent guessing about what happens after invocation.

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

Parameters3/5

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

The schema has one integer parameter 'id' with 0% description coverage. The description, via the endpoint :id, implies it is the recipe identifier, but it does not explicitly state a human-readable definition. Since it is a single parameter, the meaning is easily inferable, but the description doesn't add explicit semantic value.

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

Purpose5/5

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

The description states a specific verb ('Stop') and resource ('recipe'), and includes the exact endpoint (PUT /api/recipes/:id/stop), which is unambiguous. The verb clearly distinguishes it from siblings like start_recipe and force_run_recipe.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor mention of prerequisites such as the recipe needing to be started. It does not explicitly state that start_recipe would reverse the stop, or that force_run_recipe might override a stopped state.

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.

  1. 19 tool updatesv1.0.0
    • First observeddelete_recipe
    • First observedforce_run_recipe
    • First observedget_connection
    • First observedget_custom_connector
    • First observedget_custom_connector_code
    • First observedget_folder
    • First observedget_job
    • First observedget_recipe
    • First observedlist_account_properties
    • First observedlist_connections
    • First observedlist_custom_connectors
    • First observedlist_folders
    • First observedlist_jobs
    • First observedlist_recipes
    • First observedping
    • First observedreset_recipe_trigger
    • First observedsearch_recipes
    • First observedstart_recipe
    • First observedstop_recipe

TDQS

B3.4/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a clear resource-action pairing: recipes have list/search/get/start/stop/force_run/delete/reset_trigger, while jobs, connections, folders, and custom connectors each have their own list/get tools. The only potentially overlapping tools, list_recipes and search_recipes, are explicitly differentiated by their descriptions.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern: list_*, get_*, start_recipe, stop_recipe, force_run_recipe, delete_recipe, reset_recipe_trigger. The only non-verb_noun name is 'ping', which is a standard exception for connectivity checks.

Tool Count4/5

With 19 tools, the set is slightly heavy but each tool serves a distinct purpose within the Workato domain (recipe lifecycle, jobs, connections, folders, custom connectors, account properties). The count is justified for the API surface covered, though it edges past the typical 'well-scoped' 3-15 range.

Completeness3/5

The tool set offers comprehensive read, list, and lifecycle operations for recipes (start, stop, force-run, delete, reset trigger) and read operations for other resources. However, recipe creation and update are missing, which are significant gaps for fully managing recipes via the server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers