Skip to main content
Glama

list_technologies

Discover valid technology identifiers to use with other tools. Filter by category to find frontend, backend, database, and other technology IDs for stack recommendations.

Instructions

Lists all available technology IDs for use with other tools. Essential for discovering valid technology identifiers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category

Implementation Reference

  • The executeListTechs function implements the core logic of the list_technologies tool, handling input parsing, filtering by category if provided, formatting output with technology IDs and names grouped by category, and including data version.
    export function executeListTechs(input: ListTechsInput): string { const { category } = input; if (category) { // Filter by specific category const techs = getTechnologiesByCategory(category); const formatted = formatCategory( category, techs.map((t) => ({ id: t.id, name: t.name })) ); return `Available technologies in "${category}" (${techs.length} total): ${formatted} Data version: ${DATA_VERSION}`; } // List all technologies grouped by category const grouped = getTechnologiesGroupedByCategory(); const sections: string[] = []; let total = 0; for (const cat of CATEGORIES) { const techs = grouped[cat]; if (techs.length > 0) { sections.push( formatCategory( cat, techs.map((t) => ({ id: t.id, name: t.name })) ) ); total += techs.length; } } return `Available technologies (${total} total): ${sections.join('\n\n')} Data version: ${DATA_VERSION}`; }
  • src/server.ts:46-63 (registration)
    Registers the list_technologies tool on the MCP server, providing title, description, input schema validation, and the async handler that parses args and calls executeListTechs.
    server.registerTool( listTechsToolDefinition.name, { title: 'List Technologies', description: listTechsToolDefinition.description, inputSchema: { category: z.enum(CATEGORIES).optional().describe('Filter by category') } }, async (args) => { debug('list_technologies called', args); const input = ListTechsInputSchema.parse(args); const text = executeListTechs(input); return { content: [{ type: 'text', text }] }; } );
  • Zod input schema for validating the list_technologies tool inputs, used in the server handler to parse arguments.
    export const ListTechsInputSchema = z.object({ category: z .enum(CATEGORIES) .optional() .describe('Filter by category. Omit to list all technologies.') });
  • Tool definition object including name, description, and JSON schema for input, used for MCP tool registration.
    export const listTechsToolDefinition = { name: 'list_technologies', description: 'Lists all available technology IDs for use with other tools. Essential for discovering valid technology identifiers.', inputSchema: { type: 'object' as const, properties: { category: { type: 'string', enum: CATEGORIES, description: 'Filter by category (optional)' } } } };
  • Helper function to format technologies for a single category into markdown list.
    function formatCategory(category: Category, techs: Array<{ id: string; name: string }>): string { if (techs.length === 0) return ''; const lines = techs.map((t) => `- ${t.id} (${t.name})`); return `## ${category}\n${lines.join('\n')}`; }

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/hoklims/stacksfinder-mcp'

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