Skip to main content
Glama
erayendes

Heimdall App Store Connect MCP

pricing__set_subscription_price

Set or change a subscription price for one country in a single step. Enter app, subscription product ID, country code, and price; the tool finds the Apple price point and applies it.

Instructions

Change or set a subscription price in one territory (country) in a single step. Give it the app (name, bundle ID or Apple ID), the subscription (product ID or name), the territory (e.g. TUR, USA) and the price (e.g. "99.99") — it resolves the app, subscription and Apple price point internally and performs the one write. Use this instead of chaining apps__list / subscription_groups / price_points calls when the goal is simply "set/raise/lower the price".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
appYesApp name, bundle ID (com.example.app) or numeric Apple ID.
priceYesCustomer price in the territory's currency, e.g. "99.99". Must match an Apple price point exactly; if it does not exist, the nearest available prices are suggested.
territoryYesTerritory (country) code, e.g. TUR, USA, DEU.
start_dateNoOptional start date (YYYY-MM-DD). Omit to apply as soon as possible.
subscriptionYesSubscription product ID (e.g. com.example.pro.monthly) or its reference name.
preserve_current_priceYesREQUIRED decision about existing subscribers: true = they keep their current price; false = they WILL be moved to the new price. Ask the user if unsure.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and idempotentHint=false, so the description is not responsible for disclosing mutation. The description adds value by noting that the tool 'resolves the app, subscription and Apple price point internally' and 'performs the one write', which clarifies it performs a single atomic write rather than requiring multiple steps. It also mentions that if the price point does not exist, nearest prices are suggested (in the schema), but the description itself doesn't cover that. However, it doesn't disclose potential side effects on existing subscribers beyond the schema's preserve_current_price parameter. Overall, it adds useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action, and contains no filler. The first sentence clearly states what it does; the second gives a usage recommendation. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 6 params and no output schema, the description covers the core inputs and behavior well: it lists the necessary inputs, notes internal resolution, and gives explicit usage guidance. It does not mention the optional start_date or what the response contains, but the schema covers start_date and the tool is straightforward enough that these are not critical gaps. A 4 reflects that it is nearly complete but could briefly mention the return or the existence of the start_date parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats parameter clarifications already present in the schema (app can be name/bundle ID/Apple ID, price format, territory code example) but does not add significant new semantics. It omits start_date and preserve_current_price from the description, though these are well-documented in the schema. Since the schema already explains each parameter thoroughly, the description neither hurts nor greatly helps here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Change or set'), a clear resource ('subscription price'), and scope ('in one territory (country) in a single step'). It also distinguishes the tool from the sibling read operation by emphasizing 'one write' and by referencing the alternative of chaining apps__list / subscription_groups / price_points calls. This is far beyond a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool: 'Use this instead of chaining apps__list / subscription_groups / price_points calls when the goal is simply "set/raise/lower the price".' It also provides context that it resolves app, subscription, and price point internally, which helps the agent choose it over manual chaining. No exclusions are stated, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/erayendes/app-store-connect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server