Skip to main content
Glama

Apple Developer MCP by Nova (CIVAI)

set_app_privacy

Set App Privacy data-collection declarations (iris appDataUsages): pass app_privacy_profile=contact or analytics for the built-in presets, or app_privacy_profile=custom with an inline declarations JSON array when the presets don't match what the app actually collects. See SKILLS.md App Privacy section for the preset definitions.

Input Schema

NameRequiredDescriptionDefault
app_privacy_profileNo
publish_app_privacyNotrue
replace_app_privacyNo
notification_messageNoShort user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names.
app_privacy_declarations_jsonNoRequired when app_privacy_profile=custom. Inline JSON: {"declarations":[{"category":"USER_ID","purpose":"APP_FUNCTIONALITY","dataProtection":"DATA_LINKED_TO_YOU"},...]} or same array without wrapper. See capture SKILLS.md App Privacy section for presets vs custom. Prefer presets when they fit; do not use server file paths on Nova.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the underlying data it writes (iris appDataUsages) and the preset-vs-inline-JSON branching. It says nothing about whether an existing declaration set is overwritten, how publish_app_privacy affects publication, or what permissions/auth are needed — all material for an unpublishable mutation. Partial disclosure, but well short of what a zero-annotation mutation tool needs.

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

Conciseness4/5

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

Three sentences, front-loaded with the resource and action, then the preset-vs-custom decision, then a pointer to docs. Little waste; the only soft spot is deferring preset definitions to SKILLS.md rather than summarizing them in a clause.

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

Completeness3/5

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

For a five-parameter, zero-annotation mutation with no output schema, the description is thin: it omits the behavior of three parameters and outsources the actual preset definitions to an external SKILLS.md section the agent may not have in context. It is enough to attempt a call with a preset, but not enough to call it correctly in custom or publish scenarios.

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

Parameters2/5

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

Schema coverage is only 40%, so the description should compensate, but it only discusses app_privacy_profile and app_privacy_declarations_json (the latter already fully documented in the schema) and leaves publish_app_privacy, replace_app_privacy, and notification_message untouched. Worse, it names preset values 'contact' and 'analytics' that do not exist in the enum ('collects_contact', 'collects_analytics'), which can produce an invalid call.

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

Purpose4/5

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

The description states a specific verb and resource — setting App Privacy data-collection declarations via the iris appDataUsages field — which is unmistakable and clearly distinct from siblings like set_age_rating or set_export_compliance. It does not explicitly name a sibling to contrast against, but the resource is unique enough that an agent can route to it without ambiguity.

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

Usage Guidelines3/5

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

There is real conditional guidance: use a preset when it fits, use custom 'when the presets don't match what the app actually collects.' However, that guidance only covers which parameter value to pick, not when to call this tool at all, what prerequisites exist (login, existing app), or when not to call it. The cited values 'contact or analytics' also don't match the schema enum ('collects_contact', 'collects_analytics'), which undermines the guidance as written.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources