# update_portal_page

Оновити HTML або назву сторінки порталу. Також дозволяє встановити її як default. Перед зміною HTML — завжди get_portal_page і передай checksum + site_id з SURFACE CONTEXT. ВАЖЛИВО: якщо сторінка містить форми або таблиці з даними — краще використовуй generate_ai_site, а не цей тул напряму. Якщо все ж вставляєш iframe вручну — єдиний правильний формат: src='https://quintadb.com/widgets/APP_ID/ENTITY_ID?iframe=true'. APP_ID і ENTITY_ID беруться з describe_project. НЕ вигадуй інших URL-ів.

Agent View of the PolicyLayer registry record for `update_portal_page`. HTML page: https://policylayer.com/tools/com-quintadb-mcp/update-portal-page

## Facts

- Tool: `update_portal_page`
- 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: 8 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `html` | string | no | Новий HTML контент сторінки |
| `name` | string | no | Нова назва сторінки |
| `app_id` | string | yes | Project ID (from list_projects) |
| `page_id` | string | yes | Portal page ID (from list_portal_pages) |
| `site_id` | string | no | site_id з SURFACE CONTEXT — dual-write у правильний Site. |
| `portal_id` | string | yes | Portal ID (from list_portals or describe_project) |
| `page_checksum` | string | no | SHA256 поточного HTML з get_portal_page.checksum. ОБОВ'ЯЗКОВО при оновленні html — виклик без checksum буде відхилено. |
| `set_as_default` | boolean | no | Зробити цю сторінку головною |

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

## Why update_portal_page is rated Medium

The tool creates or modifies portal page content (HTML, names, default settings) reversibly. While it could theoretically enable malicious content injection via HTML manipulation, the effects are reversible (pages can be edited again or reverted). This is Write rather than Execute because it modifies data/configuration, not runs arbitrary code execution.

From the tool's own definition: "Tool description states it updates ('Оновити') HTML or portal page name and allows setting as default. Key phrases: 'update HTML', 'встановити як default' (set as default), 'вставляєш iframe' (insert iframe). These are modification operations."

Risk signals: Accepts raw HTML/template content (html)

## Use case

AI agents use update_portal_page 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": {
    "update_portal_page": {
      "limits": [
        {
          "counter": "update_portal_page_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
