Skip to main content
Glama

get_specification_details

Retrieve comprehensive details about 3GPP specifications including metadata, content, dependencies, and related information to support telecommunications standards development.

Instructions

Get comprehensive details about a specific 3GPP specification including metadata, content, dependencies, and related information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
specification_idYesThe specification ID (e.g., "TS 32.290", "TS 38.331", "TS 33.501")
include_contentNoInclude detailed content from TSpec-LLM dataset (default: true)
include_dependenciesNoInclude information about specification dependencies (default: true)
formatNoResponse format - agent_ready provides structured JSON for AI agentsagent_ready

Implementation Reference

  • The main handler function that executes the tool logic: fetches specification details via API manager and formats the response according to the specified format (agent_ready, summary, detailed).
    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
        };
      }
    }
  • Tool definition including name, description, and inputSchema for validation (specification_id required, optional flags for content/dependencies/format). Also defines the TypeScript interface GetSpecificationDetailsArgs above.
    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:104-105 (registration)
    Registration in the MCP server's CallToolRequest handler: dispatches execution to the tool instance based on name.
    case 'get_specification_details':
      return await this.detailsTool.execute(args as unknown as GetSpecificationDetailsArgs);
  • src/index.ts:79-79 (registration)
    Instantiation of the GetSpecificationDetailsTool instance with APIManager dependency.
    this.detailsTool = new GetSpecificationDetailsTool(this.apiManager);
  • src/index.ts:88-89 (registration)
    Tool definition included in the ListTools response for MCP server discovery.
    this.searchTool.getDefinition(),
    this.detailsTool.getDefinition(),
  • Primary helper for formatting output in 'agent_ready' mode: structures specification metadata, working group info, release details, dependencies, content sections, and implementation guidance into JSON.
    private formatForAgent(details: any, args: GetSpecificationDetailsArgs): any {
      const result: any = {
        specification: {
          id: details.metadata.id,
          title: details.metadata.title,
          version: details.metadata.version,
          release: details.metadata.release,
          working_group: details.metadata.working_group,
          status: details.metadata.status,
          publication_date: details.metadata.publication_date,
          summary: details.metadata.summary,
          keywords: details.metadata.keywords
        },
    
        working_group: {
          name: details.working_group.name,
          full_name: details.working_group.full_name,
          focus_area: details.working_group.focus_area,
          related_specifications: details.working_group.specifications
        },
    
        release_info: {
          release: details.release.release,
          freeze_date: details.release.freeze_date,
          status: details.release.status,
          major_features: details.release.major_features
        }
      };
    
      if (args.include_dependencies !== false) {
        result.dependencies = {
          direct_dependencies: details.metadata.dependencies,
          dependency_analysis: this.analyzeDependencies(details.metadata.dependencies)
        };
      }
    
      if (args.include_content !== false && details.tspec_content) {
        result.content = {
          total_sections: details.tspec_content.results.length,
          sections: details.tspec_content.results.map((section: any) => ({
            section: section.section,
            content: section.content,
            relevance_score: section.relevance_score,
            keywords: section.metadata.keywords
          }))
        };
      }
    
      result.implementation_guidance = {
        complexity_level: this.assessComplexity(details),
        implementation_priority: this.getImplementationPriority(details),
        recommended_prerequisites: this.getPrerequisites(details),
        common_use_cases: this.getCommonUseCases(details),
        testing_considerations: this.getTestingConsiderations(details)
      };
    
      return result;
    }
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions what information is included (metadata, content, dependencies), it doesn't describe response format details, potential rate limits, authentication requirements, error conditions, or whether this is a read-only operation. The description provides basic functional information but lacks important behavioral context for a tool with 4 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently communicates the tool's purpose and scope. It's appropriately sized for the tool's complexity, front-loading the core functionality. While concise, it could potentially benefit from slightly more detail given the lack of annotations and output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no annotations, and no output schema, the description provides adequate basic information but lacks completeness. It explains what the tool does but doesn't address important contextual elements like response format expectations, error handling, or how the different parameters interact to affect the returned data. For a tool with this complexity level, more contextual information would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema - it doesn't explain how parameters interact, provide usage examples, or clarify edge cases. Baseline 3 is appropriate when the schema does the heavy lifting, though the description could have added value by explaining parameter relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('specific 3GPP specification'), and lists the types of details included (metadata, content, dependencies, related information). It distinguishes from siblings by focusing on comprehensive details for a single specification rather than comparison, requirements, or search functions. However, it doesn't explicitly contrast with sibling tools in the description text itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when comprehensive details about a specific 3GPP specification are needed, but doesn't explicitly state when to use this tool versus alternatives like 'search_specifications' for broader searches or 'compare_specifications' for comparisons. No explicit exclusions or prerequisites are mentioned, leaving usage context somewhat implied rather than clearly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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