Skip to main content
Glama

compare_specifications

Compare 3GPP telecommunications specifications across architecture, procedures, evolution, and implementation differences to identify key variations and requirements.

Instructions

Compare multiple 3GPP specifications across various criteria including architecture, procedures, evolution, and implementation differences.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
comparison_criteriaNoSpecific criteria to compare (e.g., ["architecture", "procedures", "interfaces", "evolution"])
formatNoResponse format - agent_ready provides structured JSON for AI agentsagent_ready
include_evolution_analysisNoInclude analysis of specification evolution across releases (default: true)
specification_idsYesArray of specification IDs to compare (e.g., ["TS 32.251", "TS 32.290"])

Implementation Reference

  • Main handler function implementing the tool logic: input validation, API call to compareSpecifications, response formatting based on 'format' parameter (agent_ready, summary, detailed), and error handling.
    async execute(args: CompareSpecificationsArgs) { try { if (args.specification_ids.length < 2) { throw new Error('At least 2 specifications are required for comparison'); } const comparison = await this.apiManager.compareSpecifications(args.specification_ids); const format = args.format || 'agent_ready'; switch (format) { case 'agent_ready': return { content: [ { type: 'text', text: JSON.stringify(this.formatForAgent(comparison, args), null, 2) } ] }; case 'summary': return { content: [ { type: 'text', text: this.formatSummary(comparison, args) } ] }; case 'detailed': default: return { content: [ { type: 'text', text: this.formatDetailed(comparison, args) } ] }; } } catch (error) { return { content: [ { type: 'text', text: `Error comparing specifications: ${error instanceof Error ? error.message : 'Unknown error'}` } ], isError: true }; } }
  • Tool definition including name, description, and input schema with properties (specification_ids required array min2 max5, optional comparison_criteria, include_evolution_analysis boolean, format enum), used for MCP tool registration and validation.
    getDefinition() { return { name: 'compare_specifications', description: 'Compare multiple 3GPP specifications across various criteria including architecture, procedures, evolution, and implementation differences.', inputSchema: { type: 'object', properties: { specification_ids: { type: 'array', items: { type: 'string' }, description: 'Array of specification IDs to compare (e.g., ["TS 32.251", "TS 32.290"])', minItems: 2, maxItems: 5 }, comparison_criteria: { type: 'array', items: { type: 'string' }, description: 'Specific criteria to compare (e.g., ["architecture", "procedures", "interfaces", "evolution"])' }, include_evolution_analysis: { type: 'boolean', description: 'Include analysis of specification evolution across releases (default: true)', default: true }, format: { type: 'string', enum: ['detailed', 'summary', 'agent_ready'], description: 'Response format - agent_ready provides structured JSON for AI agents', default: 'agent_ready' } }, required: ['specification_ids'] } }; }
  • TypeScript interface defining the input arguments for the compare_specifications tool, matching the inputSchema.
    export interface CompareSpecificationsArgs { specification_ids: string[]; comparison_criteria?: string[]; include_evolution_analysis?: boolean; format?: 'detailed' | 'summary' | 'agent_ready'; }
  • src/index.ts:76-82 (registration)
    Initialization of tool instances including CompareSpecificationsTool with APIManager dependency injection.
    private initializeComponents() { // Initialize V3 data access tools this.searchTool = new SearchSpecificationsTool(this.apiManager); this.detailsTool = new GetSpecificationDetailsTool(this.apiManager); this.compareTool = new CompareSpecificationsTool(this.apiManager); this.requirementsTool = new FindImplementationRequirementsTool(this.apiManager); }
  • src/index.ts:107-108 (registration)
    Registration in the CallToolRequestSchema handler: switch case dispatching to compareTool.execute for 'compare_specifications' tool calls.
    case 'compare_specifications': return await this.compareTool.execute(args as unknown as CompareSpecificationsArgs);

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/edhijlu/3gpp-mcp-server'

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