query_feature_suggestions
Retrieve feature suggestions from a Supabase database to help AI tools access and display feature request data for analysis and implementation planning.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of records to return |
Implementation Reference
- mcp-server.ts:66-108 (handler)The handler function for the 'query_feature_suggestions' tool. It queries the 'feature_suggestions' table from Supabase, handles errors, logs data, and returns the results as JSON string in the response content.async ({ limit = 100 }) => { const table_name = "feature_suggestions"; try { logger.log(`Querying feature_suggestions table with limit: ${limit}`); const { data, error } = await supabase .from(table_name) .select('*') .limit(limit); if (error) { logger.error(`Error querying feature_suggestions table:`, error); return { content: [{ type: "text", text: `Error querying feature_suggestions table: ${error.message}` }] }; } // Log the raw data for debugging logger.log(`Raw data from feature_suggestions: ${JSON.stringify(data)}`); // Ensure data is properly formatted const formattedData = Array.isArray(data) ? data : []; logger.log(`Successfully retrieved ${formattedData.length} records from feature_suggestions`); return { content: [{ type: "text", text: JSON.stringify(formattedData, null, 2) }] }; } catch (error) { logger.error(`Error in query_feature_suggestions tool for feature_suggestions table:`, error); return { content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : String(error)}` }] }; } }
- mcp-server.ts:63-65 (schema)Input schema for the 'query_feature_suggestions' tool, defining an optional 'limit' parameter as a number.{ limit: z.number().optional().describe("Maximum number of records to return") },
- mcp-server.ts:61-109 (registration)Registration of the 'query_feature_suggestions' tool using server.tool(name, inputSchema, handler), including the tool name, schema, and handler function.server.tool( "query_feature_suggestions", { limit: z.number().optional().describe("Maximum number of records to return") }, async ({ limit = 100 }) => { const table_name = "feature_suggestions"; try { logger.log(`Querying feature_suggestions table with limit: ${limit}`); const { data, error } = await supabase .from(table_name) .select('*') .limit(limit); if (error) { logger.error(`Error querying feature_suggestions table:`, error); return { content: [{ type: "text", text: `Error querying feature_suggestions table: ${error.message}` }] }; } // Log the raw data for debugging logger.log(`Raw data from feature_suggestions: ${JSON.stringify(data)}`); // Ensure data is properly formatted const formattedData = Array.isArray(data) ? data : []; logger.log(`Successfully retrieved ${formattedData.length} records from feature_suggestions`); return { content: [{ type: "text", text: JSON.stringify(formattedData, null, 2) }] }; } catch (error) { logger.error(`Error in query_feature_suggestions tool for feature_suggestions table:`, error); return { content: [{ type: "text", text: `Error: ${error instanceof Error ? error.message : String(error)}` }] }; } } );