← Files AppstackARCHIVED FILE

.codex-plugin/plugin.json

7.74 KB · Nov 12, 2026 · 19:29 UTC

↓ Download file

{
  "name": "app-6a75c6b8e8f08191848d54ae422b06b1",
  "version": "1.2.0",
  "description": "Best practices for integrating and using the Appstack mobile attribution SDKs (Swift, Kotlin, React Native, Flutter, Unity), and for using the Appstack Analytics MCP connector efficiently.",
  "author": {
    "name": "Appstack",
    "email": "support@appstack.tech",
    "url": "https://appstack.tech"
  },
  "homepage": "https://docs.appstack.tech",
  "repository": "https://github.com/appstack-tech/appstack-skills/tree/main/plugins/appstack",
  "license": "MIT",
  "keywords": [
    "appstack",
    "attribution",
    "mobile",
    "sdk",
    "ios",
    "android",
    "react-native",
    "flutter",
    "unity"
  ],
  "skills": "./skills/",
  "mcpServers": "./.mcp.json",
  "interface": {
    "displayName": "Appstack",
    "shortDescription": "Appstack SDK & analytics",
    "longDescription": "Official Appstack-authored skills: (1) integrating the Appstack mobile attribution SDKs across Swift (iOS), Kotlin (Android), React Native, Flutter, and Unity \u2014 installation, where to initialize on each platform, the event taxonomy (standard vs. custom events), enhanced app campaigns with revenue and matching parameters, partner integrations like Superwall and RevenueCat, and troubleshooting attribution and events not appearing; and (2) using the Appstack Analytics MCP connector efficiently \u2014 correct tool call order, exact Cube measure/dimension naming, and resolving an organization by name.",
    "developerName": "Appstack",
    "category": "Developer Tools",
    "capabilities": [
      "Read",
      "Write"
    ],
    "websiteURL": "https://appstack.tech/",
    "privacyPolicyURL": "https://www.appstack.tech/privacy-policy",
    "supportURL": "https://docs.appstack.tech/support",
    "termsOfServiceURL": "https://www.appstack.tech/terms",
    "defaultPrompt": [
      "Integrate or review the Appstack SDK in my app",
      "Debug why my Appstack events are not appearing",
      "Query my Appstack analytics data"
    ],
    "composerIcon": "./assets/icon.png",
    "logo": "./assets/icon.png",
    "brandColor": "#18181B"
  },
  "extensions": {
    "com.openai": {
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Account scope and metric discovery: lists the apps the signed-in account can access and the metrics it can query.",
              "prompt": "Which apps do I have in Appstack, and what kinds of metrics can I query?",
              "tools_triggered": "whoami, list_metrics",
              "expected_behavior": "whoami returns the account's apps: Debloat AI - Facial Asymmetry (6741685163), Debloat AI (com.kramerventures.debloatai) and TrainMe: Home & Gym Workout (6467795772). list_metrics returns an index with events_view and eac_cohorts_view; drilling into events_view returns measures including events_view.install, events_view.clicks and events_view.total_spend."
            },
            {
              "description": "Metrics query: installs by country over a recent date range for one app.",
              "prompt": "Show installs by country for app 6741685163 over the last 7 days.",
              "tools_triggered": "list_metrics, query_metrics",
              "expected_behavior": "query_metrics is called with events_view.install, the dimension events_view.country, the time dimension events_view.date_day, a 7-day date range and app_ids [\"6741685163\"]. The result is a non-empty table of countries with install counts, with the United States among the largest."
            },
            {
              "description": "User journey: finds users for an app, filtered by source and country, and shows one user's event timeline.",
              "prompt": "For app 6741685163, list a few organic installs from the United States, then show the full event timeline of the first one.",
              "tools_triggered": "get_user_journey_filters, list_user_journeys, get_user_journey",
              "expected_behavior": "list_user_journeys (media_source organic, country United States, small limit) returns users with install_id, latest event_name, media_source, country and event_ts. get_user_journey for the first install_id returns that user's events ordered by time (click if any, then INSTALL, then later events), with attribution fields and without raw event parameters or device identifiers."
            },
            {
              "description": "Link lifecycle on a throwaway link: create, update, read and delete a standard tracking link.",
              "prompt": "Create a link named mcp-test-link for app 6741685163 with utm_media_source mcp_test and utm_campaign mcp_test_campaign. Then change its utm_campaign to mcp_test_campaign_2 (keep utm_media_source mcp_test), show me the link, and delete it.",
              "tools_triggered": "create_link, update_link, get_link, delete_link",
              "expected_behavior": "create_link returns an appstack.link URL containing campaign_name=mcp_test_campaign. update_link returns the same link with utm_campaign mcp_test_campaign_2 and the URL updated. get_link shows the updated link. delete_link returns deleted true, after which get_link for that id returns \"Link not found\"."
            },
            {
              "description": "Workspace health: onboarding checklist, connected integrations and saved dashboards for an app's project.",
              "prompt": "Is my setup complete for app 6741685163? Show my integrations and my saved dashboards.",
              "tools_triggered": "get_onboarding_checklist, list_integrations, list_dashboards, get_dashboard",
              "expected_behavior": "get_onboarding_checklist returns is_setup_checklist_complete true with create_organization, add_app, install_sdk, connect_integration and launch_campaign all true. list_integrations returns the connected integrations with their status. list_dashboards returns the project's dashboards (Enhanced app campaigns and Overview) and get_dashboard returns the widgets with measures and dimensions as full events_view.* names."
            }
          ],
          "negative": [
            {
              "description": "Another vendor's analytics: Appstack has no connection to AppsFlyer or Adjust, so the plugin should not be used.",
              "prompt": "Pull last week's installs and cost per install for my app from AppsFlyer and compare them with what Adjust reports."
            },
            {
              "description": "Managing campaigns on ad networks: the plugin only manages Appstack tracking links and cannot change campaigns or budgets on TikTok or Meta.",
              "prompt": "Pause my underperforming TikTok campaigns and raise the daily budget on my best Meta ad set by 20%."
            },
            {
              "description": "Account administration: the plugin cannot invite members, change plans or rotate SDK API keys.",
              "prompt": "Invite my colleague to my Appstack organization, upgrade our plan, and rotate our SDK API key."
            }
          ]
        },
        "demo_recording_url": "https://www.youtube.com/watch?v=GfNOv48iTzw"
      },
      "publication": {
        "release_notes": "Connect your Appstack account to ask questions about your mobile attribution data in plain language.\n- Query ad spend, installs and other metrics by day, country, network or campaign, over up to 60 days.\n- Look up individual user journeys, from the click to the install to later events.\n- Create, update and delete tracking links.\n- Check your integrations and onboarding progress, and read your saved dashboards.\n- Report suspicious data to the Appstack team from the conversation.\n- Built-in guidance for integrating the Appstack SDK on Swift, Kotlin, React Native, Flutter and Unity.\nRequires an Appstack account with MCP access enabled."
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: 7c4797a10db0e63d457dd117540c357e0d7fc571b2c64419ee673a728a1cfb11