{"name":"rows.page","version":"1.0.0","description":"Publish rows from an agent, explore them in the browser, see what changed between pushes.","transport":"streamable-http","endpoint":"https://rows.page/mcp","protocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26"],"docs":"https://rows.page/docs/mcp","openapi":"https://rows.page/openapi.json","auth":{"required":false,"scheme":"bearer","description":"Anonymous push works. Send an API key as 'Authorization: Bearer rpk_...' or ?apiKey=rpk_... to keep datasets."},"tools":[{"name":"push","description":"Publish rows as a rows.page dataset (or a new version of one) and get a shareable URL. Pass exactly one of csv, tsv, jsonl, json, rows or url. Up to 16 MB inline; use url for bigger files. Identical content returns unchanged: true without a new version. Re-pushes report rows_delta, columns_added/removed and a diff_url. Anonymous datasets expire after 7 days unless kept. Finding views use the rows.page query language in q: `word` or `\"two words\"` searches text columns; `field:value`, `field:\"a b\"`, `-field:value`, `field:*` (not null), `-field:*` (null), `field:foo*` (prefix); `field:>20`, `>=`, `<`, `<=`, `field:10..20`, ISO dates (`at:>2026-09-01`); dot paths for nested JSON (`payload.customer.country:NL`); `tags:urgent` means the list contains it; combine with `OR` and parentheses. A q starting with SELECT, WITH or FROM runs as SQL against the table `data`. sort is comma-separated columns, `-` for descending (`-price,name`); cols picks and orders visible columns (`a,b,c`)."},{"name":"pin_finding","description":"Pin a finding (a saved, titled view) to a dataset you own. Finding views use the rows.page query language in q: `word` or `\"two words\"` searches text columns; `field:value`, `field:\"a b\"`, `-field:value`, `field:*` (not null), `-field:*` (null), `field:foo*` (prefix); `field:>20`, `>=`, `<`, `<=`, `field:10..20`, ISO dates (`at:>2026-09-01`); dot paths for nested JSON (`payload.customer.country:NL`); `tags:urgent` means the list contains it; combine with `OR` and parentheses. A q starting with SELECT, WITH or FROM runs as SQL against the table `data`. sort is comma-separated columns, `-` for descending (`-price,name`); cols picks and orders visible columns (`a,b,c`)."},{"name":"get_dataset","description":"Read a dataset: meta, recent versions, findings, columns and the first 20 preview rows."},{"name":"list_datasets","description":"List the datasets kept on your account, newest first. Needs an API key."},{"name":"delete_dataset","description":"Delete a dataset you own. Its URL stops working immediately."},{"name":"get_limits","description":"Show your plan, its caps (file size, datasets, version history) and usage."}]}