Skip to main content
Glama

AppPage.net - app websites & store data

Set App Links files

set_app_links
Destructive

Write the files that let links to your site open your app: Apple's apple-app-site-association (Universal Links) and Android's assetlinks.json (App Links), served under https://{site}/.well-known/. Give ios_app_ids (TEAMID.bundle.id) and android_package with android_sha256 fingerprints, and they are built for you; or pass a whole file as apple_json / android_json. A platform you leave out keeps its file.

Input Schema

NameRequiredDescriptionDefault
siteYesYour site: its address ("habitly" for habitly.apppage.net) or id, as list_my_sites returns.
ios_pathsNoPaths that open the app; ["*"] (default) for all.
apple_jsonNoA whole apple-app-site-association file instead; "" removes it.
ios_app_idsNoApp IDs: your Apple team ID, a dot and the bundle id, e.g. ABCDE12345.com.example.app.
android_jsonNoA whole assetlinks.json file instead; "" removes it.
android_sha256NoSHA-256 signing certificate fingerprints (Play Console › App integrity), AA:BB:... form.
android_packageNoThe Android package name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations flag destructiveHint=true and idempotentHint=false; the description adds real context beyond that by disclosing the preservation rule ('a platform you leave out keeps its file') and the ""-removes-it behaviour for raw JSON. It stops short of saying what happens when both a raw file and the structured ids are supplied, or what a failed write leaves behind.

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?

Front-loaded with the resource being written, then the two modes, then the preservation rule — every clause carries information. The middle sentence is a long run-on that bundles inputs, outputs and formatting, which costs a little readability.

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 destructive, non-idempotent write with 7 parameters and no output schema, the description covers the modes and the preservation rule but leaves gaps: interaction/precedence between apple_json and ios_app_ids, and the result of the call. Adequate but not fully complete for a mutating tool.

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 reinforces format hints (TEAMID.bundle.id, sha256 fingerprints) that already live in the schema, and only marginally adds the either/or relationship between apple_json and ios_app_ids.

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?

States a specific verb and resource (write the Universal Links / App Links files under /.well-known/) and names the concrete artifacts (apple-app-site-association, assetlinks.json). This clearly separates it from neighbours like set_app_ads_txt or set_remote_config, which write different files.

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

Usage Guidelines4/5

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

Explicitly lays out the two usage modes: supply ios_app_ids / android_package + android_sha256 and the files are built, or pass a whole file via apple_json / android_json. It also states the leave-out rule. It does not route against sibling tools (e.g. set_app_ads_txt) or state prerequisites, so not a 5.

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