SnapVisor usage report
Turn the account's analytics and membership into a short, factual report.
Connecting and calling the tools
Every operation in this skill comes from the snapvisor MCP server, the SnapVisor connector. The server defaults to Code Mode, so the operations below are written as the external_* functions you call inside snapvisor:execute_typescript. On a server set to the per-tool surface, the same operation is listed as snapvisor:<name> without the external_ prefix, for example snapvisor:listBuilds.
- Only
snapvisor:search_toolsandsnapvisor:execute_typescriptlisted (Code Mode, the default): callsnapvisor:search_toolsfirst, then call each tool insidesnapvisor:execute_typescriptasexternal_<tool>(for exampleexternal_listBuilds); the program mustreturnits result. Scopes, confirmations and gates are identical on both surfaces. - Operations listed by name: call them directly, for example
snapvisor:listBuilds. - "Tool not found": switch to the Code Mode route instead of retrying the direct call. If
snapvisor:search_toolsdoes not return the tool either, its OAuth scope was not granted; the user reconnects SnapVisor and approves that scope. - No
snapvisortools at all: SnapVisor is not connected yet. Install the SnapVisor power, which adds the server; it signs in with OAuth on first use.
Tools you will use
The snapvisor MCP server has two tools: snapvisor:search_tools (call it first, for example with analytics, member, project) and snapvisor:execute_typescript (run a short program calling the declared external_* functions; the program must return its result).
If the connection lists the operations by name instead (the per-tool surface), call them directly without the external_ prefix.
Operations this skill uses (confirm with snapvisor:search_tools):
external_getMe: the accounts this connection can reach, with theirslugand whether MCP access is included.external_getAccountAnalytics: build and screenshot counts for an account,froma date (optionalto), grouped byday,weekormonth, optionally for named projects.external_listProjects: the account's projects.external_listAccountMembersandexternal_listAccountInvites: members with their level, and pending invites. These need theaccount:adminscope.
Workflow
- Call
external_getMeto get the account slug. If the connection reaches several accounts, ask which one. - Agree the window (default: the current calendar month, grouped by
week). - In one program, fetch
external_getAccountAnalyticsandexternal_listProjectswithawait Promise.all. Add the member and invite lists if the user asked about the team. - Report totals for the window, the trend per period in a small table, and the per-project split when available. For the team, list members by level and pending invites with their dates.
Code Mode pattern
const me = await external_getMe({});
const accountSlug = me.accounts[0].slug;
const [analytics, projects] = await Promise.all([
external_getAccountAnalytics({ accountSlug, from: "2026-09-01", groupBy: "week" }),
external_listProjects({ accountSlug }),
]);
return { analytics, projects };
If a call throws SCOPE_MISSING or a 403, the connection lacks that scope (member lists need account:admin). Say which scope is missing and that the user can reconnect with it.
Rules
- Report only numbers the operations returned. Do not estimate costs or compare against other teams.
- This skill only reads. Never call
external_updateAccount,external_setAccountMemberLevel,external_removeAccountMember,external_createAccountInvites, orexternal_cancelAccountInvitefrom it. Do not invite, remove, or change members from here; those changes belong in the SnapVisor app or in an explicit request the user confirms.
