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.
Retool is actively adding additional tools that expand the capabilities of the MCP server to include additional Retool functionality, including app building.
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?
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.
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!
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)
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.