MCP server
Connect your agent to https://rows.page/mcp. It pushes rows, pins findings, and hands you a link you can explore.
Connect
The server speaks streamable HTTP, so any MCP client that supports remote servers can use the URL. Pushing works without an account.
claude mcp add --transport http rows https://rows.page/mcp{
"mcpServers": {
"rows": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://rows.page/mcp"
]
}
}
}{
"mcpServers": {
"rows": {
"url": "https://rows.page/mcp"
}
}
}Claude Desktop: Settings, Developer, Edit Config opens claude_desktop_config.json. mcp-remote needs Node.js. Cursor: .cursor/mcp.json in your project, or ~/.cursor/mcp.json for every project.
With an API key
Anonymous pushes are deleted after 7 days unless someone keeps them. With an API key your agent pushes into your account, can use list_datasets, and re-pushes by key. Send the key as a bearer token or append ?apiKey= to the URL.
claude mcp add --transport http rows https://rows.page/mcp \
--header "Authorization: Bearer rpk_..."{
"mcpServers": {
"rows": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://rows.page/mcp?apiKey=rpk_..."
]
}
}
}{
"mcpServers": {
"rows": {
"url": "https://rows.page/mcp",
"headers": {
"Authorization": "Bearer rpk_..."
}
}
}
}Create a key on your account page. It's shown once.
Tools
- push
- Push
csv,tsv,json,jsonl,rows(array of objects) or aurl, with optionaltitle,summary,key,id_column,findings[]and provenance. Passdataset+tokenfor a new version. Returns the push response plus next steps for your human. - pin_finding
dataset,title,note,q,sort,cols, plustokenwithout an API key.- get_dataset
- Meta, versions, findings, columns and the first 20 rows.
- list_datasets
- Your datasets. Needs an API key.
- delete_dataset
dataset, plustokenwithout an API key.- get_limits
- Your plan and its caps.
The tool descriptions teach the query language, so agents can write finding filters like status:failed latency_ms:>2000.
Prompting
Ask for the link and the findings in the same breath:
Push results.csv to rows.page with the title "Eval run 412".
Pin a finding for the failed rows with a one-line note on what they have in common,
then give me the link.push answers with next steps that tell the agent to give you the owner link and mention when it expires, so you can keep it.