Skip to main content
Glama
grzetich

AI Developer Tools MCP Server

by grzetich

get_trending_tools

Discover AI developer tools with the highest adoption growth rates over specified time periods, filtered by category to identify trending technologies for development workflows.

Instructions

Get the fastest-growing AI developer tools over a time period, ranked by adoption growth rate

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
time_rangeNoTime period to analyze for growth trends30d
limitNoMaximum number of tools to return (3-10)
categoryNoFilter by tool category, or "all" for no filterall

Implementation Reference

  • The async execute function that performs the core logic: fetches tools, filters by category, computes growth metrics, sorts by growth percentage, limits results, and formats a markdown response with rankings.
    async execute(args) { const { time_range = '30d', limit = 5, category = 'all' } = args; // Get all tools with their current metrics let toolsList = getToolsByMetric('npm_downloads_monthly'); // Filter by category if specified if (category !== 'all') { toolsList = toolsList.filter(t => t.category === category); } // Calculate growth for each tool const months = time_range === '90d' ? 3 : 1; const toolsWithGrowth = toolsList.map(tool => { const growth = getGrowthMetrics(tool.id, months); return { ...tool, growth_pct: growth?.growth_pct || 0, current_downloads: growth?.current || tool.npm_downloads_monthly }; }); // Sort by growth rate (descending) toolsWithGrowth.sort((a, b) => b.growth_pct - a.growth_pct); // Take top N const trending = toolsWithGrowth.slice(0, limit); // Format output let output = `🚀 Trending AI Developer Tools\n`; output += `📅 Period: ${time_range}`; if (category !== 'all') { output += ` | Category: ${category}`; } output += `\n\n`; // Rankings output += `**Fastest Growing**\n`; trending.forEach((tool, index) => { const rank = index + 1; const growthIcon = tool.growth_pct > 50 ? '🔥' : tool.growth_pct > 20 ? '⚡' : '📈'; output += `${rank}. ${growthIcon} **${tool.name}**\n`; output += ` - Growth: +${tool.growth_pct.toFixed(1)}% over ${time_range}\n`; output += ` - Current: ${formatNumber(tool.current_downloads)} downloads/month\n`; output += ` - ${tool.description}\n`; }); // Context note output += `\n_Growth calculated from ${time_range} historical data_`; return output; }
  • JSON Schema defining the input parameters for the tool: time_range (7d/30d/90d), limit (3-10), category filter.
    inputSchema: { type: 'object', properties: { time_range: { type: 'string', enum: ['7d', '30d', '90d'], default: '30d', description: 'Time period to analyze for growth trends' }, limit: { type: 'integer', minimum: 3, maximum: 10, default: 5, description: 'Maximum number of tools to return (3-10)' }, category: { type: 'string', enum: ['llm-api', 'editor', 'assistant', 'framework', 'all'], default: 'all', description: 'Filter by tool category, or "all" for no filter' } } },
  • src/index.js:65-70 (registration)
    Registration of the trendingTool in the central tools array used by the MCP server for list and call handlers.
    const tools = [ compareTool, trendingTool, historyTool, searchTool ];
  • src/index.js:30-30 (registration)
    Import statement that brings the trendingTool into the main server index for registration.
    import { trendingTool } from './tools/trending.js';
  • Utility function to format large numbers for display (K/M suffixes).
    function formatNumber(num) { if (num >= 1_000_000) { return `${(num / 1_000_000).toFixed(1)}M`; } else if (num >= 1_000) { return `${(num / 1_000).toFixed(0)}K`; } return num.toString();

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/grzetich/ai-developer-tools-mcp'

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