{
  "$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
  "name": "uk.co.sonderlabs/beastdash",
  "title": "BeastDash",
  "version": "1.0.0",
  "description": "Sonder's campaigns, Trend Lab and Scout for one workspace, as the signed-in member.",
  "websiteUrl": "https://sonderlabs.co.uk",
  "serverInfo": {
    "name": "BeastDash",
    "version": "1.0.0"
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://sonderlabs.co.uk/mcp"
  },
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://sonderlabs.co.uk/mcp",
      "supportedProtocolVersions": [
        "2026-07-28",
        "2025-11-25",
        "2025-06-18",
        "2025-03-26"
      ]
    },
    {
      "type": "streamable-http",
      "url": "https://{workspace}.sonderlabs.co.uk/mcp",
      "variables": {
        "workspace": {
          "description": "Your Sonder workspace's address label: the part before .sonderlabs.co.uk in the address you use to open Sonder (for example demo). Each workspace is also its own MCP server with its own sign-in.",
          "isRequired": true,
          "format": "string",
          "placeholder": "demo"
        }
      },
      "supportedProtocolVersions": [
        "2026-07-28",
        "2025-11-25",
        "2025-06-18",
        "2025-03-26"
      ]
    }
  ],
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "search_trends",
      "description": "Search Trend Lab for a trend or format by name or description, or @handle for a creator's trends.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "check_link",
      "description": "Check a TikTok, Instagram Reel or YouTube Shorts link: whether the post is part of a trend, which one, and how the post itself is doing.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "get_trend",
      "description": "One trend's card: what creators do, its stage (climbing, at its peak, fading, quiet), timeline and examples.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "trending_now",
      "description": "The Trending now feed: the formats many creators are adopting right now.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "outliers",
      "description": "Posts doing far better than their creator's usual: views, the creator's usual views and the multiple.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "brands_board",
      "description": "The brands sponsoring creators: sponsored posts, creators and views per brand.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "brand_detail",
      "description": "One brand's sponsorships: its sponsored posts, the creators it works with, and its weekly sponsored posts.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "brand_spend_moves",
      "description": "Where brands are moving sponsorship: platforms, creator sizes and niches gaining or losing share.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "rising_creators",
      "description": "Creators breaking out this week, with followers, follower growth, views this week and usual views.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "track_trend",
      "description": "Start tracking a trend for the signed-in member, as the Track button does.",
      "annotations": {
        "readOnlyHint": false
      }
    },
    {
      "name": "add_to_board",
      "description": "Pin a tracked trend, a post (by link) or a creator to one of the member's Trend Lab boards.",
      "annotations": {
        "readOnlyHint": false
      }
    },
    {
      "name": "rate_trend",
      "description": "Give the team's verdict on a trend: good for us, not for us, or not a format.",
      "annotations": {
        "readOnlyHint": false
      }
    },
    {
      "name": "list_campaigns",
      "description": "List the workspace's campaigns with their headline totals.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "campaign_summary",
      "description": "A campaign's KPIs as its dashboard shows them: total, earned and owned views, posts, creators and engagements.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "campaign_posts",
      "description": "A campaign's posts with filters (status, platform, owned or earned), most viewed first by default.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "campaign_creators",
      "description": "The creators who posted in a campaign, most viewed first.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "campaign_brands",
      "description": "The brands that appear in a campaign's posts: how often each is said, written or seen on screen.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "campaign_sentiment",
      "description": "How people feel about a campaign: the sentiment of posts and on-topic comments, and why.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "campaign_moments",
      "description": "The clip heatmap: for each source video people clip, which moments get re-posted most.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "refresh_campaign",
      "description": "Start a refresh of a campaign, as the dashboard's Refresh now button does.",
      "annotations": {
        "readOnlyHint": false
      }
    },
    {
      "name": "create_campaign",
      "description": "Set up a new campaign tracking posts about a topic, creator or brand.",
      "annotations": {
        "readOnlyHint": false
      }
    },
    {
      "name": "scout_creator",
      "description": "Scout's A to F grade of one creator, each factor's grade with why, channel stats and recent videos.",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "search",
      "description": "Search the workspace's trends and campaigns as documents (for apps such as ChatGPT deep research).",
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "fetch",
      "description": "The full document for an id that search returned: a trend's card or a campaign's KPIs.",
      "annotations": {
        "readOnlyHint": true
      }
    }
  ],
  "authentication": {
    "required": true,
    "schemes": [
      "oauth2"
    ],
    "protectedResourceMetadata": "https://sonderlabs.co.uk/.well-known/oauth-protected-resource",
    "documentation": "https://sonderlabs.co.uk/auth.md"
  },
  "instructions": "Docs: https://docs.sonderlabs.co.uk/mcp. Connect to https://sonderlabs.co.uk/mcp. Sign-in is OAuth 2.1 with PKCE: the member says which workspace, signs in to it and approves the connection there, and every tool then runs in that workspace with that member's dashboard permissions. Each workspace's own address, https://<workspace>.sonderlabs.co.uk/mcp, works too. Tools depend on the areas the workspace has switched on; list them with tools/list."
}
