MCP server for Retool

Retool now supports an MCP server, which enables you to interact with your Retool organization from your chosen agentic environment.

Retool's MCP server currently supports tools that help you manage your organization and its users. For example, you can use the MCP for the following use cases:

  • Write queries against resources to power data analysis.
  • Bulk-invite users or manage pending invites.
  • Audit the users who have access to your organization.
  • Inspect organization and resource environment configurations.
  • List all connected resources and see their configuration.

Refer to the tool reference for the full list.

Retool is actively adding additional tools that expand the capabilities of the MCP server to include additional Retool functionality, including app building.

3 Likes

I'm trying to connect to the Retool MCP server at (http://ourdomain.retool.com/mcp) via Claude Code but the OAuth flow fails with Invalid code_challenge format. I'm on Cloud Enterprise. Is MCP enabled on my account and where do I configure OAuth clients?

Thanks, Mike

Hey Mike!

Do you mind providing some MCP client information? (For example, your Claude Code version)

Thanks.

1 Like

Any plans on this becoming available for self-hosted instances as well?

Definitely! We're targeting the Q2 stable release that will ship in June. :+1:

@ArnieW It just started working on Monday morning without any changes to anything by me.

Glad to hear that! Be sure to give us any feedback :slight_smile:

Any ideas when the app building might come. The build agents are good. But if I am able to do what they do inside my own agent with an mcp connection it will seriously unblock adoption of retool for my team. This will truly enable us to automate dashboard creation.

UPDATE: Now. It's live now!


Soon, @Ben_Dunkerley! We're targeting the June stable release for on-prem deployments and will roll it out on Cloud before then. I'll have more to share very shortly!

Welcome to the community. :slightly_smiling_face:

Hi team, sharing a bug from the public beta. The resource TypeScript execute tool returns a 500 on every call, whether I run a trivial snippet or a correctly-formed query against a resource.

What works:

  • list_resources returns 200 with all our resources
  • get_resource_ts_definitions returns 200 with valid bindings (e.g. pluotRo, pccRo) and the expected SQLResourceFn types

What fails:

  • execute_resource_ts with trivial code return 1;
  • execute_resource_ts with a proper query using the binding exactly as the definitions prescribe:

const t = await pccRo.query("SELECT 1 AS n, now() AS ts");
return t.data;

Both return the identical error:

POST /api/resources/typescript/execute
500 {"apiError":"internal_server_error","message":"Internal server error"}

Since it fails on both the trivial snippet (which touches no resource) and a correctly-formed .query() call returning .data, this looks like a server-side fault on the execute endpoint itself rather than an auth, binding, usage, or resource-config issue. Auth is clearly fine given the definitions and list calls succeed.

Details:

  • Reproduced consistently across two resources and DB types: pluot-core (MySQL) and pcc-ro (PostgreSQL)
  • Environment: production
  • Instance: daily.retool.com
  • Transport: HTTP, OAuth 2.0
  • Seen on 2026-05-28
  • Claude Code 2.1.153 (Opus 4.7)

Happy to provide request IDs or test further if useful.

Thanks!

Since the update to add the app builder, I dont see the tool β€œexecute_resource_ts” in the tool list at all. Other (newly added) tools are there.

I just confirmed that the execute_resource_ts tool is back to working normally, @Dominic_Stewart! You may need to re-auth to retrieve the updated tool definitions. :+1: