Skip to main content
Glama

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
NameRequiredDescriptionDefault
cycleNoInclude Bitcoin halving cycle data (default: true)
defiNoInclude DeFi TVL and health data (default: true)
macroNoInclude Fed rates, DXY, yield curve (default: true)
onchainNoInclude Bitcoin on-chain data (default: true)
narrativesNoInclude sector rotation and narrative data (default: true)
weatherNoInclude weather in financial centers (default: true)
political_cycleNoInclude presidential cycle data (default: true)
seasonalityNoInclude monthly/seasonal patterns (default: true)
macro_calendarNoInclude 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) }] };
      },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xHashy/fathom-fyi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server