# place_media_on_site

Вставити завантажений файл (зображення) на конкретне місце сайту — замінює src у знайденому <img> тегу. Безпечна операція: checksum, lock, Undo-сумісний checkpoint. Використовуй замість update_portal_page коли потрібно замінити лише одне зображення.

Agent View of the PolicyLayer registry record for `place_media_on_site`. HTML page: https://policylayer.com/tools/com-quintadb-mcp/place-media-on-site

## Facts

- Tool: `place_media_on_site`
- Server: QuintaDB (`https://quintadb.com/mcp`) — https://policylayer.com/tools/com-quintadb-mcp.md
- Homepage: https://github.com/https://quintadb.com/mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 7 (5 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `app_id` | string | yes | Project ID (from list_projects) |
| `page_id` | string | yes | Portal page ID (from list_portal_pages) |
| `media_id` | string | yes | ID файлу з MyFile (з diamant_upload або media library) |
| `portal_id` | string | yes | Portal ID (from list_portals or describe_project) |
| `current_src` | string | no | Поточний src зображення для заміни (URL або відносний шлях) |
| `css_selector` | string | no | CSS-селектор для пошуку img-елемента (альтернатива current_src) |
| `page_checksum` | string | yes | SHA256 поточного HTML сторінки — береться з get_portal_page відповіді поля checksum. Обов'язково для захисту від паралельних змін. |

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": "place_media_on_site",
    "arguments": {
      "app_id": "<app_id>",
      "page_id": "<page_id>",
      "media_id": "<media_id>",
      "portal_id": "<portal_id>",
      "page_checksum": "<page_checksum>"
    }
  }
}
```

## Why place_media_on_site is rated Medium

The tool modifies site content by replacing image sources, which is a write operation. While the description emphasizes safety features (checksum, lock, undo-compatibility), the fundamental operation is creating or modifying data (image placement on a site). It is not destructive since changes can be undone, not executable code, and not financial.

From the tool's own definition: "Tool description states it 'inserts an uploaded file (image) on a specific site location — replaces src in a found <img> tag' and is described as 'Undo-compatible checkpoint'. This is a reversible modification of site content."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on QuintaDB (115)

- `delete_few_records` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-few-records.md
- `delete_field` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-field.md
- `delete_form` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-form.md
- `delete_portal_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-portal-group.md
- `delete_portal_menu_item` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-portal-menu-item.md
- `delete_portal_user` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-portal-user.md
- `delete_project` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-project.md
- `delete_record` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-record.md
- `delete_records_by_filter` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-records-by-filter.md
- `delete_reminder` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-reminder.md
- `delete_saved_view` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-saved-view.md
- `delete_schedule` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-schedule.md
- `delete_team_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-team-group.md
- `delete_template` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-template.md
- `delete_webhook` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-webhook.md
- `remove_user_from_portal_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/remove-user-from-portal-group.md
- `remove_user_from_team_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/remove-user-from-team-group.md
- `run_action` — Execute — https://policylayer.com/tools/com-quintadb-mcp/run-action.md
- `check_ai_site_status` — Read — https://policylayer.com/tools/com-quintadb-mcp/check-ai-site-status.md
- `describe_project` — Read — https://policylayer.com/tools/com-quintadb-mcp/describe-project.md
- `export_records` — Read — https://policylayer.com/tools/com-quintadb-mcp/export-records.md
- `fetch_url` — Read — https://policylayer.com/tools/com-quintadb-mcp/fetch-url.md
- `get_column_total` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-column-total.md
- `get_field_types` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-field-types.md
- `get_form_fields` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-form-fields.md
- `get_form_settings` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-form-settings.md
- `get_metric` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-metric.md
- `get_portal_page` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-portal-page.md
- `get_project` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-project.md
- `get_quickstart_guide` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-quickstart-guide.md
- …and 85 more: https://policylayer.com/tools/com-quintadb-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=com-quintadb-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-quintadb-mcp
