Workato Dev MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WORKATO_TOKEN | Yes | Your Workato API client token (e.g., wrkaus-...). Required for most operations. | |
| WORKATO_API_BASE | No | Base URL for the Workato API. Defaults to US data center: https://app.workato.com/api. For EU, use https://app.eu.workato.com/api. | |
| WORKATO_DATA_TABLES_BASE | No | Base URL for Workato Data Tables API. Defaults to US data center. For EU, use https://app.eu.workato.com/api (or similar). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Return the authenticated user and workspace for the current token. |
| list_connectionsA | List Workato connections (id, provider, name, connected) for wiring recipe config. |
| list_foldersA | List folders, optionally under a parent folder id. |
| list_projectsA | List Workato projects (id, name, root folder). |
| list_recipesB | List recipes with optional filters: folder_id, running (bool), name_contains (substring). |
| get_recipeA | Fetch a recipe. With include_code=true returns the parsed code tree + config (source of truth for editing). |
| get_recipe_stepsA | Return a compact step tree (keyword/provider/name/as) for quick structure inspection. |
| create_recipeC | Create a recipe. code and config are JSON strings (the code tree and connection config array). folder_id is a string. |
| update_recipeA | Update a recipe's code/name/config (code & config as JSON strings). Stop a running recipe first. |
| start_recipeA | Start (activate) a recipe. Start-time validation errors surface here — read them to debug. |
| stop_recipeA | Stop (deactivate) a recipe. Required before updating a running recipe's code. |
| copy_recipeA | Server-side copy of a recipe into a folder (preserves step |
| delete_recipeA | Permanently delete a recipe. Cannot be undone — confirm with the user first. |
| list_jobsB | List recent jobs for a recipe (id, status, started_at, title). |
| get_jobA | Fetch one job's per-step input/output/error — see what each adapter call actually sent/got, and catch errors a 'succeeded' job hid in a catch block. |
| list_recipe_versionsB | List a recipe's version history (version_no, author, comment) — for tracking/rollback awareness. |
| create_folderB | Create a folder, optionally under a parent folder id. |
| get_propertiesA | Get account properties whose names start with a prefix (config/feature flags). |
| upsert_propertiesB | Create/update account properties. properties_json is a JSON object string {name: value}. |
| list_lookup_tablesB | List lookup tables (id, name, schema). |
| query_lookup_tableA | Read rows from a lookup table by id (e.g. to inspect captured query logs). |
| add_lookup_table_rowA | Append a row to a lookup table. entry_json is a JSON object string {column: value}. Table must have a defined schema. Useful for writing capture/log rows. |
| list_data_tablesA | List Workato Data Tables (id, name). |
| list_api_collectionsA | List API Platform collections — each is an API product that can be exposed as a Workato MCP server. |
| list_api_endpointsA | List an API collection's endpoints — the TOOLS an API-Platform-backed Workato MCP server exposes. Shows each tool's method, path, active flag, and backing recipe (flow_id). Run list_api_collections first. |
| list_api_clientsA | List API clients — the credentialed consumers that call API-Platform endpoints. |
| list_api_access_profilesA | List API access profiles — scope/auth bindings between API clients and collections. |
| enable_api_endpointA | Activate an API-Platform endpoint — turns an inactive tool ON in its MCP-exposed collection. PREREQUISITE: start the backing recipe (flow_id) first, or enable fails. This mutates a LIVE MCP server's tool surface — confirm the endpoint id and intent with the user before calling. |
| disable_api_endpointA | Deactivate an API-Platform endpoint — turns a tool OFF so MCP clients can no longer call it. Mutates a live MCP server's tool surface — confirm with the user first. |
| create_api_collectionA | Create an API collection (which can then be exposed as a Workato MCP server). Needs name + project_id. Note: endpoints themselves are added in the UI — there is no create-endpoint Developer API. |
| log_learningA | Append a newly discovered Workato recipe/API gotcha to learnings.md (the team intake queue). CALL THIS AUTOMATICALLY when you hit a non-obvious behavior NOT already in workato_recipe_tips — a schema quirk, an invalid formula/operand, a datapill that won't bind, an HTTP body that strips pills, an unexpected job result. Then tell the user to commit learnings.md so the team benefits. |
| get_learningsA | Read the learnings.md intake log — accumulated team discoveries not yet promoted into workato_recipe_tips. Optionally filter to one category. Consult this alongside workato_recipe_tips before building a recipe. |
| workato_recipe_tipsA | Hard-won gotchas for authoring Workato recipes via the Developer API (the curated tier). Read before building/editing. New discoveries go to log_learning first. |
| list_connector_actionsA | List a connector's actions + triggers (name + title). applications is a comma-separated list of connector ids (e.g. 'slack' or 'slack,jira,google_sheets'). Use to discover action/trigger names when wiring recipe steps. |
| list_folder_assetsA | List the assets Workato would auto-generate into an export manifest for a folder (recipes, connections, lookup tables, etc.). Useful before export_package to see what's in scope. |
| check_privilegesA | Probe (read-only) which API-client privileges the current token has: workspace details, folders, recipes, connections, and — if folder_id is given — RLCM folder-assets. Reports GRANTED/DENIED per privilege. Mutating export/import/download privileges can't be safely probed (noted in the result). |
| validate_packageA | LOCAL lint of a package DIRECTORY before deploy (NO API call). Runs the ported recipe-lint rule engine on each *.recipe.json (see lint_recipe for the rule set), plus package-level checks: all *.json parse; project.json at root (warn); every config[].account_id.zip_name resolves to a file on disk. Returns {package, passed, errors, warnings, ok, diagnostics[]} where each diagnostic is {rule_id, tier, level, message, file}. |
| lint_recipeA | LOCAL static-analysis of a SINGLE recipe (no token needed for the path form). Provide EITHER path (a local *.recipe.json) OR recipe_id (pulled live via the Developer API). A pure-Python port of Workato Labs recipe-lint's cheap Tier 0/1 rules + datapill checks: top-level structure (CODE_WRAPPED_IN_RECIPE, CODE_NOT_OBJECT, MISSING_TOP_LEVEL_KEYS), per-step keyword/number/uuid presence, TRIGGER_NUMBER_ZERO, sequential STEP_NUMBERING, AS_UNIQUE/UUID_UNIQUE, CONFIG_PROVIDER_MATCH (missing adapter config), NO_ELSIF, DP_VALID_JSON, DP_LINE_RESOLVES, and the update_variables raw-form footgun. Returns {source, passed, errors, warnings, diagnostics[]}. |
| export_packageA | RLCM EXPORT (Workato -> local): build a throwaway manifest for a folder, build+poll the package, download the zip to out_dir+'.zip', and unzip into out_dir. Returns {package_id, status, out_dir, files}. WARNING: OVERWRITES out_dir (and the .zip). Confirm with the user before calling. with_data/with_tests include data + test cases. |
| deploy_packageA | RLCM IMPORT (local -> Workato): zip the CONTENTS of dir (skipping dotfiles) and import into folder_id, then poll. restart=true restarts running recipes on import. home_folder_id sets folder_id_for_home_assets — needed when importing into a Projects workspace whose Home assets folder is a project (else import errors on home/root assets). Returns {package_id, status, operation_type, recipe_status}. WARNING: MUTATES the live workspace. Confirm with the user first; use dry_run=true to preview without importing. |
| query_data_tableA | Query rows in a Workato Data Table (its record API, on a separate host). table_id is the table UUID from list_data_tables. Optional where_json is a JSON filter like {"Status":{"$eq":"Approved"}} (operators: $eq,$ne,$gt,$gte,$lt,$lte,$in,$starts_with,$and); select_json is a JSON array of field names; limit defaults to 20; order is a field name. Returns rows as name->value dicts including $record_id. |
| add_data_table_rowA | Add a record to a Data Table (record API). table_id is the UUID from list_data_tables; document_json is a JSON object {field_name: value} (use a "$field-uuid" key for a field whose name is awkward). MUTATES data — confirm with the user first. |
| update_data_table_rowA | Update a Data Table record by record_id (record API). Include only the fields to change in document_json ({field_name: value}). Get record_id from query_data_table ($record_id). MUTATES data — confirm first. |
| delete_data_table_rowA | Delete a Data Table record by record_id (record API). Get record_id from query_data_table ($record_id). Cannot be undone — confirm with the user first. |
| scaffold_recipeA | LOCAL file write (no token): create a connection-less clock->logger starter *.recipe.json with fresh |
| check_mcp_privilegesA | Probe (read-only) whether the API client holds the AI Hub MCP privilege (GRANTED/DENIED). Run before the other mcp_* tools — without the privilege Workato returns the HTML login page or 403/404. |
| list_mcp_serversA | List AI Hub hosted MCP servers (id, name, handle, authentication_method, tools_count, folder_id). Distinct from list_api_collections (API Platform). Needs the MCP privilege. |
| get_mcp_serverA | Get one AI Hub MCP server's full details by handle (incl. mcp_url). Needs the MCP privilege. |
| create_mcp_serverA | Create an (empty) AI Hub MCP server in a folder; follow with assign_mcp_tools. Returns the server (incl. handle/mcp_url). Set access to Workato Identity + add user groups in AI Hub. MUTATES the workspace — confirm first. Needs the MCP privilege. |
| list_mcp_server_toolsA | List the tools attached to an AI Hub MCP server (id, name, description, vua_required). Needs the MCP privilege. |
| assign_mcp_toolsA | Attach recipe-function/genie tools to an AI Hub MCP server. tools_json is a JSON array like [{"trigger_application":"workato","id":1234567}]. MUTATES a live MCP server's tool surface — confirm first. Needs the MCP privilege. |
| list_mcp_user_groupsA | List end-user groups (id, name, users_count) available to grant AI Hub MCP server access. Needs the MCP privilege. |
| assign_mcp_user_groupsA | Grant end-user groups access to an AI Hub MCP server (Workato Identity). group_ids_json is a JSON array of group ids. MUTATES access — confirm first. Needs the MCP privilege. |
| get_mcp_server_policiesA | Get an AI Hub MCP server's rate/quota/IP policies by handle. Needs the MCP privilege. |
| renew_mcp_server_tokenA | Rotate an AI Hub MCP server's token / mcp_url (the old URL stops working). MUTATES — confirm first. Needs the MCP privilege. |
| delete_mcp_serverA | Delete an AI Hub MCP server by handle. Cannot be undone — confirm first. Needs the MCP privilege. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/gmunro-lyft/Workato-Claude-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server