rows.page

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
85%
Calidad de los nombres
93%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,440Tokens (definiciones de herramientas)
~1.8 KBTamaño de respuesta típico
Impacto moderado en la atención (1.13% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "rows": {
      "url": "https://rows.page/mcp"
    }
  }
}

Puntos de conexión remotos

https://rows.page/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (6)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡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`).

Esquema de entrada

{
  "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`).

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada6 herramientas