Skip to main content
Glama

createSpecFile

Generate API spec files in Postman by providing the spec ID, file path (supports folder creation with '/'), and stringified content. Files are assigned DEFAULT type and limited to 10MB.

Instructions

Creates an API spec file. Use '/' in path to create folders. File assigned DEFAULT type. Max size 10MB.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
specIdYesSpec ID
contentYesFile's stringified contents
pathYesFile path (JSON or YAML)

Implementation Reference

  • The CreateSpecFileTool class implements the 'createSpecFile' tool. It registers with name 'createSpecFile', defines the input schema requiring specId, content, and path, and executes by making a POST request to /apis/{spec_id}/files to create a new file in an API spec.
    class CreateSpecFileTool(ToolHandler):
        """Create spec file"""
        
        def __init__(self):
            super().__init__("createSpecFile")
        
        def get_tool_description(self) -> Tool:
            return Tool(
                name=self.name,
                description="Creates an API spec file. Use '/' in path to create folders. File assigned DEFAULT type. Max size 10MB.",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "specId": {
                            "type": "string",
                            "description": "Spec ID"
                        },
                        "content": {
                            "type": "string",
                            "description": "File's stringified contents"
                        },
                        "path": {
                            "type": "string",
                            "description": "File path (JSON or YAML)"
                        }
                    },
                    "required": ["specId", "content", "path"]
                },
            )
        
        async def run_tool(self, args: dict) -> list[TextContent]:
            spec_id = args["specId"]
            body = {
                "content": args["content"],
                "path": args["path"]
            }
            
            result = await postman_api_call("POST", f"/apis/{spec_id}/files", body=body)
            return [TextContent(type="text", text=json.dumps(result, indent=2))]
  • The CreateSpecFileTool() is registered in the register_all_tools() function at line 1870, making it available as part of the 41-tool suite.
    CreateSpecFileTool(),
  • ToolHandler is the abstract base class that CreateSpecFileTool inherits from. It defines the interface with get_tool_description() and run_tool() methods that all tool handlers must implement.
    class ToolHandler(ABC):
        """Base class for all Postman tool handlers"""
        
        def __init__(self, name: str):
            self.name = name
        
        @abstractmethod
        def get_tool_description(self) -> Tool:
            """Return the MCP Tool description for this handler"""
            pass
        
        @abstractmethod
        async def run_tool(self, arguments: dict) -> list[TextContent | ImageContent | EmbeddedResource]:
            """Execute the tool with the given arguments"""
            pass
  • The input schema for createSpecFile defines three required parameters: specId (string), content (string - the file's stringified contents), and path (string - file path as JSON or YAML).
    def get_tool_description(self) -> Tool:
        return Tool(
            name=self.name,
            description="Creates an API spec file. Use '/' in path to create folders. File assigned DEFAULT type. Max size 10MB.",
            inputSchema={
                "type": "object",
                "properties": {
                    "specId": {
                        "type": "string",
                        "description": "Spec ID"
                    },
                    "content": {
                        "type": "string",
                        "description": "File's stringified contents"
                    },
                    "path": {
                        "type": "string",
                        "description": "File path (JSON or YAML)"
                    }
                },
                "required": ["specId", "content", "path"]
            },
        )
Behavior3/5

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

Without annotations, the description must disclose behavior. It mentions file assignment of DEFAULT type and a 10MB size limit, but omits details like whether files are overwritten, if path must be unique, or success/error behavior.

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?

Three concise sentences, each adding distinct information, with no wasted words. Front-loaded with the core action.

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?

Covers basic purpose and constraints, but missing return values, error handling, and relationship to sibling tools like createSpec. Adequate but not comprehensive for a creation tool with no output schema.

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?

Despite 100% schema coverage, the description adds value by explaining the path parameter's folder creation using '/' and noting the DEFAULT type and size limit, which are not in the schema.

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

Purpose5/5

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

The description clearly states it creates an API spec file, specifies use of '/' for folder creation, and distinguishes from siblings like createSpec which likely creates a spec container. The verb and resource are specific.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like createSpec, createCollection, etc. No prerequisites or context for choosing this tool are mentioned, leaving ambiguity.

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/Sourav4670/postman-mcp'

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