Skip to main content
Glama

get_signal_analytics

Analyze aggregated product feedback signals over time to identify trends and patterns in customer insights from multiple communication platforms.

Instructions

Get aggregated analytics about signals over a time period.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
startDateYesStart date (YYYY-MM-DD format)
endDateYesEnd date (YYYY-MM-DD format)
groupByNoHow to group the analyticsday

Implementation Reference

  • Definition of the 'get_signal_analytics' tool, including its input schema and metadata.
    {
      name: 'get_signal_analytics',
      description: 'Get aggregated analytics about signals over a time period.',
      inputSchema: {
        type: 'object' as const,
        properties: {
          startDate: { type: 'string', description: 'Start date (YYYY-MM-DD format)' },
          endDate: { type: 'string', description: 'End date (YYYY-MM-DD format)' },
          groupBy: {
            type: 'string',
            enum: ['day', 'week', 'month', 'source', 'sentiment', 'category'],
            description: 'How to group the analytics',
            default: 'day',
          },
        },
        required: ['startDate', 'endDate'],
      },
      annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true },
      _meta: { 'openai/visibility': 'public' },
    },
  • The handleProxyTool function, which routes calls for this tool to the main IdeaLift app's MCP handler via the idealiftClient.
    export async function handleProxyTool(
      toolName: string,
      args: Record<string, unknown>,
      chatgptSubjectId: string
    ): Promise<{ content: Array<{ type: string; text: string }>; isError: boolean }> {
      try {
        const response = await idealiftClient.mcpProxy(
          chatgptSubjectId,
          'tools/call',
          { name: toolName, arguments: args }
        );
    
        if (response.error) {
          return {
            content: [{ type: 'text', text: `Error: ${response.error.message}` }],
            isError: true,
          };
        }
    
        // The result from handleJsonRpcRequest for tools/call is { content: [...], isError?: boolean }
        const result = response.result as { content?: Array<{ type: string; text: string }>; isError?: boolean } | undefined;
    
        if (result?.content) {
          return {
            content: result.content,
            isError: result.isError || false,
          };
        }
    
        // Fallback: wrap the result as text
        return {
          content: [{ type: 'text', text: JSON.stringify(response.result, null, 2) }],
          isError: false,
        };
      } catch (error) {
        console.error(`[ProxyTool] Error calling ${toolName}:`, error);
        return {
          content: [{ type: 'text', text: `Proxy error: ${(error as Error).message}` }],
          isError: true,
        };
      }
    }

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/Startvest-LLC/idealift-mcp-server'

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