The builder calls these integrations; the tool names call them data sources. They are the same thing, so the assistant will follow whichever word you use.
Browsing is a drill-down
These tools are one path, not five separate features. Each level needs an ID from the level above, so the assistant walks down from the workspace to the fields of one table.Some integrations have a middle level
Most go straight from the top level to tables. Seven have something in between, so browsing them takes five steps instead of four:
A SQL connection usually has just one database — for Supabase it is called
postgres.
For everything else, skip list_data_source_schemas and go straight from databases to tables. Calling it on an integration that has no middle level returns an error rather than an empty list, so that “no schemas” is never mistaken for a fact about your data.
Which integrations are supported
Every data source type Softr supports can be browsed and connected to a block through MCP:
Each has its own setup guide in the Data Sources section of these docs. Connect it to the workspace there first, and it becomes browsable through MCP.
list_data_sources also returns integrations that are not data sources at all — Gmail, Slack, OpenAI and the other workflow connectors. Those appear so you can see what the workspace has, but there are no tables to browse inside them.
If an integration you expect is missing from a result, check that it is connected to the workspace you are asking about rather than a different one. If a table is missing, check you are looking under the right top-level entry — a monday.com board only appears under the monday.com workspace that owns it.
Referencing fields in code
list_data_source_table_fields returns each field’s type and options, the table’s primary field, and one thing that matters more than it looks: how fields must be referenced in code.
Rather than memorising that table, read
fieldReferenceKey from the response: it says "id" or "name" for the table you just looked at. For SQL databases the two are the same string anyway, because a column’s ID is its name.