Skip to main content
Glama

get_ids_info

Retrieve the current IDS document structure including title, author, and specifications to understand buildingSMART Information Delivery Specification requirements.

Instructions

Get current session's IDS document structure.

Uses current session automatically - no session_id parameter needed!

Args: ctx: FastMCP Context (auto-injected)

Returns: { "title": "...", "author": "...", "specification_count": 3, "specifications": [...] }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Main handler function that retrieves and summarizes the current session's IDS document structure, including title, author, specs count and list with facets info.
    async def get_ids_info(ctx: Context) -> Dict[str, Any]:
        """
        Get current session's IDS document structure.
    
        Uses current session automatically - no session_id parameter needed!
    
        Args:
            ctx: FastMCP Context (auto-injected)
    
        Returns:
            {
                "title": "...",
                "author": "...",
                "specification_count": 3,
                "specifications": [...]
            }
        """
        try:
            # Get IDS from session
            ids_obj = await get_or_create_session(ctx)
    
            # Build specification summary
            spec_list = []
            for spec in ids_obj.specifications:
                spec_list.append({
                    "identifier": getattr(spec, 'identifier', None),
                    "name": spec.name,
                    "ifc_versions": spec.ifcVersion if hasattr(spec, 'ifcVersion') else [],
                    "applicability_facets": len(spec.applicability) if hasattr(spec, 'applicability') else 0,
                    "requirement_facets": len(spec.requirements) if hasattr(spec, 'requirements') else 0
                })
    
            return {
                "title": ids_obj.info.get("title"),
                "author": ids_obj.info.get("author"),
                "version": ids_obj.info.get("version"),
                "description": ids_obj.info.get("description"),
                "specification_count": len(ids_obj.specifications),
                "specifications": spec_list
            }
    
        except Exception as e:
            await ctx.error(f"Failed to get IDS info: {str(e)}")
            raise ToolError(f"Failed to get IDS info: {str(e)}")
  • Registers the get_ids_info tool with the FastMCP server instance.
    mcp_server.tool(document.get_ids_info)
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about automatic session usage and the return structure, but doesn't cover aspects like whether this is a read-only operation, potential errors, or performance considerations. The description doesn't contradict annotations (since none exist), but it provides only moderate behavioral insight beyond basic functionality.

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

Conciseness5/5

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

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a key behavioral note, and then structured details on args and returns. Every sentence earns its place without redundancy, making it highly concise and well-structured for quick understanding.

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

Completeness4/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema (implied by the Returns section), the description is reasonably complete. It explains the purpose, session usage, and return format, which covers the essentials. However, it could be more complete by addressing how it relates to sibling tools or potential error cases, but the output schema reduces the need for detailed return value explanations.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of parameters. The description adds value by explicitly stating 'no session_id parameter needed!' and noting that 'ctx' is auto-injected, which clarifies parameter semantics beyond the empty schema. This compensates well for the simple parameter case.

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 tool's purpose: 'Get current session's IDS document structure.' It specifies the verb ('Get') and resource ('IDS document structure'), and clarifies it uses the current session automatically. However, it doesn't explicitly differentiate from sibling tools like 'load_ids' or 'create_ids', which might also involve IDS document operations.

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 provides some usage context by noting 'Uses current session automatically - no session_id parameter needed!', which implies when to use this tool (for current session) versus alternatives that might require session parameters. However, it doesn't explicitly state when to use this tool over siblings like 'load_ids' or 'export_ids', leaving usage somewhat implied rather than fully guided.

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/vinnividivicci/ifc-ids-mcp'

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