# arvan_ssh_upload_file

Write content to a file on the server via SFTP.

Agent View of the PolicyLayer registry record for `arvan_ssh_upload_file`. HTML page: https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-ssh-upload-file

## Facts

- Tool: `arvan_ssh_upload_file`
- Server: ArvanCloud MCP Server (`dwin-gharibi/arvancloud-mcp`) — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp.md
- Homepage: https://github.com/dwin-gharibi/arvancloud-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": "arvan_ssh_upload_file",
    "arguments": {}
  }
}
```

## Why arvan_ssh_upload_file is rated Medium

This tool creates or modifies files on a remote server through SFTP, which is a reversible operation (files can be edited or deleted later). While it has significant blast radius—an AI agent could overwrite critical configuration files, application code, or system files—it does not irreversibly destroy data or execute arbitrary code directly.

From the tool's own definition: "Tool name includes 'upload_file' and description states 'Write content to a file on the server via SFTP', directly indicating file creation/modification via remote access."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on ArvanCloud MCP Server (231)

- `arvan_delete_cdn_app` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-cdn-app.md
- `arvan_delete_dns_record` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-dns-record.md
- `arvan_delete_domain` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-domain.md
- `arvan_delete_firewall_rule` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-firewall-rule.md
- `arvan_delete_floating_ip` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-floating-ip.md
- `arvan_delete_log_forwarder` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-log-forwarder.md
- `arvan_delete_page_rule` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-page-rule.md
- `arvan_delete_ptr_record` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-ptr-record.md
- `arvan_delete_rate_limit_rule` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-rate-limit-rule.md
- `arvan_delete_security_group` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-security-group.md
- `arvan_delete_security_rule` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-security-rule.md
- `arvan_delete_server` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-server.md
- `arvan_delete_ssh_key` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-ssh-key.md
- `arvan_delete_subnet` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-subnet.md
- `arvan_delete_tag` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-tag.md
- `arvan_delete_volume` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-delete-volume.md
- `arvan_helm_uninstall` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-helm-uninstall.md
- `arvan_iac_terraform_destroy` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-iac-terraform-destroy.md
- `arvan_k8s_delete` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-k8s-delete.md
- `arvan_live_delete_channel` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-live-delete-channel.md
- `arvan_purge_cache` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-purge-cache.md
- `arvan_rebuild_server` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-rebuild-server.md
- `arvan_s3_delete_bucket` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-s3-delete-bucket.md
- `arvan_s3_delete_object` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-s3-delete-object.md
- `arvan_s3_delete_objects` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-s3-delete-objects.md
- `arvan_task_cancel` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-task-cancel.md
- `arvan_vod_delete_audio` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-vod-delete-audio.md
- `arvan_vod_delete_channel` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-vod-delete-channel.md
- `arvan_vod_delete_file` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-vod-delete-file.md
- `arvan_vod_delete_profile` — Destructive — https://policylayer.com/tools/dwin-gharibi-arvancloud-mcp/arvan-vod-delete-profile.md
- …and 201 more: https://policylayer.com/tools/dwin-gharibi-arvancloud-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=dwin-gharibi-arvancloud-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/dwin-gharibi-arvancloud-mcp
