Update Site Config
rybbit_update_site_configModify tracking settings for a Rybbit Analytics site to control data collection, including IP tracking, session replay, error monitoring, and user interaction events.
Instructions
Update configuration for an existing Rybbit site. Toggle tracking features like IP tracking, session replay, error tracking, button clicks, etc.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Site ID (numeric ID or domain identifier) | |
| public | No | Make site stats publicly accessible | |
| saltUserIds | No | Salt user IDs for privacy | |
| blockBots | No | Block known bots from tracking | |
| trackIp | No | Track visitor IP addresses | |
| trackErrors | No | Track JavaScript errors | |
| trackOutbound | No | Track outbound link clicks | |
| trackUrlParams | No | Track URL parameters | |
| trackInitialPageView | No | Track initial page view automatically | |
| trackSpaNavigation | No | Track SPA navigation events | |
| trackButtonClicks | No | Track button click events | |
| trackCopy | No | Track text copy events | |
| trackFormInteractions | No | Track form interaction events | |
| sessionReplay | No | Enable session replay recording | |
| webVitals | No | Track Core Web Vitals metrics |
Implementation Reference
- src/tools/config.ts:294-335 (handler)Handler function for rybbit_update_site_config that updates site configuration via a PUT request.
async ({ siteId, ...config }) => { try { // Filter out undefined values const body: Record<string, unknown> = {}; for (const [key, value] of Object.entries(config)) { if (value !== undefined) { body[key] = value; } } if (Object.keys(body).length === 0) { return { content: [ { type: "text" as const, text: "No configuration changes provided. Specify at least one setting to update.", }, ], }; } const data = await client.put<{ success: boolean; config: Record<string, unknown> }>( `/sites/${siteId}/config`, body ); return { content: [ { type: "text" as const, text: truncateResponse(data), }, ], }; } catch (err) { const message = err instanceof Error ? err.message : String(err); return { content: [{ type: "text" as const, text: `Error: ${message}` }], isError: true, }; } } - src/tools/config.ts:270-286 (schema)Input schema definition for rybbit_update_site_config.
inputSchema: { siteId: siteIdSchema, public: z.boolean().optional().describe("Make site stats publicly accessible"), saltUserIds: z.boolean().optional().describe("Salt user IDs for privacy"), blockBots: z.boolean().optional().describe("Block known bots from tracking"), trackIp: z.boolean().optional().describe("Track visitor IP addresses"), trackErrors: z.boolean().optional().describe("Track JavaScript errors"), trackOutbound: z.boolean().optional().describe("Track outbound link clicks"), trackUrlParams: z.boolean().optional().describe("Track URL parameters"), trackInitialPageView: z.boolean().optional().describe("Track initial page view automatically"), trackSpaNavigation: z.boolean().optional().describe("Track SPA navigation events"), trackButtonClicks: z.boolean().optional().describe("Track button click events"), trackCopy: z.boolean().optional().describe("Track text copy events"), trackFormInteractions: z.boolean().optional().describe("Track form interaction events"), sessionReplay: z.boolean().optional().describe("Enable session replay recording"), webVitals: z.boolean().optional().describe("Track Core Web Vitals metrics"), }, - src/tools/config.ts:264-293 (registration)Tool registration for rybbit_update_site_config.
server.registerTool( "rybbit_update_site_config", { title: "Update Site Config", description: "Update configuration for an existing Rybbit site. Toggle tracking features like IP tracking, session replay, error tracking, button clicks, etc.", inputSchema: { siteId: siteIdSchema, public: z.boolean().optional().describe("Make site stats publicly accessible"), saltUserIds: z.boolean().optional().describe("Salt user IDs for privacy"), blockBots: z.boolean().optional().describe("Block known bots from tracking"), trackIp: z.boolean().optional().describe("Track visitor IP addresses"), trackErrors: z.boolean().optional().describe("Track JavaScript errors"), trackOutbound: z.boolean().optional().describe("Track outbound link clicks"), trackUrlParams: z.boolean().optional().describe("Track URL parameters"), trackInitialPageView: z.boolean().optional().describe("Track initial page view automatically"), trackSpaNavigation: z.boolean().optional().describe("Track SPA navigation events"), trackButtonClicks: z.boolean().optional().describe("Track button click events"), trackCopy: z.boolean().optional().describe("Track text copy events"), trackFormInteractions: z.boolean().optional().describe("Track form interaction events"), sessionReplay: z.boolean().optional().describe("Enable session replay recording"), webVitals: z.boolean().optional().describe("Track Core Web Vitals metrics"), }, annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, },