# Favorited Agency Dashboard — MCP server The Favorited Agency Dashboard for AI agents: roster, live streams, campaigns, payouts and members of a creator agency, acting as a signed-in member within their role. - Endpoint: `https://mcp.agency.preprod.favorited.app/mcp` (Streamable HTTP; protocol 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07) - Authentication: OAuth 2.1 at `https://id.fav.com` — [auth.md](https://mcp.agency.preprod.favorited.app/auth.md) - Clients: [how to connect from Claude, ChatGPT, Cursor, VS Code, Claude Code and more](https://mcp.agency.preprod.favorited.app/docs/clients) - Machine-readable: [server card](https://mcp.agency.preprod.favorited.app/.well-known/mcp/server-card.json) · [llms.txt](https://mcp.agency.preprod.favorited.app/llms.txt) · [skills](https://mcp.agency.preprod.favorited.app/.well-known/agent-skills/index.json) ## Quick start 1. In Claude: Settings → Connectors → Add custom connector → paste the endpoint. In Claude Code: `claude mcp add --transport http favorited-agency https://mcp.agency.preprod.favorited.app/mcp`. In Cursor / VS Code: the one-click links on the clients page. 2. Sign in with your Favorited account, pick the agency, and choose what the agent may access. 3. Ask: "Using the Favorited Agency tools, give me an overview of the agency's last 7 days." ## Tools (13) | Tool | Class | What it does | | --- | --- | --- | | `whoami` | read | Report who this connection acts as: the member, the agency, the role, the effective permission ids (role ∩ consent ceiling ∩ scope), the token scopes and the features turned on. Call first when unsure what you may do. | | `ping` | read | Connectivity and authentication check: answers pong with the server version and the acting agency id. | | `agency.overview` | read | The Overview page in one call: today's highlights (revenue, active creators, streams, gifters, each with its change vs the previous period) and the last-30-day series for one metric. Money carries units (usd or coins); usd is absent when the member may not see it. | | `creators.list` | read | The Creators page: the roster with revenue month-to-date, managers and join date. tab picks the view (all, roster, active, inactive, l4, dropped); filter matches name or handle; sort/dir order the page. Returns the page and a cursor. | | `creators.get` | read | One creator as the dashboard shows them: profile, roster context (on roster, since, managers), the stats for a window (7d, 30d, 90d) and the 24-month earning history. | | `campaigns.list` | read | Incentive campaigns the agency can see: status, dates, targets, whether the rules are accepted and (when the feature is on) live progress marked estimated. | | `campaigns.get` | read | One campaign with its cohort: the creators it covers, their progress, and the projected award — always estimated until the grant pass. A campaign whose rules are not accepted returns rules_not_accepted: an owner must accept in the dashboard; agents never accept rules. | | `payouts.summary` | read | The Payouts page in one call: the bank connection state, pending payouts and upcoming scheduled payouts with their statuses. Requires the financial permissions; otherwise insufficient_permission. | | `invites.pending` | read | Creator applications in process: who applied through the invite code, their stage (verified, streamed, decided) and what is waiting on the agency. | | `agency.search` | read | Search the catalog of everything the dashboard can do (≈55 actions: reads, writes and destructive actions across overview, creators, recruiting, campaigns, events, payouts and agency admin). Returns summaries with accessible (whether the acting member may run it) and a reason when not. Use before agency.execute. | | `agency.describe` | read | One catalog action in full: its parameter schema, the REST equivalent, examples, class, required permission and whether the acting member may run it (with the reason when not). | | `agency.execute` | write | Run any catalog action by address with its parameters. Reads run directly. Writes and destructive actions require the Write scope, the member's permission, write access enabled for the account, and confirm: true — without confirm the tool asks for confirmation first (never guess confirm: true on the user's behalf). Destructive actions run exactly once. | | `agency.get` | read | Fetch any documented GET route of the dashboard API by path (the allow-list is the OpenAPI document), for reads the front-door tools do not cover. Query parameters go in query. | The catalog behind `agency.search` / `agency.describe` / `agency.execute` holds 56 actions: agency (14), campaigns (4), creators (14), events (8), recruiting (6), overview (5), payouts (5). ## Scopes and permissions - `agency:mcp:read` — every read tool and read action. `agency:mcp:write` — writes and destructive actions through `agency.execute`, always behind a confirmation. `offline_access` — a refresh token. - Scopes layer on top of the member's dashboard permissions and the consent ceiling they chose: an agent can never do what the member cannot, and never more than they consented to. Write access is additionally a per-agency setting; when it is off, write tools stay listed and marked not enabled. ## Audit Every action lands in the agency's Activity log as the member, marked as done through an agent with the client's name. Members disconnect agents under Settings → Access → Connected apps. ## In the browser (WebMCP) Signed-in dashboard pages at https://id.fav.com register the same tools with the browser through `navigator.modelContext` when the agency has it enabled — a browser-native agent acts within the member's session, no setup. ## Not offered Accepting campaign rules, minting service accounts, changing your own role, staff surfaces, a public REST API. See [auth.md](https://mcp.agency.preprod.favorited.app/auth.md) for what authentication does not offer.