Skip to main content
Glama

list_ideas

Retrieve and filter workspace ideas by status, source, or destination with paginated results for organized idea management.

Instructions

List ideas in the workspace with optional filters. Returns paginated results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by idea status
sourceNoFilter by source
destinationNoFilter by destination
limitNoNumber of ideas to return (max 100)
offsetNoOffset for pagination

Implementation Reference

  • Definition of the 'list_ideas' tool, including its input schema and metadata.
    {
      name: 'list_ideas',
      description: 'List ideas in the workspace with optional filters. Returns paginated results.',
      inputSchema: {
        type: 'object' as const,
        properties: {
          status: {
            type: 'string',
            enum: ['new', 'accepted', 'rejected', 'snoozed', 'expired'],
            description: 'Filter by idea status',
          },
          source: {
            type: 'string',
            enum: ['discord', 'slack', 'teams', 'zapier', 'api', 'chrome', 'vscode', 'extension', 'sentry', 'fireflies', 'email', 'outlook', 'meeting', 'mcp'],
            description: 'Filter by source',
          },
          destination: {
            type: 'string',
            enum: ['github', 'linear', 'jira', 'azure-devops', 'zendesk'],
            description: 'Filter by destination',
          },
          limit: {
            type: 'number',
            description: 'Number of ideas to return (max 100)',
            default: 20,
          },
          offset: {
            type: 'number',
            description: 'Offset for pagination',
            default: 0,
          },
        },
        required: [],
      },
      annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true },
      _meta: { 'openai/visibility': 'public' },
    },
  • The 'handleProxyTool' function acts as a generic handler that proxies tool requests, including 'list_ideas', to the main IdeaLift app's MCP handler.
    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