# upload_data

Upload or replace a data file (CSV, JSON, TSV, XML, TXT, max 10MB) inside an already-deployed Deloc app WITHOUT redeploying. Use this to refresh dashboard data from databases or APIs on a schedule. The file is served at the same URL as the rest of the app, so client code that does fetch(

Agent View of the PolicyLayer registry record for `upload_data`. HTML page: https://policylayer.com/tools/deloc-mcp/upload-data

## Facts

- Tool: `upload_data`
- Server: Deloc (`delocdev/deloc-mcp`) — https://policylayer.com/tools/deloc-mcp.md
- Homepage: https://github.com/delocdev/deloc-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

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

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

## Why upload_data is rated Medium

This tool creates or modifies data files reversibly—uploading or replacing CSV, JSON, TSV, XML, or TXT files up to 10MB in size within an already-deployed app. While this can affect the app's behavior (since the file is served via fetch), it doesn't execute arbitrary code, delete data irreversibly, or trigger financial transactions.

From the tool's own definition: "Tool description states 'Upload or replace a data file' and mentions refreshing data, which are write operations that modify existing files without permanent deletion or code execution."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Deloc (44)

- `delete_action` — Destructive — https://policylayer.com/tools/deloc-mcp/delete-action.md
- `delete_action_secret` — Destructive — https://policylayer.com/tools/deloc-mcp/delete-action-secret.md
- `delete_app` — Destructive — https://policylayer.com/tools/deloc-mcp/delete-app.md
- `delete_dashboard_query` — Destructive — https://policylayer.com/tools/deloc-mcp/delete-dashboard-query.md
- `delete_data_connection` — Destructive — https://policylayer.com/tools/deloc-mcp/delete-data-connection.md
- `delete_oauth_credential` — Destructive — https://policylayer.com/tools/deloc-mcp/delete-oauth-credential.md
- `disable_app` — Destructive — https://policylayer.com/tools/deloc-mcp/disable-app.md
- `logout` — Destructive — https://policylayer.com/tools/deloc-mcp/logout.md
- `deploy` — Execute — https://policylayer.com/tools/deloc-mcp/deploy.md
- `run_dashboard_query` — Execute — https://policylayer.com/tools/deloc-mcp/run-dashboard-query.md
- `test_action` — Execute — https://policylayer.com/tools/deloc-mcp/test-action.md
- `test_oauth_credential` — Execute — https://policylayer.com/tools/deloc-mcp/test-oauth-credential.md
- `bigquery_get_table_schema` — Read — https://policylayer.com/tools/deloc-mcp/bigquery-get-table-schema.md
- `bigquery_list_datasets` — Read — https://policylayer.com/tools/deloc-mcp/bigquery-list-datasets.md
- `bigquery_list_projects` — Read — https://policylayer.com/tools/deloc-mcp/bigquery-list-projects.md
- `bigquery_list_tables` — Read — https://policylayer.com/tools/deloc-mcp/bigquery-list-tables.md
- `check_bigquery_connection` — Read — https://policylayer.com/tools/deloc-mcp/check-bigquery-connection.md
- `get_account` — Read — https://policylayer.com/tools/deloc-mcp/get-account.md
- `get_action_logs` — Read — https://policylayer.com/tools/deloc-mcp/get-action-logs.md
- `get_app` — Read — https://policylayer.com/tools/deloc-mcp/get-app.md
- `list_action_secrets` — Read — https://policylayer.com/tools/deloc-mcp/list-action-secrets.md
- `list_actions` — Read — https://policylayer.com/tools/deloc-mcp/list-actions.md
- `list_apps` — Read — https://policylayer.com/tools/deloc-mcp/list-apps.md
- `list_dashboard_queries` — Read — https://policylayer.com/tools/deloc-mcp/list-dashboard-queries.md
- `list_data_connections` — Read — https://policylayer.com/tools/deloc-mcp/list-data-connections.md
- `list_data_files` — Read — https://policylayer.com/tools/deloc-mcp/list-data-files.md
- `list_oauth_credentials` — Read — https://policylayer.com/tools/deloc-mcp/list-oauth-credentials.md
- `suggest_deploy_options` — Read — https://policylayer.com/tools/deloc-mcp/suggest-deploy-options.md
- `connect_bigquery` — Write — https://policylayer.com/tools/deloc-mcp/connect-bigquery.md
- `create_action` — Write — https://policylayer.com/tools/deloc-mcp/create-action.md
- …and 14 more: https://policylayer.com/tools/deloc-mcp.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=deloc-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/deloc-mcp
