# store_files

Store uploaded files. Receives file objects with name, size, type, data (base64).

Agent View of the PolicyLayer registry record for `store_files`. HTML page: https://policylayer.com/tools/facusada-mcp-btp/store-files

## Facts

- Tool: `store_files`
- Server: Sap Btp Destination (`facusada/mcp-btp`) — https://policylayer.com/tools/facusada-mcp-btp.md
- Homepage: https://github.com/facusada/mcp-btp
- Risk category: Write (Medium risk)
- Registry record: grade D, 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": "store_files",
    "arguments": {}
  }
}
```

## Why store_files is rated Medium

The tool writes data to storage by accepting file objects and persisting them. This is a reversible write operation (files can potentially be deleted later). The severity is medium because an AI agent could upload arbitrary files, potentially including malicious content, but the action itself is not inherently irreversible or financial.

From the tool's own definition: "Store uploaded files. Receives file objects with name, size, type, data (base64)."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Sap Btp Destination (35)

- `call_destination` — Execute — https://policylayer.com/tools/facusada-mcp-btp/call-destination.md
- `run_query` — Execute — https://policylayer.com/tools/facusada-mcp-btp/run-query.md
- `admin_tool` — Other — https://policylayer.com/tools/facusada-mcp-btp/admin-tool.md
- `async_tool` — Other — https://policylayer.com/tools/facusada-mcp-btp/async-tool.md
- `custom_name` — Other — https://policylayer.com/tools/facusada-mcp-btp/custom-name.md
- `flexible_task` — Other — https://policylayer.com/tools/facusada-mcp-btp/flexible-task.md
- `greet` — Other — https://policylayer.com/tools/facusada-mcp-btp/greet.md
- `greeting` — Other — https://policylayer.com/tools/facusada-mcp-btp/greeting.md
- `multiply` — Other — https://policylayer.com/tools/facusada-mcp-btp/multiply.md
- `my_task` — Other — https://policylayer.com/tools/facusada-mcp-btp/my-task.md
- `my_tool` — Other — https://policylayer.com/tools/facusada-mcp-btp/my-tool.md
- `protected_tool` — Other — https://policylayer.com/tools/facusada-mcp-btp/protected-tool.md
- `check_worker_status` — Read — https://policylayer.com/tools/facusada-mcp-btp/check-worker-status.md
- `echo_tool` — Read — https://policylayer.com/tools/facusada-mcp-btp/echo-tool.md
- `get_auth_type` — Read — https://policylayer.com/tools/facusada-mcp-btp/get-auth-type.md
- `get_client_ip` — Read — https://policylayer.com/tools/facusada-mcp-btp/get-client-ip.md
- `get_destination` — Read — https://policylayer.com/tools/facusada-mcp-btp/get-destination.md
- `get_info` — Read — https://policylayer.com/tools/facusada-mcp-btp/get-info.md
- `get_my_emails` — Read — https://policylayer.com/tools/facusada-mcp-btp/get-my-emails.md
- `get_user_id` — Read — https://policylayer.com/tools/facusada-mcp-btp/get-user-id.md
- `healthcheck` — Read — https://policylayer.com/tools/facusada-mcp-btp/healthcheck.md
- `introspect` — Read — https://policylayer.com/tools/facusada-mcp-btp/introspect.md
- `list_files` — Read — https://policylayer.com/tools/facusada-mcp-btp/list-files.md
- `log_progress` — Read — https://policylayer.com/tools/facusada-mcp-btp/log-progress.md
- `long_running_task` — Read — https://policylayer.com/tools/facusada-mcp-btp/long-running-task.md
- `read_file` — Read — https://policylayer.com/tools/facusada-mcp-btp/read-file.md
- `read_write_tool` — Read — https://policylayer.com/tools/facusada-mcp-btp/read-write-tool.md
- `tool_with_context` — Read — https://policylayer.com/tools/facusada-mcp-btp/tool-with-context.md
- `add` — Write — https://policylayer.com/tools/facusada-mcp-btp/add.md
- `add_expense` — Write — https://policylayer.com/tools/facusada-mcp-btp/add-expense.md
- …and 5 more: https://policylayer.com/tools/facusada-mcp-btp.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=facusada-mcp-btp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/facusada-mcp-btp
