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();

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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