set_signal_preferences
Configure which financial data signals feed into your analysis by enabling or disabling specific sources like weather, political cycles, or DeFi metrics.
Instructions
Customize which signals feed into your reality check. Turn individual signal sources on or off. Regime and sentiment are always included. Preferences persist between sessions. Example: {weather: false, political_cycle: false} to disable those signals.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cycle | No | Include Bitcoin halving cycle data (default: true) | |
| defi | No | Include DeFi TVL and health data (default: true) | |
| macro | No | Include Fed rates, DXY, yield curve (default: true) | |
| onchain | No | Include Bitcoin on-chain data (default: true) | |
| narratives | No | Include sector rotation and narrative data (default: true) | |
| weather | No | Include weather in financial centers (default: true) | |
| political_cycle | No | Include presidential cycle data (default: true) | |
| seasonality | No | Include monthly/seasonal patterns (default: true) | |
| macro_calendar | No | Include FOMC, CPI, options expiry dates (default: true) |
Implementation Reference
- The main logic for the set_signal_preferences tool, which calls the preference storage mechanism and generates user guidance.
export function setSignalPreferencesTool(input: SetPreferencesInput): SetPreferencesResult { const stored = setPreferences(AGENT_ID, input); const enabled = Object.entries(stored.preferences) .filter(([, v]) => v === true) .map(([k]) => k); const disabled = Object.entries(stored.preferences) .filter(([, v]) => v === false) .map(([k]) => k); let guidance = `Signal preferences saved. ${enabled.length} signals enabled. `; if (disabled.length > 0) { guidance += `Disabled: ${disabled.join(', ')}. `; } guidance += 'These preferences apply to all future get_reality_check calls. Regime and sentiment are always included. Call set_signal_preferences again to change.'; return { success: true, agent_id: AGENT_ID, preferences: stored.preferences, agent_guidance: guidance, }; } - Type definitions for the input parameters of the set_signal_preferences tool.
export interface SetPreferencesInput { cycle?: boolean; defi?: boolean; macro?: boolean; onchain?: boolean; narratives?: boolean; weather?: boolean; political_cycle?: boolean; seasonality?: boolean; macro_calendar?: boolean; } - src/index.ts:409-430 (registration)Registration of the set_signal_preferences tool with the MCP server, including its schema description and invocation logic.
// ─── Tool: set_signal_preferences ─── server.tool( 'set_signal_preferences', 'Customize which signals feed into your reality check. Turn individual signal sources on or off. Regime and sentiment are always included. Preferences persist between sessions. Example: {weather: false, political_cycle: false} to disable those signals.', { cycle: z.boolean().optional().describe('Include Bitcoin halving cycle data (default: true)'), defi: z.boolean().optional().describe('Include DeFi TVL and health data (default: true)'), macro: z.boolean().optional().describe('Include Fed rates, DXY, yield curve (default: true)'), onchain: z.boolean().optional().describe('Include Bitcoin on-chain data (default: true)'), narratives: z.boolean().optional().describe('Include sector rotation and narrative data (default: true)'), weather: z.boolean().optional().describe('Include weather in financial centers (default: true)'), political_cycle: z.boolean().optional().describe('Include presidential cycle data (default: true)'), seasonality: z.boolean().optional().describe('Include monthly/seasonal patterns (default: true)'), macro_calendar: z.boolean().optional().describe('Include FOMC, CPI, options expiry dates (default: true)'), }, async (params) => { const gateError = gateTool('set_signal_preferences'); if (gateError) return { content: [{ type: 'text' as const, text: gateError }] }; const result = setSignalPreferencesTool(params); return { content: [{ type: 'text' as const, text: JSON.stringify(result, null, 2) }] }; },