# create_placement

Create a new placement (assign an ad item or campaign to a zone or channel)

Agent View of the PolicyLayer registry record for `create_placement`. HTML page: https://policylayer.com/tools/adbutler/create-placement

## Facts

- Tool: `create_placement`
- Server: AdButler (`adbutler/mcp-server`) — https://policylayer.com/tools/adbutler.md
- Homepage: https://github.com/adbutler/mcp-server
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 12 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `cost` | object | no | Pricing model: fixed_cost OR cpm/cpc/cpa |
| `zone` | object | no | Zone object (required if channel not set; mutually exclusive with channel) |
| `active` | boolean | no | Whether placement is active (defaults to true) |
| `payout` | object | no | Publisher payout configuration |
| `weight` | number | no | Relative delivery weight |
| `channel` | number | no | Channel ID (required if zone not set; mutually exclusive with zone) |
| `keywords` | string | no | Comma-separated keywords for targeting |
| `priority` | string | no | Serving priority level (defaults to "standard") |
| `schedule` | number | yes | Schedule ID |
| `geo_target` | number | no | Geotarget ID |
| `list_target` | number | no | List Target ID |
| `serve_method` | string | no | Serving system: weight-based or auction-based |

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": "create_placement",
    "arguments": {
      "schedule": 0
    }
  }
}
```

## Why create_placement is rated Medium

This tool creates new placements which are reversible configuration changes to the advertising system. It does not execute external code, delete data irreversibly, or move money. The blast radius is medium because incorrect placements could affect ad serving behavior and campaign performance, but changes can be undone by removing or modifying the placement.

From the tool's own definition: "Tool description states 'Create a new placement (assign an ad item or campaign to a zone or channel)'. The verb 'create' and 'assign' indicate data creation and modification operations."

Risk signals: High parameter count (31 properties)

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on AdButler (621)

- `archive_advertiser` — Destructive — https://policylayer.com/tools/adbutler/archive-advertiser.md
- `archive_channel` — Destructive — https://policylayer.com/tools/adbutler/archive-channel.md
- `archive_contract` — Destructive — https://policylayer.com/tools/adbutler/archive-contract.md
- `archive_email_zone` — Destructive — https://policylayer.com/tools/adbutler/archive-email-zone.md
- `archive_publisher` — Destructive — https://policylayer.com/tools/adbutler/archive-publisher.md
- `bulk_upload_remove_data_list` — Destructive — https://policylayer.com/tools/adbutler/bulk-upload-remove-data-list.md
- `bulk_upload_replace_user_db` — Destructive — https://policylayer.com/tools/adbutler/bulk-upload-replace-user-db.md
- `campaign_bulk_delete_catalog_ad_items` — Destructive — https://policylayer.com/tools/adbutler/campaign-bulk-delete-catalog-ad-items.md
- `cancel_signature_request` — Destructive — https://policylayer.com/tools/adbutler/cancel-signature-request.md
- `delete_advertiser` — Destructive — https://policylayer.com/tools/adbutler/delete-advertiser.md
- `delete_archived_campaign` — Destructive — https://policylayer.com/tools/adbutler/delete-archived-campaign.md
- `delete_archived_channel` — Destructive — https://policylayer.com/tools/adbutler/delete-archived-channel.md
- `delete_archived_contract` — Destructive — https://policylayer.com/tools/adbutler/delete-archived-contract.md
- `delete_audience` — Destructive — https://policylayer.com/tools/adbutler/delete-audience.md
- `delete_audio_creative` — Destructive — https://policylayer.com/tools/adbutler/delete-audio-creative.md
- `delete_beacon_signing_key` — Destructive — https://policylayer.com/tools/adbutler/delete-beacon-signing-key.md
- `delete_bidder` — Destructive — https://policylayer.com/tools/adbutler/delete-bidder.md
- `delete_campaign` — Destructive — https://policylayer.com/tools/adbutler/delete-campaign.md
- `delete_campaign_assignment` — Destructive — https://policylayer.com/tools/adbutler/delete-campaign-assignment.md
- `delete_catalog_ad_item` — Destructive — https://policylayer.com/tools/adbutler/delete-catalog-ad-item.md
- `delete_catalog_zone` — Destructive — https://policylayer.com/tools/adbutler/delete-catalog-zone.md
- `delete_channel` — Destructive — https://policylayer.com/tools/adbutler/delete-channel.md
- `delete_channel_zone_assignment` — Destructive — https://policylayer.com/tools/adbutler/delete-channel-zone-assignment.md
- `delete_contact` — Destructive — https://policylayer.com/tools/adbutler/delete-contact.md
- `delete_contract` — Destructive — https://policylayer.com/tools/adbutler/delete-contract.md
- `delete_contract_document` — Destructive — https://policylayer.com/tools/adbutler/delete-contract-document.md
- `delete_contract_payment` — Destructive — https://policylayer.com/tools/adbutler/delete-contract-payment.md
- `delete_contract_template` — Destructive — https://policylayer.com/tools/adbutler/delete-contract-template.md
- `delete_creative` — Destructive — https://policylayer.com/tools/adbutler/delete-creative.md
- `delete_custom_html_ad_item` — Destructive — https://policylayer.com/tools/adbutler/delete-custom-html-ad-item.md
- …and 591 more: https://policylayer.com/tools/adbutler.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=adbutler · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/adbutler
