Skip to main content
Glama
generate-tools-snapshot.tsβ€’1.38 kB
#!/usr/bin/env node import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; import { getToolsListPayload } from '@/utils/mcp-discovery.js'; import type { Tool } from '@modelcontextprotocol/sdk/types.js'; function normaliseTool(tool: Tool): Tool { const clone = structuredClone(tool) as Tool; // Sort properties for determinism in snapshots if (clone.inputSchema && typeof clone.inputSchema === 'object') { const schema = clone.inputSchema as Record<string, unknown>; if (schema && typeof schema.properties === 'object') { const entries = Object.entries( schema.properties as Record<string, unknown> ); entries.sort(([a], [b]) => a.localeCompare(b)); schema.properties = Object.fromEntries(entries); } } return clone; } function main(): void { const destination = process.argv[2] ?? path.resolve('docs/tools/tool-discovery-baseline.json'); const payload = getToolsListPayload(); const tools = [...payload.tools]; tools.sort((a, b) => a.name.localeCompare(b.name)); const normalised = tools.map(normaliseTool); const data = { generatedAt: new Date().toISOString(), toolCount: tools.length, tools: normalised, }; fs.writeFileSync(destination, `${JSON.stringify(data, null, 2)}\n`, 'utf8'); console.log(`βœ… Snapshot written to ${destination}`); } main();

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/kesslerio/attio-mcp-server'

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