configure-watcher
Monitor and automatically update Claude for Desktop and Cursor configuration files when changes occur, ensuring development environments stay synchronized.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| watchClaude | No | Whether to watch Claude for Desktop config | |
| watchCursor | No | Whether to watch Cursor config | |
| claudeConfigPath | No | Path to Claude for Desktop config file | |
| cursorConfigPath | No | Path to Cursor config file |
Implementation Reference
- src/tools/watcher-tools.ts:19-81 (registration)Registers the configure-watcher tool with MCP server, including schema and inline handler function.server.tool( "configure-watcher", { watchClaude: z.boolean().optional().describe("Whether to watch Claude for Desktop config"), watchCursor: z.boolean().optional().describe("Whether to watch Cursor config"), claudeConfigPath: z.string().optional().describe("Path to Claude for Desktop config file"), cursorConfigPath: z.string().optional().describe("Path to Cursor config file") }, async ({ watchClaude, watchCursor, claudeConfigPath, cursorConfigPath }, extra) => { const config = configService.getInstallationConfig(); const updates = { watchers: { ...config.watchers } }; if (watchClaude !== undefined) { updates.watchers.claude = { ...config.watchers.claude, enabled: watchClaude }; } if (watchCursor !== undefined) { updates.watchers.cursor = { ...config.watchers.cursor, enabled: watchCursor }; } if (claudeConfigPath !== undefined) { updates.watchers.claude = { ...config.watchers.claude, configPath: claudeConfigPath }; } if (cursorConfigPath !== undefined) { updates.watchers.cursor = { ...config.watchers.cursor, configPath: cursorConfigPath }; } const updatedConfig = await configService.updateInstallationConfig(updates); // Reinitialize watchers with new config await watcherService.initializeWatchers(); return { content: [ { type: "text", text: JSON.stringify({ success: true, watchers: updatedConfig.watchers }, null, 2) } ] }; } );
- src/tools/watcher-tools.ts:27-80 (handler)The main handler logic for the configure-watcher tool: updates watcher configurations in installation config and reinitializes watchers via services.async ({ watchClaude, watchCursor, claudeConfigPath, cursorConfigPath }, extra) => { const config = configService.getInstallationConfig(); const updates = { watchers: { ...config.watchers } }; if (watchClaude !== undefined) { updates.watchers.claude = { ...config.watchers.claude, enabled: watchClaude }; } if (watchCursor !== undefined) { updates.watchers.cursor = { ...config.watchers.cursor, enabled: watchCursor }; } if (claudeConfigPath !== undefined) { updates.watchers.claude = { ...config.watchers.claude, configPath: claudeConfigPath }; } if (cursorConfigPath !== undefined) { updates.watchers.cursor = { ...config.watchers.cursor, configPath: cursorConfigPath }; } const updatedConfig = await configService.updateInstallationConfig(updates); // Reinitialize watchers with new config await watcherService.initializeWatchers(); return { content: [ { type: "text", text: JSON.stringify({ success: true, watchers: updatedConfig.watchers }, null, 2) } ] }; }
- src/tools/watcher-tools.ts:21-26 (schema)Zod schema defining optional boolean flags for enabling watchers and optional string paths for config files.{ watchClaude: z.boolean().optional().describe("Whether to watch Claude for Desktop config"), watchCursor: z.boolean().optional().describe("Whether to watch Cursor config"), claudeConfigPath: z.string().optional().describe("Path to Claude for Desktop config file"), cursorConfigPath: z.string().optional().describe("Path to Cursor config file") },