search_specifications
Search 3GPP telecommunications specifications to find implementation requirements, technical procedures, and structured metadata for AI agents and developers.
Instructions
Search 3GPP specifications using TSpec-LLM dataset and official metadata. Returns actual specification content and structured metadata for agent consumption.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g., "5G charging CHF implementation", "handover procedures", "authentication security") | |
| max_results | No | Maximum number of results to return (default: 5) | |
| series_filter | No | Filter by specification series (e.g., ["32", "33", "38"]) | |
| release_filter | No | Filter by 3GPP release (e.g., ["Rel-16", "Rel-17"]) | |
| include_content | No | Include detailed specification content from TSpec-LLM (default: true) | |
| format | No | Response format - agent_ready provides structured JSON optimized for AI agents | agent_ready |
Implementation Reference
- Core handler function that executes the search_specifications tool. Constructs an EnhancedSearchRequest from args, calls apiManager.enhancedSearch, formats results based on the specified format (agent_ready, summary, detailed), and handles errors.async execute(args: SearchSpecificationsArgs) { try { const request: EnhancedSearchRequest = { query: args.query, include_tspec_content: args.include_content !== false, include_official_metadata: true, max_results: args.max_results || 5, series_filter: args.series_filter, release_filter: args.release_filter }; const searchResults = await this.apiManager.enhancedSearch(request); const format = args.format || 'agent_ready'; switch (format) { case 'agent_ready': return { content: [ { type: 'text', text: JSON.stringify(this.formatForAgent(searchResults), null, 2) } ] }; case 'summary': return { content: [ { type: 'text', text: this.formatSummary(searchResults) } ] }; case 'detailed': default: return { content: [ { type: 'text', text: this.formatDetailed(searchResults) } ] }; } } catch (error) { return { content: [ { type: 'text', text: `Error searching specifications: ${error instanceof Error ? error.message : 'Unknown error'}` } ], isError: true }; } }
- Defines the tool schema including name 'search_specifications', description, and detailed inputSchema with properties for query, filters, and format options.getDefinition() { return { name: 'search_specifications', description: 'Search 3GPP specifications using TSpec-LLM dataset and official metadata. Returns actual specification content and structured metadata for agent consumption.', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query (e.g., "5G charging CHF implementation", "handover procedures", "authentication security")' }, max_results: { type: 'number', description: 'Maximum number of results to return (default: 5)', default: 5 }, series_filter: { type: 'array', items: { type: 'string' }, description: 'Filter by specification series (e.g., ["32", "33", "38"])' }, release_filter: { type: 'array', items: { type: 'string' }, description: 'Filter by 3GPP release (e.g., ["Rel-16", "Rel-17"])' }, include_content: { type: 'boolean', description: 'Include detailed specification content from TSpec-LLM (default: true)', default: true }, format: { type: 'string', enum: ['detailed', 'summary', 'agent_ready'], description: 'Response format - agent_ready provides structured JSON optimized for AI agents', default: 'agent_ready' } }, required: ['query'] } }; }
- TypeScript interface defining the input arguments for the search_specifications tool.export interface SearchSpecificationsArgs { query: string; max_results?: number; series_filter?: string[]; release_filter?: string[]; include_content?: boolean; format?: 'detailed' | 'summary' | 'agent_ready'; }
- src/index.ts:101-102 (registration)Registration in the MCP server's CallToolRequestSchema handler: dispatches calls to 'search_specifications' to the SearchSpecificationsTool's execute method.case 'search_specifications': return await this.searchTool.execute(args as unknown as SearchSpecificationsArgs);
- src/index.ts:78-78 (registration)Instantiation of the SearchSpecificationsTool instance in the server's initializeComponents method.this.searchTool = new SearchSpecificationsTool(this.apiManager);