# asc_post_subscription_promotional_offer

Create a promotional offer with name + offerCode + mode + duration plus all per-territory prices in one atomic POST. Apple caps active promo offers at 10 per subscription; this tool pre-flights the count and refuses if at the limit.

Agent View of the PolicyLayer registry record for `asc_post_subscription_promotional_offer`. HTML page: https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-post-subscription-promotional-offer

## Facts

- Tool: `asc_post_subscription_promotional_offer`
- Server: Appstoreconnect Mcp (`@akoskomuves/appstoreconnect-mcp`) — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp.md
- Install: `npx -y @akoskomuves/appstoreconnect-mcp`
- Homepage: https://github.com/akoskomuves/appstoreconnect-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": "asc_post_subscription_promotional_offer",
    "arguments": {}
  }
}
```

## Why asc_post_subscription_promotional_offer is rated Medium

This tool creates new financial promotional offers that affect pricing and customer subscriptions. While it creates rather than deletes data (hence Write not Destructive), it directly manipulates pricing and promotional terms that impact revenue. The high severity reflects that promotional offers affect financial terms, customer pricing tiers, and subscription economics.

From the tool's own definition: "Tool creates a promotional offer via POST operation with name, offerCode, mode, and pricing parameters. Description states 'Create a promotional offer' and performs an atomic POST action that modifies subscription promotional offers."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on Appstoreconnect Mcp (277)

- `asc_delete_accessibility_declaration` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-accessibility-declaration.md
- `asc_delete_alternative_distribution_domain` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-alternative-distribution-domain.md
- `asc_delete_alternative_distribution_key` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-alternative-distribution-key.md
- `asc_delete_analytics_report_request` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-analytics-report-request.md
- `asc_delete_app_custom_product_page` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-custom-product-page.md
- `asc_delete_app_custom_product_page_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-custom-product-page-localization.md
- `asc_delete_app_custom_product_page_version` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-custom-product-page-version.md
- `asc_delete_app_event` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-event.md
- `asc_delete_app_event_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-event-localization.md
- `asc_delete_app_event_screenshot` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-event-screenshot.md
- `asc_delete_app_event_video_clip` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-event-video-clip.md
- `asc_delete_app_info_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-info-localization.md
- `asc_delete_app_preview` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-preview.md
- `asc_delete_app_preview_set` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-preview-set.md
- `asc_delete_app_screenshot` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-screenshot.md
- `asc_delete_app_screenshot_set` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-screenshot-set.md
- `asc_delete_app_store_version` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-store-version.md
- `asc_delete_app_store_version_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-store-version-localization.md
- `asc_delete_app_store_version_phased_release` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-app-store-version-phased-release.md
- `asc_delete_beta_app_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-app-localization.md
- `asc_delete_beta_build_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-build-localization.md
- `asc_delete_beta_feedback_crash_submission` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-feedback-crash-submission.md
- `asc_delete_beta_feedback_screenshot_submission` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-feedback-screenshot-submission.md
- `asc_delete_beta_group` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-group.md
- `asc_delete_beta_recruitment_criterion` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-recruitment-criterion.md
- `asc_delete_beta_tester` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-beta-tester.md
- `asc_delete_customer_review_response` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-customer-review-response.md
- `asc_delete_experiment_treatment` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-experiment-treatment.md
- `asc_delete_iap_localization` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-iap-localization.md
- `asc_delete_marketplace_search_detail` — Destructive — https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-mcp/asc-delete-marketplace-search-detail.md
- …and 247 more: https://policylayer.com/tools/io-github-akoskomuves-appstoreconnect-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=io-github-akoskomuves-appstoreconnect-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-akoskomuves-appstoreconnect-mcp
