# importDatabaseRows

Load a CSV, TSV or Excel file into a table: an existing table, or a new one (newTable) whose fields are made from the file's columns. Call getDatabase with table first when the table exists: columns match its fields by exact name. For a small amount of data pass csv (text with a header row) and the rows are added at once. For a file, pass fileName (and sizeBytes): you get an uploadUrl; send the file's bytes there with an HTTP PUT, then call again with the importId, and again with each importId the answer returns, until status is done. Columns match fields by name; mapping renames or skips columns; createFields adds a text field for each column that matches no field. dryRun checks the file and the columns without adding anything. The organisation's plan limits the size of one import. getDatabaseGuide topic importing.

Agent View of the PolicyLayer registry record for `importDatabaseRows`. HTML page: https://policylayer.com/tools/io-stablebaseline-sb/importdatabaserows

## Facts

- Tool: `importDatabaseRows`
- Server: Stable Baseline (`https://api.stablebaseline.io/functions/v1/cloud-serve/mcp`) — https://policylayer.com/tools/io-stablebaseline-sb.md
- Homepage: https://github.com/stablebaseline/mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: https://app.stablebaseline.io
- Server rate-limited: no
- Parameters: 10
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `csv` | string | no | Small data inline: comma or tab separated text, the first line being the column names. |
| `table` | string | no | An existing table to add the rows to (id or name). |
| `dryRun` | boolean | no | Check the file and the column mapping without adding anything. |
| `mapping` | object | no | Column name -> field name or key to load it into, or null to skip the column. |
| `fileName` | string | no | Open an upload for this file (.csv, .tsv, .txt, .xlsx). |
| `importId` | string | no | Continue an import: from the upload answer, then from each answer until status is done. |
| `newTable` | string | no | Make a new table with this name from the file's columns instead. |
| `sizeBytes` | integer | no | The file's size, checked against the plan's import limit before you upload. |
| `databaseId` | string | no | The database's id, friendly id (DB-12) or exact name. Not needed with importId. |
| `createFields` | boolean | no | Add a text field for each column that matches no field (a new table always gets its fields). |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "importDatabaseRows",
    "arguments": {}
  }
}
```

## Why importDatabaseRows is rated Medium

An AI agent can call importDatabaseRows faster than any human can review: one bad instruction and it creates or modifies resources in Stable Baseline by the hundred, each call as confident as the last.

Risk signals: Accepts file system path (fileName) · High parameter count (10 properties)

## Use case

AI agents use importDatabaseRows to create or update resources in Stable Baseline, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Stable Baseline environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Stable Baseline:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "importDatabaseRows": {
      "limits": [
        {
          "counter": "importdatabaserows_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Stable Baseline (221)

- `autoDesignWhiteboard` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/autodesignwhiteboard.md
- `cancelAllKgInScope` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/cancelallkginscope.md
- `cancelKgBuildBatch` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/cancelkgbuildbatch.md
- `delegateToAgent` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/delegatetoagent.md
- `deleteDatabase` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletedatabase.md
- `deleteDatabaseRows` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletedatabaserows.md
- `deleteDiagramInDocument` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletediagramindocument.md
- `deleteDocument` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletedocument.md
- `deleteFolder` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletefolder.md
- `deleteImageInDocument` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteimageindocument.md
- `deleteImprovement` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteimprovement.md
- `deleteImprovementCategory` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteimprovementcategory.md
- `deleteImprovementComment` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteimprovementcomment.md
- `deletePlan` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteplan.md
- `deletePlanComment` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteplancomment.md
- `deletePlanPhase` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteplanphase.md
- `deleteResourcePermission` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteresourcepermission.md
- `deleteTaskDependency` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletetaskdependency.md
- `deleteTeam` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deleteteam.md
- `deleteVegaDataFile` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletevegadatafile.md
- `deleteWhiteboard` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/deletewhiteboard.md
- `getAgentRun` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/getagentrun.md
- `previewKgScopeChange` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/previewkgscopechange.md
- `previewSubscriptionChange` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/previewsubscriptionchange.md
- `removeMember` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/removemember.md
- `removeTeamMember` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/removeteammember.md
- `removeWorkspaceMember` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/removeworkspacemember.md
- `reorderDocuments` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/reorderdocuments.md
- `resetDocumentInBrain` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/resetdocumentinbrain.md
- `revokeTeamWorkspaceAccess` — Destructive — https://policylayer.com/tools/io-stablebaseline-sb/revoketeamworkspaceaccess.md
- …and 191 more: https://policylayer.com/tools/io-stablebaseline-sb.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-stablebaseline-sb · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-stablebaseline-sb
