rows.page
Push CSV, JSON, JSONL or Parquet from your agent and get a link a human can explore.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"rows": {
"url": "https://rows.page/mcp"
}
}
}远程端点
https://rows.page/mcpstreamable-http它能做什么
工具清单
工具(6)
🟡push(csv, tsv, jsonl, json, rows, ...)
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`).
输入模式
{
"type": "object",
"properties": {
"csv": {
"type": "string",
"description": "CSV text with a header row"
},
"tsv": {
"type": "string",
"description": "TSV text with a header row"
},
"jsonl": {
"type": "string",
"description": "One JSON object per line"
},
"json": {
"description": "A JSON array of objects (or an object holding one), as text or as a value"
},
"rows": {
"type": "array",
"items": {
"type": "object"
},
"description": "Rows as an array of objects"
},
"url": {
"type": "string",
"description": "http(s) URL of a CSV, TSV, JSON, JSONL or Parquet file to fetch and publish"
},
"format": {
"type": "string",
"enum": [
"csv",
"tsv",
"json",
"jsonl",
"parquet"
],
"description": "Format of url when it cannot be told"
},
"name": {
"type": "string",
"description": "File name, e.g. orders.csv"
},
"title": {
"type": "string",
"description": "Dataset title shown on the page"
},
"summary": {
"type": "string",
"description": "A few sentences for the human: what this is and what to look at"
},
"dataset": {
"type": "string",
"description": "Existing dataset id to push a new version to"
},
"token": {
"type": "string",
"description": "Dataset token (rpt_...) proving ownership of dataset"
},
"key": {
"type": "string",
"description": "Stable name for upserts with an API key, e.g. nightly-orders"
},
"id_column": {
"type": "string",
"description": "Column that identifies a row across versions, for changed-row diffs"
},
"visibility": {
"type": "string",
"enum": [
"public",
"private"
],
"description": "private needs Pro or Max"
},
"findings": {
"type": "array",
"maxItems": 20,
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Short headline of the finding"
},
"note": {
"type": "string",
"description": "Why it matters, in a sentence or two"
},
"q": {
"type": "string",
"description": "Filter in the rows.page query language"
},
"sort": {
"type": "string",
"description": "Sort, e.g. -price,name"
},
"cols": {
"type": "string",
"description": "Visible columns, e.g. id,price,country"
},
"sql": {
"type": "string",
"description": "Optional SQL against the table `data`"
}
},
"required": [
"title"
]
}
},
"source": {
"type": "string",
"description": "Where the data came from (URL or description)"
},
"run": {
"type": "string",
"description": "Run id of the job that produced it"
},
"commit": {
"type": "string",
"description": "Commit sha of the code that produced it"
}
}
}🟢pin_finding(dataset, token, title, note, q, ...)
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`).
输入模式
{
"type": "object",
"properties": {
"dataset": {
"type": "string",
"description": "Dataset id"
},
"token": {
"type": "string",
"description": "Dataset token (rpt_...) when not using an API key"
},
"title": {
"type": "string",
"description": "Short headline of the finding"
},
"note": {
"type": "string",
"description": "Why it matters, in a sentence or two"
},
"q": {
"type": "string",
"description": "Filter in the rows.page query language"
},
"sort": {
"type": "string",
"description": "Sort, e.g. -price,name"
},
"cols": {
"type": "string",
"description": "Visible columns, e.g. id,price,country"
},
"sql": {
"type": "string",
"description": "Optional SQL against the table `data`"
},
"version": {
"type": "integer",
"description": "Pin to this version instead of the latest"
},
"row_count": {
"type": "integer",
"description": "Rows matching the view, if you know it"
}
},
"required": [
"dataset",
"title"
]
}🟢get_dataset(dataset, version, token)
Read a dataset: meta, recent versions, findings, columns and the first 20 preview rows.
输入模式
{
"type": "object",
"properties": {
"dataset": {
"type": "string",
"description": "Dataset id"
},
"version": {
"type": "integer",
"description": "Version number; latest when omitted"
},
"token": {
"type": "string",
"description": "Dataset token, needed for private datasets without an API key"
}
},
"required": [
"dataset"
]
}🟢list_datasets(cursor)
List the datasets kept on your account, newest first. Needs an API key.
输入模式
{
"type": "object",
"properties": {
"cursor": {
"type": "string",
"description": "next_cursor from the previous page"
}
}
}🔴delete_dataset(dataset, token)
Delete a dataset you own. Its URL stops working immediately.
输入模式
{
"type": "object",
"properties": {
"dataset": {
"type": "string",
"description": "Dataset id"
},
"token": {
"type": "string",
"description": "Dataset token when not using an API key"
}
},
"required": [
"dataset"
]
}🟢get_limits
Show your plan, its caps (file size, datasets, version history) and usage.
输入模式
{
"type": "object",
"properties": {}
}社区
证据