Appy smart links

Create and edit Appy smart links for apps, and read their click and install stats.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
85%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'get_link_timeseries' description lacks action verb在 get_link_timeseries 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,150token 数(工具定义)
~1.6 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.68%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "smart-links": {
      "url": "https://mcp.appy.to"
    }
  }
}

远程端点

https://mcp.appy.tostreamable-http

它能做什么

工具清单

工具(11)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟡create_link(slug, fallbackUrl, title, deeplinkUrl, targets, ...)

Create a smart link. Only fallbackUrl is required; add targets for app stores, countryRules for per-country Android stores, a deeplinkUrl to open the installed app, a socialPreview for how the link looks when shared, and a slug for a readable URL. Returns the new link with its public url.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "custom slug of 5 to 64 lowercase letters, digits or hyphens; omit for a random one"
    },
    "fallbackUrl": {
      "type": "string",
      "description": "http(s) page for desktop visitors and anyone without a matching target"
    },
    "title": {
      "type": "string",
      "description": "name shown in the dashboard, up to 200 characters"
    },
    "deeplinkUrl": {
      "type": "string",
      "description": "in-app URL that opens the installed app, for example acme://product/42"
    },
    "targets": {
      "type": "object",
      "description": "store or app page URL per platform; allowed keys: iphone, ipad, android, huawei, samsung (Galaxy Store), xiaomi (GetApps), rustore (RuStore, used for Android visitors in Russia)",
      "additionalProperties": {
        "type": "string"
      }
    },
    "countryRules": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code of the visitor, for example RU; use GB for the United Kingdom"
          },
          "url": {
            "type": "string",
            "description": "http(s) store or page URL for Android visitors from that country"
          }
        },
        "required": [
          "country",
          "url"
        ],
        "additionalProperties": false
      },
      "description": "up to 50 rules, one per country, that send Android visitors from that country to their own URL; huawei, samsung and xiaomi targets still win, and a rule for RU wins over the rustore target"
    },
    "parameterForwarding": {
      "type": "boolean",
      "description": "pass the query string of each click on to the destination (Business and Enterprise)"
    },
    "socialPreview": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "headline of the preview card, up to 120 characters"
        },
        "description": {
          "type": "string",
          "description": "line under the headline, up to 300 characters"
        },
        "imageUrl": {
          "type": "string",
          "description": "https URL of the preview image, ideally 1200 x 630 pixels"
        }
      },
      "description": "title, description and image that WhatsApp, iMessage, Slack, X, LinkedIn and other apps show when the link is shared; leave it out to show the destination's own preview",
      "required": [
        "title"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "fallbackUrl"
  ],
  "additionalProperties": false
}
🔴delete_link(slug)

Delete a link. It stops redirecting immediately, so confirm with the user first.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "the link slug, the last part of the link URL"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_account

Plan of the account behind the API key, the features it includes (api, mcp, sdk), its link limit (null means unlimited) and how many links it has.

输入模式

{
  "type": "object",
  "additionalProperties": false
}
🟢get_account_stats(start, end)

Clicks across all of the account's links over a date range, with the same daily series and breakdowns as get_link_stats.

输入模式

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "description": "first day, YYYY-MM-DD in UTC; default 29 days before end"
    },
    "end": {
      "type": "string",
      "description": "last day, YYYY-MM-DD in UTC; default today"
    }
  },
  "additionalProperties": false
}
🟢get_link(slug)

Read one link by slug: its public url, fallbackUrl, deeplinkUrl, per-platform targets, country rules and settings.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "the link slug, the last part of the link URL"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_link_stats(slug, start, end)

Clicks for one link over a date range: total and unique clicks, clicks per day, and breakdowns by country, operating system, device, browser, referrer and outcome (app store, app opened, fallback page).

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "the link slug"
    },
    "start": {
      "type": "string",
      "description": "first day, YYYY-MM-DD in UTC; default 29 days before end"
    },
    "end": {
      "type": "string",
      "description": "last day, YYYY-MM-DD in UTC; default today"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_link_timeseries(slug, start, end)

Clicks per day for one link over a date range, without the breakdowns. Use it for trends and charts.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "the link slug"
    },
    "start": {
      "type": "string",
      "description": "first day, YYYY-MM-DD in UTC; default 29 days before end"
    },
    "end": {
      "type": "string",
      "description": "last day, YYYY-MM-DD in UTC; default today"
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_top_links(start, end, limit)

The account's links ranked by clicks over a date range, best first. Use it to answer which links or campaigns performed best.

输入模式

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "description": "first day, YYYY-MM-DD in UTC; default 29 days before end"
    },
    "end": {
      "type": "string",
      "description": "last day, YYYY-MM-DD in UTC; default today"
    },
    "limit": {
      "type": "integer",
      "description": "how many links to return, 1 to 100, default 10"
    }
  },
  "additionalProperties": false
}
🟢list_domains

The account's custom domains (for example go.acme.com) with their status (pending, verifying, active, error), the DNS record to add, which domain is the default for link URLs, and how many domains the plan allows (limits.used and limits.max). Business and Enterprise plans.

输入模式

{
  "type": "object",
  "additionalProperties": false
}
🟢list_links(search, limit, offset)

List the account's links, newest first, with their destinations and targets. Use search to find a link by slug or title.

输入模式

{
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "description": "only links whose slug or title contains this text"
    },
    "limit": {
      "type": "integer",
      "description": "page size from 1 to 100, default 20"
    },
    "offset": {
      "type": "integer",
      "description": "number of links to skip when paging"
    }
  },
  "additionalProperties": false
}
🔴update_link(slug, fallbackUrl, title, deeplinkUrl, targets, ...)

Change an existing link. Only the fields you send change; the slug itself cannot be changed. Returns the updated link.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "slug of the link to change"
    },
    "fallbackUrl": {
      "type": "string",
      "description": "new fallback page"
    },
    "title": {
      "type": "string",
      "description": "new title; an empty string removes it"
    },
    "deeplinkUrl": {
      "type": "string",
      "description": "new in-app URL; an empty string removes it"
    },
    "targets": {
      "type": "object",
      "description": "targets to change per platform (iphone, ipad, android, huawei, samsung, xiaomi, rustore); an empty string removes that platform, platforms not listed stay as they are",
      "additionalProperties": {
        "type": "string"
      }
    },
    "countryRules": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code of the visitor, for example RU; use GB for the United Kingdom"
          },
          "url": {
            "type": "string",
            "description": "http(s) store or page URL for Android visitors from that country"
          }
        },
        "required": [
          "country",
          "url"
        ],
        "additionalProperties": false
      },
      "description": "the complete new list of country rules; it replaces the current list, an empty list removes every rule, leave it out to keep the rules as they are"
    },
    "parameterForwarding": {
      "type": "boolean",
      "description": "turn parameter forwarding on or off"
    },
    "socialPreview": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "headline of the preview card, up to 120 characters"
        },
        "description": {
          "type": "string",
          "description": "line under the headline, up to 300 characters"
        },
        "imageUrl": {
          "type": "string",
          "description": "https URL of the preview image, ideally 1200 x 630 pixels"
        }
      },
      "description": "the complete new social preview; it replaces the current one, an empty title removes the preview, leave it out to keep it; send the current imageUrl back to keep an image uploaded in the dashboard",
      "required": [
        "title"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本11 个工具