get_specification_details
Retrieve detailed information about 3GPP specifications including metadata, content, dependencies, and related data for telecommunications standards development.
Instructions
Get comprehensive details about a specific 3GPP specification including metadata, content, dependencies, and related information.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format - agent_ready provides structured JSON for AI agents | agent_ready |
| include_content | No | Include detailed content from TSpec-LLM dataset (default: true) | |
| include_dependencies | No | Include information about specification dependencies (default: true) | |
| specification_id | Yes | The specification ID (e.g., "TS 32.290", "TS 38.331", "TS 33.501") |
Implementation Reference
- Core handler function that executes the tool: fetches specification details via API manager, formats output based on 'format' parameter (agent_ready, summary, detailed), and handles errors.async execute(args: GetSpecificationDetailsArgs) { try { const details = await this.apiManager.getSpecificationDetails(args.specification_id); const format = args.format || 'agent_ready'; switch (format) { case 'agent_ready': return { content: [ { type: 'text', text: JSON.stringify(this.formatForAgent(details, args), null, 2) } ] }; case 'summary': return { content: [ { type: 'text', text: this.formatSummary(details, args) } ] }; case 'detailed': default: return { content: [ { type: 'text', text: this.formatDetailed(details, args) } ] }; } } catch (error) { return { content: [ { type: 'text', text: `Error retrieving specification details: ${error instanceof Error ? error.message : 'Unknown error'}` } ], isError: true }; } }
- TypeScript interface defining the input schema/arguments for the get_specification_details tool.export interface GetSpecificationDetailsArgs { specification_id: string; include_content?: boolean; include_dependencies?: boolean; format?: 'detailed' | 'summary' | 'agent_ready'; }
- Tool definition method providing name, description, and JSON schema for input validation in MCP protocol.getDefinition() { return { name: 'get_specification_details', description: 'Get comprehensive details about a specific 3GPP specification including metadata, content, dependencies, and related information.', inputSchema: { type: 'object', properties: { specification_id: { type: 'string', description: 'The specification ID (e.g., "TS 32.290", "TS 38.331", "TS 33.501")' }, include_content: { type: 'boolean', description: 'Include detailed content from TSpec-LLM dataset (default: true)', default: true }, include_dependencies: { type: 'boolean', description: 'Include information about specification dependencies (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_id'] } }; }
- src/index.ts:85-93 (registration)Registers the tool by including its getDefinition() in the MCP ListTools response.this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ this.searchTool.getDefinition(), this.detailsTool.getDefinition(), this.compareTool.getDefinition(), this.requirementsTool.getDefinition() ] };
- src/index.ts:104-105 (registration)Dispatches execution of the tool in the MCP CallToolRequestSchema handler.case 'get_specification_details': return await this.detailsTool.execute(args as unknown as GetSpecificationDetailsArgs);
- src/api/api-manager.ts:97-129 (helper)Key helper method called by the tool handler to retrieve comprehensive specification data from TSpec-LLM client and 3GPP API client.async getSpecificationDetails(specId: string): Promise<{ metadata: SpecificationMetadata; tspec_content?: TSpecSearchResponse; working_group: WorkingGroupInfo; release: ReleaseInfo; }> { try { // Get official metadata const metadata = await this.tgppClient.getSpecificationMetadata(specId); // Get related TSpec content const tspecContent = await this.tspecClient.searchSpecifications({ query: specId, max_results: 3 }); // Get working group info const workingGroup = await this.tgppClient.getWorkingGroupInfo(metadata.working_group); // Get release info const release = await this.tgppClient.getReleaseInfo(metadata.release); return { metadata, tspec_content: tspecContent, working_group: workingGroup, release }; } catch (error) { throw new Error(`Failed to get specification details: ${error instanceof Error ? error.message : 'Unknown error'}`); } }