Skip to main content

Interactive table viewer

When the agent reads a Syntropic table, hosts that support the MCP Apps UI spec render it as an interactive spreadsheet-style viewer, embedded right in the conversation. The tool returns only a short acknowledgement to the model in these hosts, so the same rows aren't duplicated as Markdown in the conversation. Hosts that don't advertise MCP Apps support receive a Markdown preview with pagination and filter summaries instead. If the server cannot load the viewer bundle, it also returns that Markdown fallback so the rows remain visible.

What it does​

Progressive loading​

Big tables load incrementally in pages of 2,000 rows. The viewer keeps fetching as you scroll — no need to re-prompt for "the next page."

Inline editing​

Click a cell to edit it. Edits are validated against the column's data type and any quality rules attached to the column (character length, numeric range, date constraints). Invalid edits surface the violation before they're submitted, so you can fix them in place.

Bulk file import​

Drop a CSV file or Excel .xlsx workbook into the import view to append many rows at once. For workbooks with multiple worksheets, choose the worksheet before mapping its columns. The viewer treats the first non-empty row as the header row, then runs the same column mapping, schema validation, quality-rule correction, and confirmation flow for both formats.

Files are parsed locally inside the MCP App and are not uploaded to a separate file-processing service. Worksheet data is parsed only after selection, and each workbook is checked for unsafe archive expansion and oversized worksheet dimensions before parsing. The compressed file limit is 10 MB, and the rows submitted in one MCP request are limited to 2 MB; split larger datasets into multiple imports. Password-protected workbooks, legacy .xls files, malformed archives, empty worksheets, and expansion-heavy archives are rejected with an explanation.

Row-level editability​

Some rows may be locked (e.g., rows waiting on upstream approval, or rows outside your permission scope). Those rows render read-only in the grid, with a tooltip explaining why.

Column filters​

Filter rows by any column with AND / OR logic. The filter is applied client-side on the loaded pages and sent to the server for subsequent pages, so it stays fast on large tables.

Approval status​

If the table requires approval, pending writes stay visible at the top of the grid with their status. You can approve or reject from the Syntropic web app — the viewer links straight to the right place.

"Open in Syntropic"​

Every table viewer includes a link to open the same table in the full Syntropic web app — useful when you want the complete UI (connections page, webhooks, roles, etc.) instead of the in-chat preview.

Where the viewer renders​

The viewer is a standard MCP Apps UI resource — it renders in any host that implements the spec. Support is evolving; here's what we've seen:

ClientInteractive viewer?Fallback
Claude.ai (web and mobile)Yes—
Claude DesktopYes—
ChatGPT (Apps, Developer Mode)Yes—
Claude CodeNoMarkdown table
Codex CLI, Cursor, Windsurf, ZedNoMarkdown / JSON
Anthropic Messages API / OpenAI API directNoStructured tool results

If a client you expect to support the viewer isn't rendering the grid, it likely hasn't shipped MCP Apps support yet — the underlying data calls all still work, so the agent can answer from the raw results.

If the grid is broken on a host that should support it, check the troubleshooting page.