list_ecosystems
List the AI ecosystems available on your tier to get valid slugs for best practices, news, and integrations.
Instructions
List all AI ecosystems available on your current tier. Call this first to discover valid ecosystem slugs before calling get_best_practices, get_latest_news, or get_top_integrations.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- lib/mcp-tools.ts:374-392 (handler)The handler function for list_ecosystems. It queries the 'ecosystems' table for live ecosystems, filters by tier (pro gets all, free gets only available_on_free), and returns the user's tier and available ecosystems.
if (name === 'list_ecosystems') { const { data, error } = await supabase .from('ecosystems') .select('slug, name, vendor, available_on_free') .eq('status', 'live') .order('name') if (error) return err('Error: Database error', 500) const all = (data ?? []) as Array<{ slug: string; name: string; vendor: string; available_on_free: boolean }> const ecosystems = profile.tier === 'pro' ? all.map(e => ({ slug: e.slug, name: e.name, vendor: e.vendor, tier: 'pro' as const })) : all .filter(e => e.available_on_free) .map(e => ({ slug: e.slug, name: e.name, vendor: e.vendor, tier: 'free' as const })) await logApiRequest(supabase, { apiKey: profile.api_key, tool: 'list-ecosystems', ecosystem: 'all', statusCode: 200 }) return ok({ your_tier: profile.tier, ecosystems }) } - lib/mcp-tools.ts:101-109 (schema)The schema definition for list_ecosystems. It has no input parameters (empty properties and required arrays).
{ name: 'list_ecosystems', description: 'List all AI ecosystems available on your current tier. Call this first to discover valid ecosystem slugs before calling get_best_practices, get_latest_news, or get_top_integrations.', inputSchema: { type: 'object', properties: {}, required: [], }, - app/mcp/route.ts:62-69 (registration)Registration of list_ecosystems tool on the MCP server, using the 5th definition (index 4) from TOOL_DEFINITIONS.
server.registerTool( 'list_ecosystems', { description: TOOL_DEFINITIONS[4].description, inputSchema: {}, }, (args) => handleToolCall('list_ecosystems', args as Record<string, unknown>, req), )