rows.page

Push CSV, JSON, JSONL or Parquet from your agent and get a link a human can explore.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
85%
命名品質
93%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,440Token(工具定義)
~1.8 KB典型回應大小
中等的注意力影響(128k 上下文的 1.13%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 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": {}
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本6 個工具