Skip to main content
Glama

list_technologies

Discover valid technology identifiers for stack recommendations by listing available tech IDs across categories like frontend, backend, and databases.

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

  • Core handler function that executes the list_technologies tool logic, listing technologies optionally filtered by category.
    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}`; }
  • Zod input schema for validating the list_technologies tool parameters.
    export const ListTechsInputSchema = z.object({ category: z .enum(CATEGORIES) .optional() .describe('Filter by category. Omit to list all technologies.') });
  • src/server.ts:46-68 (registration)
    MCP server registration of the list_technologies tool, including wrapper handler that parses input and calls executeListTechs.
    server.registerTool( listTechsToolDefinition.name, { title: 'List Technologies', description: listTechsToolDefinition.description, inputSchema: { category: z.enum(CATEGORIES).optional().describe('Filter by category') }, annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false } }, async (args) => { debug('list_technologies called', args); const input = ListTechsInputSchema.parse(args); const text = executeListTechs(input); return { content: [{ type: 'text', text }] }; } );
  • 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')}`; }
  • Tool definition object used for MCP registration, including the input schema in MCP format.
    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)' } } } };

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