search_specifications
Search 3GPP telecommunications specifications using natural language queries to retrieve technical content, implementation requirements, and structured metadata for development and analysis.
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 |
|---|---|---|---|
| format | No | Response format - agent_ready provides structured JSON optimized for AI agents | agent_ready |
| include_content | No | Include detailed specification content from TSpec-LLM (default: true) | |
| max_results | No | Maximum number of results to return (default: 5) | |
| query | Yes | Search query (e.g., "5G charging CHF implementation", "handover procedures", "authentication security") | |
| release_filter | No | Filter by 3GPP release (e.g., ["Rel-16", "Rel-17"]) | |
| series_filter | No | Filter by specification series (e.g., ["32", "33", "38"]) |
Implementation Reference
- Main execution handler for the 'search_specifications' tool. Constructs search request, calls APIManager.enhancedSearch, handles different output formats, and manages 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 }; } }
- Tool definition including name, description, and detailed inputSchema for MCP tool registration and validation.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 input arguments for the tool, matching the inputSchema.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:76-82 (registration)Instantiates SearchSpecificationsTool instance as this.searchTool with APIManager dependency.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:101-103 (registration)Registers tool dispatch in MCP CallToolRequestSchema handler: routes 'search_specifications' calls to the tool's execute method.case 'search_specifications': return await this.searchTool.execute(args as unknown as SearchSpecificationsArgs);