Skip to main content
Question

Airtable MCP: list_workspaces / list_bases return data only in structuredContent, text content is empty

  • September 7, 2026
  • 2 replies
  • 135 views

hehanlin

When calling the Airtable MCP server (https://mcp.airtable.com/mcp) over Streamable HTTP with OAuth 2.0, the tool calls list_workspaces and list_bases succeed (isError = false), but the CallToolResult carries the payload only in structuredContent. The standard content array is returned empty.

What I observe:
- list_workspaces: content is empty, while structuredContent contains the actual workspaces.
- list_bases: content is empty, while structuredContent contains the actual bases.
- The OAuth access token is valid; the calls are not errors.

Why this is a problem: per the MCP spec, when a tool returns structuredContent it should also return a functionally-equivalent text block in the content array (a serialized/text form of the same result), for backward compatibility. Any MCP client or model that reads the standard content array sees nothing and concludes the tool returned an empty result, even though the workspaces/bases were actually returned in structuredContent.

Request: please also populate the content (text) array for tools like list_workspaces and list_bases (for example a JSON or text serialization of the same result), not only structuredContent. This keeps the Airtable MCP server compatible with clients that consume the standard text content.

2 replies

anthonyXRay
Forum|alt.badge.img+6
  • Participating Frequently
  • September 8, 2026

You are doing everything that you are supposed to do.  It is only a recommendation that you use a backwards compatible text block.  Though be aware that this does bite a lot of clients in practice that only read ‘content’.  In fact there is an open MCP SEP (1624) specifically clarifying that expectation right now because behavior is inconsistent across servers.

The fix is going to have to come from Airtable’s MCP implementation.  It is worth filing this as a feedback or bug report rather than trying to find client-side workarounds to fully solve it.  Something you could do in the meantime is to have your client fall back to ‘structuredContent’ whenever ‘content’ comes back empty.  Try to serialize it to text yourself if you need a uniform interface across servers.  It might be a bit annoying but it will keep everything moving until Airtable is able to patch it.


  • New Participant
  • September 24, 2026

We also have this issue when implementing Airtable’s MCP with LibreChat – it isn’t compatible. Have requested a fix on Airtable’s end via support.