Skip to main content
Glama

Postman MCP Server

The Postman MCP Server implements the Model Context Protocol (MCP) to connect AI agents and coding assistants — including Claude Code, Cursor, VS Code Copilot, GitHub Copilot CLI, and Gemini CLI — directly to your Postman workspaces, collections, specifications, and environments.

Postman also offers the server as an npm package.

For the full installation guide with agent-specific setup, see Postman's MCP Server product page.


Postman MCP Server collection

The Postman MCP Server collection is the quickest way to explore, test, and connect to the Postman MCP Server. Use it to:

  • Browse the complete list of available tools across all configurations.

  • Connect to and test the remote server — Full and Minimal.

  • Connect to and test the local server.


Related MCP server: Postman MCP Generator

Tool configurations

  • Minimal — (Default) Only includes essential tools for basic Postman operations. Ideal for users who want to modify a single Postman element, such as collections, workspaces, or environments.

  • Code — Includes tools to generate high-quality, well-organized client code from public and internal API definitions. Ideal for users who need to consume APIs or get API context to their agents.

  • Full — Includes all available Postman API tools (100+ tools). Ideal for users who engage in advanced collaboration and Postman's Enterprise features.

  • Learn — Searches Postman Docs for guides, tutorials, and reference content. Ideal for agents who need to discover Postman features, look up API concepts, or find learning resources.


Authentication

For the best developer experience and fastest setup, use OAuth on the remote server (https://mcp.postman.com). OAuth is fully compliant with the MCP Authorization specification and requires no manual API key configuration.

The EU remote server and the local server support only Postman API key authentication.


Quick start

Remote (any OAuth-compatible MCP host):

Add this URL to your MCP host's configuration:

https://mcp.postman.com/minimal

Change /minimal to /code or /mcp for Code or Full mode. For EU or API key auth, pass Authorization: Bearer <POSTMAN_API_KEY> as a header.

Local:

npx @postman/postman-mcp-server

Add --code or --full for Code or Full mode. Set POSTMAN_API_KEY as an environment variable.

For IDE-specific setup instructions, see the following table. For more information, see the Postman MCP Server docs.


Supported agents and IDEs

Agent / IDE

Remote

Local

Claude Code

Docs

Docs

Claude Desktop

Docs

Docs

Cursor

Docs

Docs

VS Code

Docs

Docs

Codex

Docs

Docs

Antigravity CLI

Docs

Docs

GitHub Copilot CLI

Docs

Docs

Kiro

Docs

Docs

Docker

Docs


EU support

The Postman MCP Server supports the EU region for remote and local servers:

  • For streamable HTTP, the remote server is available at https://mcp.eu.postman.com/mcp (Full), https://mcp.eu.postman.com/code, and https://mcp.eu.postman.com/minimal.

  • For the STDIO public package, use the --region eu flag, or set the POSTMAN_API_BASE_URL environment variable directly.

  • OAuth isn't supported for the EU server. The EU remote server only supports API key authentication.


Use cases

  • API Testing — Continuously test your API using your Postman collection. Use the local server to test local APIs, as the remote server won't have network access to your workstation.

  • Code synchronization — Keep your code in sync with your Postman Collections and specs.

  • Collection management — Create and tag collections, update documentation, add comments, or perform actions across multiple collections without leaving your editor.

  • Workspace and environment management — Create workspaces and environments, plus manage environment variables.

  • Automatic spec creation — Create specs from your code and use them to generate collections.

  • Client code generation — Generate production-ready client code that consumes APIs following best practices and project conventions.


Docker

For Docker setup and installation, see DOCKER.md.


Contributing

Bug reports, tool requests, and documentation fixes are all welcome — see CONTRIBUTING.md.

The MCP tool definitions and the server implementation here are synced from Postman's internal source of truth, so changes to files under src/ can't be merged in this repository — but issues are how those changes get made, and we credit contributions that ship. Documentation and repository tooling accept pull requests directly.

Found a security issue? See SECURITY.md — please don't open a public issue.


Questions and support


Keywords

Model Context Protocol · MCP Server · Postman · AI Agents · Claude Code · Cursor · VS Code · Specifications · REST API · API Testing · TypeScript · OpenAPI

Available Tools

42 tools
createCollectionCreate a collectionBInspect

Creates a collection using the Postman Collection v2.1.0 schema format.

Note:

If you do not include the `workspace` query parameter, the system creates the collection in the oldest personal Internal workspace you own.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceYesThe workspace's ID.
collectionNoInformation about the collection.

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare the operation non-read-only, non-destructive, and non-idempotent. The description adds one useful behavioral detail beyond that—the default workspace behavior when the workspace parameter is omitted—but it still does not reveal validation behavior, authorization requirements, or what happens on repeated identical calls. The added value is moderate but incomplete.

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 two sentences with no filler: the first defines what the tool does and includes the schema format link; the second is a clearly separated default‑behavior note. The most important piece (creates a collection) is front-loaded, and the note is compact.

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?

The collection body is exhaustively specified in the schema and the safety annotations cover the core misuse, so the description can be lightweight. Still, no output schema exists and the description does not state what a successful call returns, nor does it mention any prerequisites such as workspace-level permissions. The tool is adequately described for basic invocation but leaves return behavior and preconditions undetermined.

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

Parameters2/5

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

The input schema already documents both parameters with high coverage, so the description does not need to re-explain them. The only added semantic note about the workspace parameter being optional is at odds with the schema's requirement of workspace, which can mislead an agent into constructing an invalid request. This makes the description's extra parameter information a drawback rather than a benefit.

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 states a specific verb ('Creates') and resource ('a collection') with the exact Postman Collection v2.1.0 schema format, giving a clear and unambiguous purpose. It is easy to distinguish from sibling tools like createCollectionRequest, generateCollection, or duplicateCollection without needing to inspect their schemas.

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 when-to-use guidance relative to the many sibling create/update tools; it never names an alternative or states conditions for choosing this tool. The note about workspace default is about behavior rather than use-case selection, and it creates ambiguity because it says the workspace can be omitted while the input schema marks it as required.

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

createCollectionRequestCreate a requestAInspect

Creates a request in a collection. For a complete list of properties, refer to the Request entry in the Postman Collection Format documentation.

Note:

It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a request with a blank name.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe request's URL.
authNoThe request's authorization settings.
dataNoThe request body's form or urlencoded data.
nameNoThe request's name. It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a request with a blank name.
eventsNoThe request's pre-request and test scripts.
folderNoThe folder ID in which to create the request. By default, the system creates the request at the collection level.
methodNoThe request's HTTP method.
dataModeNoThe request body's data mode.
headerDataNoThe request's headers.
dataOptionsNoAdditional options for the request body data.
descriptionNoThe request's description.
queryParamsNoThe request's query parameters.
rawModeDataNoThe request body's raw mode data.
collectionIdYesThe collection's ID.
graphqlModeDataNoThe request body's GraphQL mode data.

TDQS

A3.5/5.0
Behavior3/5

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

The description adds a behavioral detail that omitting 'name' results in a blank name, which goes beyond the schema. However, it does not disclose idempotency, side effects, or what happens on error. The annotations already indicate readOnlyHint=false and destructiveHint=false, so there is no contradiction, but the behavioral context is limited to the null-name note.

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 short and front-loaded with the purpose. The note about name is concise and relevant. The external documentation link adds value without overloading the expression.

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

Completeness2/5

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

The tool has no output schema, and the description does not explain what the tool returns or how the generated collection request is identified. It also does not mention that collectionId is required or the implications of folder placement, leaving an important gap for the agent.

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 coverage is 100% for all 15 parameters, so the schema provides the parameter meaning and the description adds no significant extra insight beyond the external documentation link. The name recommendation is repeated from the schema, offering no additional parameter semantics.

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 clear states a specific verb and resource: 'Creates a request in a collection.' It distinguishes itself from siblings like createCollection and createCollectionResponse by specifying 'request' and the container 'collection'.

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 the tool is for creating new requests in a collection, but it does not explicitly state when to use it vs. updateCollectionRequest or other creation tools. The note about name is a practical recommendation, but it does not provide explicit 'when to use' or 'when not to use' guidance.

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

createCollectionResponseCreate a responseBInspect

Creates a request response in a collection. For a complete list of request body properties, refer to the Response entry in the Postman Collection Format documentation.

Note:

It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a response with a blank name.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe associated request's URL.
mimeNoThe response's MIME type.
nameNoThe response's name. It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a response with a blank name.
textNoThe raw text of the response body.
timeNoThe time taken by the request to complete, in milliseconds.
methodNoThe associated request's HTTP method.
statusNoThe response's HTTP status text.
cookiesNoThe response's cookie data.
headersNoThe response's headers.
requestYesThe parent request's ID.
dataModeNoThe associated request body's data mode.
languageNoThe response body's language type.
dataOptionsNoAdditional options for the associated request body data.
descriptionNoThe response's description.
rawDataTypeNoThe response's raw data type.
rawModeDataNoThe associated request body's raw mode data.
collectionIdYesThe collection's ID.
responseCodeNoThe response's HTTP response code information.
requestObjectNoA JSON-stringified representation of the associated request.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false (write operation) and destructiveHint=false. The description adds a useful behavioral note: omitting `name` results in a null value and a blank response name. This adds value beyond the annotations, though it doesn't discuss other behaviors like required dependency on an existing request or error cases. Given the annotation coverage, a 3 is appropriate.

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 concise and well-structured: a single purpose sentence followed by a focused, bolded 'Note' about the `name` property. The core purpose is front-loaded, and the note earns its place by flagging a common pitfall. Slightly more detail could be added, but overall it is appropriately sized for the tool.

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?

For a create operation with 19 parameters and no output schema, the description is reasonably complete given the schema's 100% parameter coverage and the external documentation link. However, it does not explain what happens on success (e.g., returned object or status), any validation constraints, or dependencies on an existing request—which an agent might need since there is no output schema to clarify return values.

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 fully documents all 19 parameters including enums and nested structures. The description adds a note about the `name` property recommendation, but this same detail is already present in the schema's `name` property description ('It is recommended that you pass the `name` property...'). Therefore the description adds minimal value beyond the schema, warranting the baseline 3.

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 states a clear verb and resource: 'Creates a request response in a collection.' This is specific enough to understand the operation, but it does not explicitly differentiate from close siblings like `createCollectionRequest` or `updateCollectionRequest`, relying on the name's 'Response' component to hint at the distinction. Overall, the purpose is clear and not a tautology.

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. There are no exclusions, prerequisites, or mentions of sibling tools like `createCollectionRequest` to clarify context. The only contextual note is the recommendation about the `name` property, which is a parameter-level detail rather than usage guidance.

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

createEnvironmentCreate an environmentAInspect

Creates an environment.

Note:

  • The request body size cannot exceed the maximum allowed size of 30MB.

  • If you receive an HTTP `411 Length Required` error response, manually pass the `Content-Length` header and its value in the request header.

  • If you do not include the `workspace` query parameter, the system creates the environment in the oldest personal Internal workspace you own.

  • Only shared variable values can be modified through the Postman API. A shared variable is an environment variable with its value synced and stored in the Postman cloud, and can be accessed by your teammates in the environment's workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceYesThe workspace's ID.
environmentNoInformation about the environment.

TDQS

A4/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond annotations: request body size limit (30MB), handling of 411 error, default workspace selection, and the limitation on modifying only shared variable values. These details help the agent understand side effects and constraints without contradicting the readOnlyHint=false annotation.

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 main description is concise, and the note is structured with bullet points. However, the note about shared variables is lengthy and could be trimmed, though it is relevant. Overall, it is not excessively verbose.

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?

The description covers operational details like size limits and error handling, but it does not mention the success return value or any prerequisites. The workspace parameter discrepancy (optional in description vs required in schema) leaves some ambiguity. Given the tool's complexity and lack of output schema, more detail on creation outcomes would be helpful.

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?

Schema coverage is 100%, so baseline is 3. The description adds meaningful semantics for the workspace parameter (defaults to oldest personal Internal workspace when omitted) and for the values parameter (only shared variable values can be modified via API). However, there is a contradiction: the schema marks workspace as required, while the description implies it is optional, which could confuse the agent.

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 starts with 'Creates an environment.' which clearly states a specific verb and resource. It distinguishes from sibling tools like createCollection and createWorkspace by specifically targeting environments.

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 context about default workspace behavior and error handling, but does not explicitly state when to use this tool versus alternatives (e.g., updateEnvironment). There is no mention of exclusions or comparison with sibling create tools.

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

createMockCreate a mock server (provide collection UID)AInspect

Creates a mock server in a collection.

  • Pass the collection UID (ownerId-collectionId), not the bare collection ID.

  • If you only have a `collectionId`, resolve the UID first:

    1. Prefer GET `/collections/{collectionId}` and read `uid`, or

    2. Construct `{ownerId}-{collectionId}` using ownerId from GET `/me`:

    • For team-owned collections: `ownerId = me.teamId`

    • For personal collections: `ownerId = me.user.id`

  • Use the `workspace` query to place the mock in a specific workspace. Prefer explicit workspace scoping.

ParametersJSON Schema
NameRequiredDescriptionDefault
mockNoInformation about the mock server to create.
workspaceYesThe workspace's ID.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already mark this as non-readonly, non-idempotent, and non-destructive. The description adds a meaningful behavioral requirement: the collection property must be a UID (ownerId-collectionId), not a bare ID, and gives two ways to resolve it. It also clarifies workspace placement, going beyond the structured annotation data.

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 front-loaded with the core action, then uses short actionable bullets for UID resolution and workspace guidance. Every line earns its place: the UID requirement is essential, the resolution steps are compact, and the workspace preference is a one-line reinforcement.

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

Completeness5/5

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

Given the schema fully documents the mock/name/private/environment fields and the description covers the non-obvious UID requirement and workspace handling, the agent has everything needed to construct a valid call. No output schema exists, so return values do not need explanation. The description closes the main correctness gap left by the schema.

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

Parameters5/5

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

Though schema coverage is 100%, the description materially enriches the `collection` parameter by warning that bare IDs are wrong and explaining how to derive the UID. It also upgrades `workspace` from a simple ID to a placement scoping hint with the instruction to prefer explicit workspace scoping. This adds high-value meaning beyond the JSON Schema descriptions.

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 opens with 'Creates a mock server in a collection,' a clear verb-resource statement that identifies the tool's core action. The title and description together differentiate createMock from the sibling updateMock, publishMock, getMock, and getMocks.

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

Usage Guidelines4/5

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

The description gives concrete when-to-use guidance by requiring the collection UID and providing a resolution path (GET /collections/{id}, GET /me) and by recommending explicit workspace scoping. It does not explicitly say 'use updateMock when the server already exists,' so it misses formal alternative comparison, but it is far above merely implied usage.

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

createSpecCreate a specAInspect

Creates an API specification in Postman's Spec Hub. Specifications can be single or multi-file.

Note:

  • Postman supports OpenAPI (2.0, 3.0, and 3.1), AsyncAPI (2.0 and 3.0), protobuf (2 and 3), GraphQL, and Smithy specifications.

  • If the file path contains a `/` (forward slash) character, then a folder is created. For example, if the path is the `components/schemas.json` value, then a `components` folder is created with the `schemas.json` file inside.

  • Multi-file specifications can only have one root file.

  • Files cannot exceed a maximum of 12 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe specification's name.
typeYesThe type of API specification.
filesYesA list of the specification's files and their contents.
workspaceIdYesThe workspace's ID.

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already mark this as a write operation (readOnlyHint:false), and the description adds valuable behavioral details: file size limit (12 MB), folder creation when paths contain '/', and the requirement that multi-file specs have exactly one ROOT file. These constraints go beyond the schema and help set expectations.

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 front-loaded with the primary action, followed by a focused bullet list of five relevant notes. No redundant content; each note addresses a likely usage question (supported formats, folder behavior, file size).

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?

For a create operation with a complex 'files' array, the description covers supported formats, folder creation, root file constraints, and file size limits. It doesn't describe the return value or error conditions, but given the annotations and schema, this is largely sufficient for an agent to invoke correctly.

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?

Schema coverage is 100% for all four parameters. The description adds meaningful context about the 'files' parameter, specifically how path separators create folders and the ROOT/DEFAULT file type requirement for multi-file specs, which is not fully evident from the schema alone.

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 'Creates an API specification in Postman's Spec Hub', specifying the action and resource. It also distinguishes itself by mentioning single or multi-file specs, making it clear this creates a spec rather than merely adding files to an existing one (as with createSpecFile).

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 rich context about supported formats and constraints, but it doesn't explicitly state when to use this tool versus createSpecFile or other spec-related siblings. There's no explicit alternative or exclusion, so an agent must infer the boundary.

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

createSpecFileCreate a spec fileAInspect

Creates a file for an OpenAPI or a protobuf 2 or 3 specification.

Note:

  • If the file path contains a `/` (forward slash) character, then a folder is created. For example, if the path is the `components/schemas.json` value, then a `components` folder is created with the `schemas.json` file inside.

  • Creating a spec file assigns it the `DEFAULT` file type.

  • Multi-file specifications can only have one root file.

  • Files cannot exceed a maximum of 10 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file's path. Accepts JSON or YAML files.
specIdYesThe spec's ID.
contentYesThe file's stringified contents.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, non-destructive, non-idempotent operation. The description adds valuable behavioral details beyond annotations: folder creation when '/' is in the path, DEFAULT file type assignment, single root file limit for multi-file specs, and a 10 MB file size cap. No contradiction with annotations.

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 concise: a single-sentence purpose followed by four focused bullet points. It front-loads the main action and uses formatting that makes the additional notes easy to scan. Every sentence contributes useful information (folder behavior, file type, root file rule, size limit).

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?

For a simple create operation with no output schema and full annotation coverage, the description covers creation behavior, file type, size limits, and multi-file constraints. It does not explain response behavior or what happens if the file already exists, but the annotations (non-destructive) and sibling context mitigate that gap. Overall sufficient for an agent to invoke correctly.

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 covers all three parameters with descriptions (100% coverage), so the baseline is 3. The description adds specific semantic value for the 'path' parameter—explaining that a forward slash triggers folder creation—which goes beyond the schema's 'file's path' description. It does not add much for 'specId' or 'content', but the path insight is meaningful.

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 states a specific verb ('Creates') and resource ('a file for an OpenAPI or a protobuf 2 or 3 specification'), clearly distinguishing it from sibling tools like createSpec (which creates a spec) and updateSpecFile (which modifies). It also scopes the file types supported, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description implies when to use this tool: to create a file within a spec, with notes about folder creation and multi-file root constraints. It does not explicitly name alternatives, but the context of 'file for a specification' reasonably separates it from createSpec. The note on multi-file roots adds usage-relevant guidance.

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

createWorkspaceCreate a workspaceAInspect

Creates a new workspace.

Note:

  • This endpoint returns a 403 `Forbidden` response if the user does not have permission to create workspaces. Admins and Super Admins can configure workspace permissions to restrict users and/or user groups from creating workspaces or require approvals for the creation of team workspaces.

  • Private and Partner Workspaces are available on Postman Team and Enterprise plans.

  • There are rate limits when publishing public workspaces.

  • Public team workspace names must be unique.

  • The `teamId` property must be passed in the request body if Postman Organizations is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceNoInformation about the workspace.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish non-readonly, non-destructive, open-world behavior, so the bar is lower; the description clears it by disclosing concrete failure behavior (403), rate-limit constraints on publishing, public workspace name uniqueness, and the conditional teamId requirement. These operational details add genuine context beyond the annotation hints, though no response-format or rollback info is disclosed.

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 front-loaded with the one-sentence purpose followed by five tightly-scoped bullets, each carrying operational weight—permissions, plan restrictions, rate limits, naming, and conditional requirements. Every sentence earns its place, though it's slightly long for the simplest read of the action.

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?

For a single-parameter create operation with no output schema, the description covers the key edge cases: permission failures, plan limits, uniqueness, and a conditional required field. It's thorough given the tool's simplicity, leaving no major operational gap, though it doesn't describe the returned workspace object.

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% with the nested workspace object fully documented, so the baseline is 3. The description's teamId note is duplicative of the schema's own teamId property description, and it adds no new parameter semantics beyond what the schema captures.

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 opens with the specific verb-resource pairing 'Creates a new workspace,' which unambiguously states the operation and target. This clearly distinguishes it from siblings like getWorkspaces, getWorkspace, and updateWorkspace in the broader CRUD family.

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 rich operational context—403 Forbidden behavior when permissions are lacking, rate limits on public workspaces, and name-uniqueness constraints—which implies when the call will fail. However, it never explicitly tells the agent when to select this tool over alternatives (e.g., updateWorkspace for modifications), so usage guidance is implied rather than stated.

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

duplicateCollectionDuplicate a collectionAInspect

Creates a duplicate of the given collection in another workspace.

Use the GET `/collection-duplicate-tasks/{taskId}` endpoint to get the duplication task's current status.

ParametersJSON Schema
NameRequiredDescriptionDefault
suffixNoAn optional suffix to append to the duplicated collection's name.
workspaceYesThe workspace ID in which to duplicate the collection.
collectionIdYesThe collection's unique ID.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, so the description's 'creates' is consistent. It adds valuable behavioral context by indicating the operation is asynchronous (via the status endpoint) and not destructive, going beyond the basic write-operation hint. It does not detail permissions or potential side effects, but the async nature is key context.

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 two concise sentences: the first states the core purpose, and the second provides an essential follow-up action (checking status). No redundant words, and the critical information is front-loaded. Every sentence earns its place.

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?

For a tool with no output schema, the description points to the status endpoint, implicitly suggesting the response contains a task ID, but does not explicitly define the return value. It covers the main flow (kick off duplication, then poll status) but could benefit from stating the response format or task ID. Given the tool's moderate complexity and lack of nested objects, this is largely sufficient.

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?

The input schema fully describes all three parameters (suffix, workspace, collectionId) with clear descriptions. The tool description does not add additional meaning or examples beyond what the schema provides, so it meets the baseline for high schema coverage but contributes no extra semantics.

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 the action: 'Creates a duplicate of the given collection in another workspace.' It specifies the verb (creates), the resource (collection duplicate), and the destination (another workspace), distinguishing it from other collection-related tools like putCollection or getCollection.

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 a follow-up instruction for checking task status but does not explicitly state when to use this tool versus alternatives or any exclusions. It implies use for duplication but lacks explicit guidance on when not to use it or what alternatives exist, such as copying within the same workspace.

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

generateCollectionGenerate a collection from specAInspect

Creates a collection from the given API specification. The specification must already exist or be created before it can be used to generate a collection. The response contains a polling link to the task status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe generated collection's name.
specIdYesThe spec's ID.
optionsYesThe advanced creation options and their values. For more details, see Postman's [OpenAPI to Postman Collection Converter OPTIONS documentation](https://github.com/postmanlabs/openapi-to-postman/blob/develop/OPTIONS.md). These properties are case-sensitive.
elementTypeYesThe `collection` element type.

TDQS

A4/5.0
Behavior4/5

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

Annotations already convey openness (openWorldHint=true) and non-read-only nature (readOnlyHint=false), which the description aligns with via 'Creates a collection.' The description adds valuable behavioral context beyond annotations: the prerequisite constraint and the asynchronous polling-link response pattern. It could be enhanced by noting side effects or rate-limit concerns for this resource-creating operation, but the annotation disclosure is non-contradictory and sufficiently augmented.

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 sentences, each earning its place: first defines the action, second states the prerequisite, third describes the response. Front-loaded with the most important information and contains zero fluff or filler. This is a model of concise, value-dense description writing.

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?

With a moderately complex nested `options` object (9 sub-fields) and no output schema, the description does well to highlight the async nature via the polling link. The schema carries the full load on parameters, which it does thoroughly. A note on return type or error cases (e.g., what happens on invalid specId) could push this higher, but for the given scope, it's largely sufficient. The polling-link hint meaningfully compensates for the absent output schema.

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% across all 4 required parameters, so the baseline is 3, and the description adds no parameter-level details beyond what's in the schema. The description's mention of the spec existence requirement and the polling response is tangentially related but doesn't add new parameter semantics. With no param gaps in the schema, the description is not penalized further, but neither does it earn bonus credit — exactly the baseline.

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 ('Creates'), resource ('collection'), and source ('from the given API specification'), which is specific and distinguishes it from sibling tools like `createCollection`. However, it doesn't explicitly contrast itself with siblings like `createCollection` or `syncCollectionWithSpec`, so it misses the full 5. The prerequisite note ('specification must already exist') adds useful scope definition.

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool: after a spec exists ('must already exist or be created before it can be used') and informs the agent about the async response behavior ('response contains a polling link to the task status'). However, it doesn't explicitly mention when NOT to use it or name alternatives, which would be needed for a 5.

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

generateSpecFromCollectionGenerate spec from collectionAInspect

Generates an OpenAPI 2.0, 3.0, or 3.1 specification for the given collection. The response contains a polling link to the task status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe API specification's name.
typeYesThe specification's type.
formatYesThe format of the API specification.
elementTypeYesThe `spec` value.
collectionUidYesThe collection's unique ID.

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate a mutating operation (readOnlyHint=false) but not destructive. The description adds that the response contains a polling link to task status, disclosing the asynchronous nature of the operation. This is valuable behavioral context beyond annotations, though it doesn't detail other side effects or permissions.

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?

Two sentences, front-loaded with purpose, and no wasted words. It states what it does and mentions the asynchronous result link concisely.

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?

For a tool with 5 parameters (all schema-documented) and no output schema, the description is mostly complete. It explains the main behavior and notes the polling link for status. It could mention prerequisites (e.g., collection must exist) but that is implicit and acceptable.

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. The description adds no new information about parameters beyond reinforcing the spec type via 'OpenAPI 2.0, 3.0, or 3.1'. Baseline of 3 is appropriate since the schema does the heavy lifting.

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 the tool generates an OpenAPI specification (2.0, 3.0, or 3.1) for a given collection. It uses a specific verb+resource structure and differentiates from siblings like createSpec or generateCollection by focusing on the conversion from collection to spec.

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 (for a given collection) but does not explicitly contrast with alternatives or state when not to use it. It lacks the explicit when/when-not guidance seen in higher-scoring tools, though the context is reasonably clear.

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

getAllSpecsGet all specsA
Read-onlyIdempotent
Inspect

Gets all API specifications in a workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoThe maximum number of rows to return in the response.
cursorNoThe pointer to the first record of the set of paginated results. To view the next response, use the `nextCursor` value for this parameter.
workspaceIdYesThe workspace's ID.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the workspace scoping constraint but does not disclose pagination behavior, response format, or potential large result sets. Some value added, but limited beyond annotations.

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?

One short, front-loaded sentence: 'Gets all API specifications in a workspace.' Every word earns its place, with no redundancy or filler.

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?

For a simple read-only list tool, the description is mostly sufficient: full schema coverage, clear safety annotations, and a concise purpose. However, it lacks explicit pagination behavior (despite cursor schema) and alternative tool guidance, so it falls short of perfect completeness.

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% – all three parameters (workspaceId, limit, cursor) have clear descriptions. The tool description adds no additional parameter meaning, so baseline 3 is appropriate.

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?

Description clearly states 'Gets all API specifications in a workspace' – a specific verb ('gets'), resource ('all API specifications'), and scope ('in a workspace'). This distinguishes it from siblings like getSpec (singular) and getSpecFiles (files, not specs).

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?

No guidance on when to use this tool versus alternatives. It doesn't mention using getSpec for a single spec or how pagination with limit/cursor works. With 35+ sibling tools, the lack of explicit usage context is a significant gap.

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

getAuthenticatedUserGet authenticated user (current user context)A
Read-onlyIdempotent
Inspect

Gets information about the authenticated user.

  • This endpoint provides “current user” context (`user.id`, `username`, `teamId`, roles).

  • When a user asks for “my …” (e.g., “my workspaces, my information, etc.”), call this first to resolve the user ID.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior3/5

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

Annotations already indicate read-only and idempotent behavior. Description adds no extra behavioral traits beyond clarifying the purpose; it does not mention side effects or permissions, but that is covered by annotations.

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?

Concise two-sentence description with a bullet point, no unnecessary fluff, and well-organized.

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

Completeness5/5

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

Given no parameters and no output schema, the description is sufficient. It explains what the tool does and when to use it.

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

Parameters5/5

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

No parameters exist, so schema coverage is complete. Description need not add parameter details.

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?

Clearly states it gets the authenticated user's information, with a specific verb and resource. The mention of fields (user.id, username, teamId, roles) further clarifies purpose.

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

Usage Guidelines5/5

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

Explicitly provides when to use: when the user asks for 'my ...' to resolve the user ID. This is a strong usage guideline.

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

getCollectionA
Read-onlyIdempotent
Inspect

Get information about a collection. By default this tool returns the lightweight collection map (metadata + recursive itemRefs). Use the model parameter to opt in to Postman's full API responses:

  • model=minimal — root-level folder/request IDs only

  • model=full — full Postman collection payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOptional response shape override. Omit to receive the lightweight collection map. Set to `minimal` for the Postman minimal model or `full` for the complete collection payload.
access_keyNoA collection's read-only access key. Using this query parameter does not require an API key to call the endpoint.
collectionIdYesThe collection ID must be in the form <OWNER_ID>-<UUID> (e.g. 12345-33823532ab9e41c9b6fd12d0fd459b8b).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds behavioral context about the default response shape (lightweight map) and the model parameter to opt into full payloads, aligning with read-only nature.

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 two sentences, concise and front-loaded. The first sentence states the purpose, the second explains the key parameter. No extraneous words.

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?

For a read-only collection retrieval tool with three parameters and no output schema, the description covers the default response, model options, and the nature of the return data (metadata + itemRefs). It lacks details on response structure relative to other tools, but is adequate.

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%, with all three parameters fully described. The description does not add new meaning beyond the schema; it only reiterates the model parameter's options. Baseline score of 3 applies.

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 and resource ('Get information about a collection') and explains the default lightweight response and optional model parameter. It implicitly distinguishes from the sibling `getCollections` by its singular naming, but does not explicitly contrast it.

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 does not provide explicit guidance on when to use this tool versus alternatives like `getCollections`. It focuses on the model parameter options but lacks context for selection among similar tools.

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

getCollectionsGet all collectionsC
Read-onlyIdempotent
Inspect

The workspace ID query is required for this endpoint. If not provided, the LLM should ask the user to provide it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter results by collections whose name exactly matches the given value. Partial or substring matches are not supported.
limitNoThe maximum number of rows to return in the response.
offsetNoThe zero-based offset of the first item to return.
workspaceYesThe workspace's ID.

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds no behavioral details like return format or pagination, and the workspace requirement is already in the schema. Thus it adds minimal value beyond annotations.

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, focused sentence that directly instructs the LLM about the required parameter. It is concise, though it duplicates schema info slightly, it earns its place by instructing the agent to ask the user.

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

Completeness2/5

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

The description is incomplete for a list endpoint: it does not state that it returns collections, nor mention any filtering or pagination behavior implied by the parameters. It focuses only on the workspace requirement, leaving the agent to infer the tool's function from its name.

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 all four parameters are documented. The description only restates that workspace is required, which is already in the schema; it adds no additional semantic meaning.

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

Purpose2/5

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

The title states 'Get all collections' but the description only mentions the required workspace ID, not the tool's actual purpose. It does not explicitly say it retrieves collections, so the purpose is vague.

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 a specific guideline about asking the user for the workspace ID if missing, but does not indicate when to use this tool versus alternatives like 'getCollection' or 'searchPostmanElements'. No exclusions or context for selection.

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

getDuplicateCollectionTaskStatusGet duplication task statusA
Read-onlyIdempotent
Inspect

Gets the status of a collection duplication task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task's unique ID.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safety profile is covered. The description adds no further behavioral details (e.g., polling semantics, task lifecycle). While minimal, this meets the baseline for simple getter with good annotation coverage.

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?

A single, clear sentence with no extraneous words. Perfectly front-loaded and appropriately brief for a simple getter.

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?

For a simple tool with one parameter, comprehensive annotations, and no output schema, the description is sufficient. It lacks details about return format or error cases, but these are not required given the tool's simplicity and the absence of an output schema. A minor deduction because it doesn't reference the asynchronous nature of duplication tasks, but this is not critical.

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% for the single taskId parameter. The description does not mention parameters at all, relying entirely on the schema. Per guidelines, with high coverage, baseline is 3, and no extra value is added here.

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 'Gets the status of a collection duplication task' uses a specific verb ('Gets') and identifies the exact resource ('status of a collection duplication task'). It clearly differentiates from sibling tools like 'duplicateCollection' and other getters, making its purpose unambiguous.

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 for checking status after duplication, but does not explicitly state when to use it versus alternatives or mention any preconditions. There's no direct guidance on when not to use it, but the context of sibling tools suggests this is a status-checking operation. This aligns with 'implied usage' (score 3).

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

getEnabledToolsA
Read-onlyIdempotent
Inspect

IMPORTANT: Run this tool first when a requested tool is unavailable. Returns information about which tools are enabled in the full and minimal tool sets, helping you identify available alternatives.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint as true. The description adds behavioral context beyond annotations by specifying the intended invocation order and the purpose of identifying alternatives. No contradictions.

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?

Two concise sentences with zero waste. The first sentence is an imperative instruction, the second explains the output. Every word earns its place.

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 there are no parameters and no output schema, the description adequately covers the tool's purpose and usage. It could optionally describe the output format (e.g., list of tool names), but the current text is sufficient for a simple informational tool.

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?

No parameters exist in the input schema, so the description does not need to add parameter semantics. Baseline score of 4 is appropriate.

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 what the tool does: returns information about enabled tools. It also provides a specific usage context: run it first when a requested tool is unavailable. This distinguishes it from all sibling tools which deal with collections, specs, etc.

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

Usage Guidelines5/5

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

Explicitly says when to use the tool ('when a requested tool is unavailable') and what it helps with ('identifying available alternatives'). This is a direct and helpful usage guideline.

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

getEnvironmentGet an environmentC
Read-onlyIdempotent
Inspect

Gets information about an environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesThe environment's ID.

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description only says 'Gets information', which adds no extra context beyond what annotations state. It does not describe output format, potential error cases, or any additional behavioral traits, so it fails to add value beyond the structured metadata.

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

Conciseness3/5

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

The description is a single short sentence with no fluff, making it concise. However, it is so minimal that it lacks substance; the sentence 'Gets information about an environment' is almost a tautology of the title. It is appropriately short but underdelivers on useful information, so a 3 is fair.

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

Completeness2/5

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

Despite low complexity (1 param, no output schema), the description is too sparse. It does not hint at what 'information' is returned, nor does it mention any constraints like authentication scope. With no output schema, the agent is left guessing about the response structure. The description fails to round out the tool's context, so it scores 2.

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?

The schema fully describes the single parameter environmentId, achieving 100% coverage. The description does not contribute any additional meaning, but the baseline for full coverage is 3. Since the tool is simple and the parameter is well-documented, a 3 is appropriate.

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 states the verb 'Gets' and resource 'environment', which is clear. However, it does not explicitly differentiate from sibling tools like getEnvironments (which likely lists environments) or hint that it retrieves a single environment by ID. The title and schema imply this, but the description itself lacks that distinction, so it scores 4.

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?

No guidance is provided on when to use this tool versus alternatives. It does not mention that getEnvironments is for listing or that this is for a specific environment. There is no context about prerequisites or typical API workflows, so the agent gets no usage direction.

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

getEnvironmentsGet all environmentsA
Read-onlyIdempotent
Inspect

Gets information about all of your environments.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceNoThe workspace's ID.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds the scope (all environments) and links to docs, but doesn't disclose behavior like pagination, response format, or workspace filtering effects beyond the schema.

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?

One sentence with a helpful documentation link. No wasted words, front-loaded with the core purpose.

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?

For a simple read-only list tool with one optional parameter and full schema coverage, the description is adequate. It could mention that workspace is optional and what happens if omitted, but the schema already indicates it's not required. No output schema, but the tool name and description imply a list of environments.

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 coverage is 100% (workspace parameter described as 'The workspace's ID.'). The description doesn't add extra meaning beyond the schema, but the schema is sufficient. Baseline 3 is appropriate.

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 gets information about all environments, with a link to documentation. It distinguishes from getEnvironment (singular) and createEnvironment, though it doesn't explicitly contrast with siblings.

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 for retrieving all environments, but doesn't provide explicit when-to-use vs alternatives. The optional workspace parameter suggests filtering, but no guidance on when to use this vs getEnvironment or getWorkspaces.

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

getGeneratedCollectionSpecsGet generated specB
Read-onlyIdempotent
Inspect

Gets the API specification generated for the given collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
elementTypeYesThe `spec` value.
collectionUidYesThe collection's unique ID.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Gets' is consistent. The description adds the context that the spec is generated for the collection, but it does not disclose any behavior when no generated spec exists or what format the spec is returned in.

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 one sentence, front-loaded, and directly states the core action. It contains no filler, fluff, or redundant repetition of the tool name or title.

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?

This is a simple two-parameter read-only retrieval tool, and the description plus schema and annotations are largely sufficient. Since there is no output schema, the description could be slightly more complete by explaining what form the API specification is returned in.

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 fully documents both 'collectionUid' and 'elementType'. The description does not add parameter-specific detail, but it also does not need to since the input schema already carries that burden.

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 uses a specific verb and resource: 'Gets the API specification generated for the given collection.' This clearly identifies what the tool returns and ties it to a collection, which distinguishes it from broader getter tools like getAllSpecs. However, it does not explicitly contrast with similar sibling read tools such as getSpec or getSpecCollections.

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 getSpec, getSpecCollections, or generateSpecFromCollection. There is no mention of prerequisites, such as whether a spec must first be generated for the collection.

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

getMockGet a mock serverA
Read-onlyIdempotent
Inspect

Gets information about a mock server.

  • Resource: Mock server entity. Response includes the associated `collection` UID and `mockUrl`.

  • Use the `collection` UID to navigate back to the source collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
mockIdYesThe mock's ID.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds value by detailing response fields (collection UID and mockUrl) without contradicting any annotations. This gives the agent useful behavioral context beyond the structured metadata.

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 concise and efficiently structured: a clear opening sentence and a bullet point for the response details. No filler or redundant information, and it is front-loaded with the primary purpose.

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

Completeness5/5

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

For a simple get operation with one parameter, the description, combined with annotations (read-only, idempotent) and schema (full parameter description), covers all necessary aspects: action, resource, response fields, and safety. The lack of an output schema is mitigated by the explicit mention of the returned fields.

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?

The sole parameter mockId is fully described in the schema as 'The mock's ID,' covering 100% of the schema. The description does not add extra meaning to the parameter, but with complete schema coverage, baseline 3 is appropriate.

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 'Gets information about a mock server,' specifying the action (gets) and the resource (mock server). It distinguishes from siblings like getMocks (plural) by focusing on a single mock entity, and it adds response details (collection UID, mockUrl) that clarify what information is returned.

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

Usage Guidelines4/5

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

The description gives context about the response, advising to use the collection UID for navigation, but it does not explicitly contrast with alternatives like getMocks or state when this tool should be selected. The purpose is clear enough to imply usage, but explicit selection criteria are missing.

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

getMocksGet mock servers (filter by workspace or team)A
Read-onlyIdempotent
Inspect

Gets all active mock servers. By default, returns only mock servers you created across all workspaces.

  • Always pass either the `workspace` or `teamId` query to scope results. Prefer `workspace` when known.

  • If you need team-scoped results, set `teamId` from the current user: call GET `/me` and use `me.teamId`.

  • If both `teamId` and `workspace` are passed, only `workspace` is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoReturn only results that belong to the given team ID. - For team-scoped requests, set this from GET `/me` (`me.teamId`).
workspaceNoReturn only results found in the given workspace ID. - Prefer this parameter when the user mentions a specific workspace.

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint, the description adds valuable behavioral context: that it returns only servers the user created, and that workspace takes precedence over teamId. These nuances go beyond the annotations without contradicting them, covering key aspects like ownership filtering and parameter precedence.

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 concise and well-structured: a clear main sentence followed by three bullet points with actionable guidance. No redundant information or filler. Each sentence earns its place, effectively communicating purpose and usage in under 80 words.

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?

For a simple list tool with two optional parameters, the description covers the essential aspects: what it returns (active mock servers, user-created by default), how to scope results, and parameter precedence. While it doesn't describe the response format or pagination, the tool's name and purpose make these implicit, and the annotations cover safety. This is adequate for the tool's complexity.

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?

Schema coverage is 100% with both parameters documented. The description adds cross-parameter constraints and guidance (prefer workspace, how to set teamId from /me, and precedence rules) that enrich the schema's per-field descriptions. This goes beyond the baseline, providing actionable context for parameter selection.

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 the tool gets all active mock servers, and specifies that by default it returns only the user's own mock servers across workspaces. This distinguishes it from siblings like getMock (singular) by explicitly focusing on listing multiple servers, and adds scope details that clarify its purpose.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: always pass either workspace or teamId, prefer workspace, and explains how to obtain teamId via GET /me. It also clarifies precedence when both are passed. However, it does not explicitly contrast with alternative tools (e.g., getMock for single server), so it falls short of full 'when-not' guidance.

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

getSpecGet a specB
Read-onlyIdempotent
Inspect

Gets information about an API specification.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe spec's ID.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no additional behavioral details such as error handling or what 'information' is returned, but it does not contradict annotations.

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, front-loaded sentence with no wasted words. However, it is nearly redundant with the title 'Get a spec' and provides minimal additional value.

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?

With no output schema, the description is vague about what the return value contains. The tool is simple and annotations cover safety, but the description lacks enough detail to fully understand the tool's output, especially compared to sibling tools like getSpecDefinition.

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?

The input schema covers 100% of the single parameter specId with a description. The tool description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.

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 'Gets information about an API specification' clearly identifies a get operation on a spec resource. However, it does not differentiate between sibling tools like getSpecDefinition, getSpecFile, or getSpecCollections, making the purpose clear but not distinct.

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?

No guidance is provided about when to use this tool versus the many sibling get tools. The agent is given no selection criteria or context for choosing getSpec over alternatives.

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

getSpecCollectionsGet a spec's generated collectionsA
Read-onlyIdempotent
Inspect

Gets all of an API specification's generated collections.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoThe maximum number of rows to return in the response.
cursorNoThe pointer to the first record of the set of paginated results. To view the next response, use the `nextCursor` value for this parameter.
specIdYesThe spec's ID.
elementTypeYesThe `collection` element type.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'generated collections' scope but does not disclose pagination behavior, ordering, or response details beyond what the schema already suggests.

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 a single, front-loaded sentence that directly states the tool's purpose with no filler or repetition. It is concise and every word contributes meaning.

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?

For a simple read-only listing tool with rich annotations and a fully documented schema, the description is largely sufficient. The only minor gap is that 'all' is not reconciled with limit/cursor pagination, but the schema provides cursor and nextCursor guidance.

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%, and each parameter is already documented in the input schema, including the const value for elementType and cursor semantics. The description adds no additional parameter-level meaning beyond the schema, so baseline 3 is appropriate.

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 'Gets all of an API specification's generated collections' has a specific verb, resource, and scope. It clearly distinguishes itself from siblings like getCollection (single collection) and getGeneratedCollectionSpecs (the reverse direction) by focusing on a spec's generated collections.

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?

No guidance is provided about when to use this tool versus alternatives such as getCollections or generateCollection. The description simply states what the tool does without any context or exclusions.

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

getSpecDefinitionGet a spec's definitionB
Read-onlyIdempotent
Inspect

Gets the complete contents of an OpenAPI or AsyncAPI specification's definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe spec's ID.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate this is a read-only, idempotent, non-destructive operation. The description adds the scope 'complete contents' and the supported spec types (OpenAPI or AsyncAPI), but it does not disclose output format, error behavior, or any additional behavioral nuances.

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 a single, front-loaded sentence with no filler or redundant wording. It communicates the essential action and resource efficiently.

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?

This is a simple one-parameter read tool, and the annotations plus schema cover most important context. The description sufficiently states what is returned ('complete contents of a definition'), though it could be improved by clarifying how it differs from getSpec and getSpecFile.

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?

The input schema fully describes the single parameter 'specId' with a clear description ('The spec's ID.'). The tool description adds no extra parameter-level information, so the schema carries the load and the baseline score applies.

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 uses a specific verb ('Gets') and names the resource ('OpenAPI or AsyncAPI specification's definition'), making the core purpose clear. It does not explicitly differentiate itself from sibling tools like getSpec or getSpecFile, which introduces slight ambiguity.

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?

There is no guidance on when to use this tool instead of alternatives. Given the many sibling tools that also deal with specs, the description provides no context or exclusions to help an agent choose correctly.

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

getSpecFileGet a spec fileA
Read-onlyIdempotent
Inspect

Gets the contents of an API specification's file.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe spec's ID.
filePathYesThe path to the file.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds no additional behavioral context beyond what the annotations provide, such as output format or error behavior. It does not contradict annotations, so a baseline score of 3 is appropriate.

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 a single, short sentence: 'Gets the contents of an API specification's file.' It is front-loaded with the action and resource, contains no redundant words, and fully conveys the core purpose without any fluff. This is an exemplary model of conciseness.

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?

The tool is simple (two parameters, no output schema), and the annotations cover safety. The description clearly indicates the tool retrieves file contents, which is sufficient for basic use. However, it does not specify the return format (e.g., raw text, JSON) or any path conventions, which could be considered a minor gap. Given the low complexity, the description is reasonably complete.

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%, and both parameters have descriptions in the schema: specId ('The spec's ID.') and filePath ('The path to the file.'). The description itself does not elaborate on parameter meaning or usage, so it adds no extra value beyond the schema. Baseline of 3 reflects that the schema handles parameter documentation.

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 states exactly what the tool does: 'Gets the contents of an API specification's file.' It uses a specific verb (Gets) and a clear resource (contents of a file within an API spec), which distinguishes it from siblings like getSpecFiles (listing files) and getSpecDefinition (specific definition). This is a clear, non-tautological purpose.

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. It does not mention that this is for a specific file's contents as opposed to listing files with getSpecFiles or retrieving the whole spec with getSpec. No exclusions or alternative tool references are given.

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

getSpecFilesGet a spec's filesA
Read-onlyIdempotent
Inspect

Gets all the files in an API specification.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe spec's ID.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the 'all files' scope, but does not disclose return shape, pagination, error behavior, or whether file contents are included. It is adequate but not rich.

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?

One short sentence with no redundant phrasing. It is front-loaded, scannable, and every word contributes to understanding the operation.

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?

For a simple read-only tool with one required parameter and strong annotations, the description is sufficient to convey the core operation. It does not describe the output format, but the absence of an output schema and the simplicity of the tool make this a minor gap rather than a critical omission.

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?

The single parameter specId is already documented in the schema with 100% coverage, so the description does not need to add much. It does reinforce that 'spec' refers to an API specification, but adds no syntax, format, or lookup details beyond 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 uses a specific verb ('Gets') and resource ('all the files in an API specification'), clearly distinguishing it from the singular getSpecFile and related getSpec/getSpecDefinition tools. The 'all the files' scope adds precision beyond just the tool name.

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 a caller needs all files belonging to a spec, but it does not explicitly name alternatives like getSpecFile or state when not to use this tool. The sibling tool names provide context, but the description itself offers no direct guidance.

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

getTaggedEntitiesGet elements by tagA
Read-onlyIdempotent
Inspect

Requires an Enterprise plan. Tagging is only available on Postman Enterprise plans. This tool returns a 404 error on Free, Basic, and Professional accounts.

Gets Postman elements (entities) by a given tag. Tags enable you to organize and search workspaces, APIs, and collections that contain shared tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe tag's ID within a team or individual (non-team) user scope.
limitNoThe maximum number of tagged elements to return in a single call.
cursorNoThe cursor to get the next set of results in the paginated response. If you pass an invalid value, the API only returns the first set of results.
directionNoThe ascending (`asc`) or descending (`desc`) order to sort the results by, based on the time of the entity's tagging.desc
entityTypeNoFilter results for the given entity type.

TDQS

A3.7/5.0
Behavior5/5

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

尽管注解已声明 readOnlyHint=true,描述仍主动补充了关键行为:Enterprise plan 要求、各计划下的 404 错误行为,以及通过 tags 组织实体的语义。这种对失败场景的显式披露非常有价值。

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?

两段式结构清晰:首句突出企业版要求的警告,次句点明功能。所有企业版后续处理需求都在描述中,没有冗余信息。略失分在于缺少一个最终总结或示例。

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?

在注解和 schema 完整覆盖之余,描述又补充了企业版计划要求和错误行为等无法从结构数据推断的信息。作为一个简单的标签检索工具,这个描述已经相当完善,只缺操作示例。

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?

模式覆盖率为 100%,所有五个参数(slug, limit, cursor, direction, entityType)在 schema 中都有详细描述。描述本身未添加参数语义,但 schema 已足够完整、自解释,因此维持基线 3 分。

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?

描述明确使用动词 "Gets" 和资源 "Postman elements by a given tag",并补充了'organize and search workspaces, APIs, and collections'的场景说明。虽然未显式区分兄弟工具,但资源范围清晰,足以让 agent 理解核心功能。

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?

明确指出需要 Enterprise plan 及非企业版返回 404 的关键约束,这是重要的触发条件。但未提供何时选择其他兄弟工具(如 searchPostmanElements)的指导,也没有说明与按标签筛选、按关键词搜索等替代方案的区别。

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

getWorkspaceGet a workspaceB
Read-onlyIdempotent
Inspect

Gets information about a workspace.

Note:

This endpoint's response contains the `visibility` field. Visibility determines who can access the workspace:

  • `personal` — Only you can access the workspace.

  • `team` — All team members can access the workspace.

  • `private` — Only invited team members can access the workspace (Team and Enterprise plans only).

  • `public` — Everyone can access the workspace.

  • `partner` — Only invited team members and partners can access the workspace (Team and Enterprise plans only).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoA comma-separated list of values to include in the endpoint's response: - `scim` — Return the SCIM user IDs of the workspace creator and who last modified it. - `team` — Return the workspace's team ID. Returns a null value if the workspace isn't associated with a team. - `mocks:deactivated` — Include all deactivated mock servers in the response.
workspaceIdYesThe workspace's ID.

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds valuable context about the 'visibility' field, explaining its possible values, access implications, and plan restrictions. This enriches the behavioral understanding beyond the bare annotations.

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

Conciseness3/5

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

The core purpose is stated in a single sentence, but the description then expands into a lengthy, detailed explanation of the visibility field with sub-bullets and multiple links. While informative, this makes the description longer than necessary for a simple GET tool and could have been condensed without losing essential information.

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?

The tool is a straightforward GET with two parameters and no output schema. The description explains one field (visibility) but does not provide an overview of other typical workspace properties returned. Given the simplicity and annotation coverage, the description is adequate but could have briefly summarized the general response structure to be more complete.

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%, and the parameter descriptions in the schema are clear (workspaceId and include). The tool description does not add any extra meaning to the parameters; it only discusses the visibility field in the response. With full schema coverage, a baseline score of 3 is appropriate.

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 states 'Gets information about a workspace' with a clear verb and resource, which is unambiguous. However, it does not explicitly distinguish it from sibling tools like getWorkspaces (which lists multiple workspaces), relying on the singular/plural name difference. The main body focuses on the visibility field, which is additional but not primary purpose elaboration.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention when to call getWorkspace instead of getWorkspaces, nor does it describe any prerequisites or context for use. The description is purely about the visibility field semantics, not about usage scenarios.

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

getWorkspacesGet workspaces (filtered and user-scoped)A
Read-onlyIdempotent
Inspect

Gets all workspaces you have access to.

  • For “my …” requests, first call GET `/me` and pass `createdBy={me.user.id}`.

  • This endpoint's response contains the visibility field. Visibility determines who can access the workspace:

    • `personal` — Only you can access the workspace.

    • `team` — All team members can access the workspace.

    • `private` — Only invited team members can access the workspace (Professional and Enterprise).

    • `public` — Everyone can access the workspace.

    • `partner` — Invited team members and partners (Professional and Enterprise).

  • For tools that require the workspace ID, and no workspace ID is provided, ask the user to provide the workspace ID. If the user does not provide the workspace ID, call this first with the createdBy parameter to use the first workspace.

  • Results are paginated. Use the `cursor` parameter to retrieve additional pages.

  • Examples:

    • “List my workspaces” → GET `/me`, then GET `/workspaces?createdBy={me.user.id}&limit=100`

    • “List my personal workspaces” → GET `/me`, then GET `/workspaces?type=personal&createdBy={me.user.id}&limit=100`

    • “List all public workspaces” → GET `/workspaces?type=public&limit=100`

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoThe type of workspace to filter the response by. One of: `personal`, `team`, `private`, `public`, `partner`. - For “my …” requests, this can be combined with `createdBy`. If type is not specified, it will search across all types for that user.
limitNoThe maximum number of workspaces to return per page. Defaults to 100.
cursorNoThe cursor to get the next set of results in a paginated response. Get this value from the `meta.nextCursor` field in the previous response.
includeNoInclude the following information in the endpoint's response: - `mocks:deactivated` — Include all deactivated mock servers in the response. - `scim` — Return the SCIM user IDs of the workspace creator and who last modified it.
createdByNoReturn only workspaces created by the specified Postman user ID. - For “my …” requests, set `createdBy` to the current user’s ID from GET `/me` (`me.user.id`). - If the user's ID is not known, first call GET `/me`, then retry with `createdBy`.
elementIdNoFilter results to return the workspace where the given element's ID is located. When filtering by collection, you must use the collection's unique ID (`userId`-`collection`). If you pass this query parameter, you must also pass the `elementType` query parameter.
elementTypeNoFilter results to return the workspace where the given element type is located. If you pass this query parameter, you must also pass the `elementId` query parameter.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds valuable behavioral context: it explains the visibility field and its values, which affects what the agent can infer about access control. It also mentions pagination behavior and the need to call /me first for user-scoped queries. This adds context beyond the annotations, though it doesn't describe the full response structure (no output schema).

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 well-structured with bullet points and examples, making it easy to scan. It's a bit long but each section adds value: purpose, visibility explanation, usage notes, pagination, and examples. The front-loading is good (purpose first), and the examples are concrete. It could be slightly more concise, but the detail is justified given the tool's complexity.

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's complexity (7 parameters, no output schema, no required parameters), the description is quite complete. It covers the main use cases, explains the visibility field, provides examples, and mentions pagination. The only gap is that it doesn't describe the response structure, but since there's no output schema, the agent might need to infer that. However, the description does mention the 'meta.nextCursor' field, which gives some response context. Overall, it's sufficient for an agent to use the tool effectively.

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?

Schema description coverage is 100%, so the schema already documents all 7 parameters. The description adds value by explaining the 'createdBy' parameter's role in 'my …' requests and providing examples of how to combine parameters (e.g., type=personal&createdBy=...). It also clarifies the 'type' parameter's behavior when not specified. This goes beyond the schema's basic descriptions, though the schema already covers the parameter meanings well.

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 the tool's purpose: 'Gets all workspaces you have access to.' It specifies the resource (workspaces) and the action (get), and distinguishes it from sibling tools like getWorkspace (singular) and createWorkspace by focusing on listing/filtering workspaces with user-scoping.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it explains when to call GET /me first for 'my …' requests, how to handle missing workspace IDs, and includes concrete examples for different scenarios. It also mentions pagination with cursor, which is a clear usage instruction. This goes beyond just stating the purpose and helps the agent decide when to use this tool.

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

publishMockPublish a mock serverAInspect

Publishes a mock server. Publishing a mock server sets its Access Control configuration setting to public.

ParametersJSON Schema
NameRequiredDescriptionDefault
mockIdYesThe mock's ID.

TDQS

A4/5.0
Behavior4/5

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

The description discloses the side effect of setting Access Control to public, which is a meaningful behavioral detail beyond the annotations that only indicate mutability. It does not contradict annotations.

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 concise, with two sentences: one for the primary action and one for the key side effect. No unnecessary words or redundancy.

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?

The description provides sufficient context for a simple operation: it states what it does and the main effect (setting access control to public). It does not mention return values, but no output schema exists, and the information given is adequate for the tool's purpose.

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?

The schema already fully describes the mockId parameter with 'The mock's ID.' The description adds no additional parameter-specific meaning, so a baseline score of 3 is appropriate.

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 the action: 'Publishes a mock server.' The verb 'publishes' and resource 'mock server' are specific, and the tool is distinguishable from siblings like createMock or getMock.

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 you want to make a mock public (by setting access control to public) but does not explicitly state when to use this tool vs alternatives or provide exclusion criteria.

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

putCollectionReplace a collection's dataA
Idempotent
Inspect

Replaces the contents of a collection using the Postman Collection v2.1.0 schema format. Include the collection's ID values in the request body. If you do not, the endpoint removes the existing items and creates new items.

Note:

  • The maximum collection size this endpoint accepts cannot exceed 100 MB.

  • Use the GET `/collection-updates-tasks/{taskId}` endpoint to get the collection's update status when performing an asynchronous update.

  • If you don't include the collection items' ID values from the request body, the endpoint removes the existing items and recreates the items with new ID values.

  • To copy another collection's contents to the given collection, remove all ID values before you pass it in this endpoint. If you do not, this endpoint returns an error. These values include the `id`, `uid`, and `postman_id` values.

ParametersJSON Schema
NameRequiredDescriptionDefault
PreferNoThe `respond-async` header to perform the update asynchronously.
collectionNoThe new collection contents that replace the existing collection.
collectionIdYesThe collection ID must be in the form <OWNER_ID>-<UUID> (e.g. 12345-33823532ab9e41c9b6fd12d0fd459b8b).

TDQS

A4.5/5.0
Behavior4/5

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

The description goes beyond the annotations by disclosing critical behavioral details: the destructive nature of omitting ID values (removes existing items and recreates them), the 100 MB size limit, the async behavior with 202 Accepted responses, and the error condition when copying from another collection without removing IDs. The annotations mark destructiveHint=false, but the description appropriately warns about data loss when IDs are omitted, which is valuable context. It doesn't contradict the annotations since the tool itself isn't inherently destructive—it's the user's input that determines destructiveness.

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 well-structured with clear sections and bullet points. It front-loads the core purpose and the most critical warning about ID values. The additional documentation links are useful but somewhat verbose; the protocol profile behavior link and the repeated note about ID removal could be consolidated. Overall, it's appropriately sized for a complex tool with significant behavioral nuances.

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's complexity (nested collection schema, async behavior, destructive potential), the description covers the essential operational aspects: the schema format, ID handling rules, size limit, async option, and status-check endpoint. There's no output schema, but the description mentions the 202 response for async operations. It could mention the success response for synchronous operations, but the core information needed to call the tool correctly is present.

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 schema has 100% description coverage, so the baseline is 3. The description adds meaningful value by explaining the critical ID-related behavior: including IDs preserves items, omitting them removes and recreates items, and copying from another collection requires removing all ID values. This directly informs how to construct the 'collection' parameter. The Prefer parameter is also explained in the description with the async behavior and response code.

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 the tool replaces the contents of a collection using the Postman Collection v2.1.0 schema format. It distinguishes itself from sibling tools like createCollection (which creates new collections) and updateCollectionRequest (which updates individual requests) by focusing on full replacement of collection data. The title 'Replace a collection's data' reinforces the specific verb-resource relationship.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: it's for replacing collection contents, and it warns about the critical behavior of ID handling. It also mentions the async update option via the Prefer header and directs users to the GET /collection-updates-tasks/{taskId} endpoint for status checks. While it doesn't explicitly name sibling alternatives, the replacement semantics are clear enough to distinguish from create/update operations.

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

putEnvironmentReplace an environment's dataB
Idempotent
Inspect

Replaces all the contents of an environment with the given information.

Note:

  • The request body size cannot exceed the maximum allowed size of 30MB.

  • If you receive an HTTP `411 Length Required` error response, manually pass the `Content-Length` header and its value in the request header.

  • Only shared variable values can be modified through the Postman API. A shared variable is an environment variable with its value synced and stored in the Postman cloud, and can be accessed by your teammates in the environment's workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentNoInformation about the environment.
environmentIdYesThe environment's ID.

TDQS

B3.4/5.0
Behavior1/5

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

The description adds useful operational details such as the 30MB request limit, the 411 Content-Length workaround, and the shared-variable limitation. However, it contradicts the annotations: destructiveHint is false while 'Replaces all the contents' describes a destructive overwrite of existing environment data.

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 concise and well-structured: one purpose sentence followed by three focused note bullets. Each bullet adds operational value, and there is no redundant or filler text.

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?

For a write tool with no output schema, the description covers replacement semantics, body size limits, error handling, and the shared-variable API constraint. It lacks explicit return-value information and prerequisites, but the rich schema and annotations compensate for most gaps.

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?

The input schema has 100% schema_description_coverage and rich descriptions for every parameter and nested property. The description adds no additional parameter-level meaning, so the baseline of 3 applies.

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 first sentence uses the specific verb 'Replaces' with the resource 'environment' and scope 'all the contents', making the operation unmistakable. It clearly distinguishes this from sibling tools like createEnvironment or getEnvironment.

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 for overwriting an existing environment's data, but it does not explicitly state when to use this tool versus createEnvironment or any other alternative. No exclusions or preferred conditions are given.

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

runCollectionA
Idempotent
Inspect

Runs a Postman collection by ID with detailed test results and execution statistics. Supports optional environment for variable substitution. Note: Advanced parameters like custom delays and other runtime options are not yet available.

ParametersJSON Schema
NameRequiredDescriptionDefault
stopOnErrorNoGracefully halt on errors (default: false)
abortOnErrorNoAbruptly halt on errors (default: false)
collectionIdYesThe collection ID in the format <OWNER_ID>-<UUID> (e.g. 12345-33823532ab9e41c9b6fd12d0fd459b8b).
environmentIdNoOptional environment ID to use for variable substitution during the run.
scriptTimeoutNoScript timeout in milliseconds (default: 5000)
stopOnFailureNoGracefully halt on test failures (default: false)
abortOnFailureNoAbruptly halt on test failures (default: false)
iterationCountNoNumber of iterations to run (default: 1)
requestTimeoutNoRequest timeout in milliseconds (default: 60000)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations give idempotentHint=true and destructiveHint=false. The description adds that it returns detailed results and statistics, and notes limitations on advanced parameters. No contradiction.

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?

Two sentences: first states purpose and output, second notes limitations. No fluff, front-loaded with key info.

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?

For a tool with 9 parameters and no output schema, the description covers the return value (detailed results/statistics) and key limitation. Lacks details on error handling but schema covers that.

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 coverage is 100%, so the description doesn't need to explain parameters. It mentions collectionId and environmentId but not others, which is acceptable since schema descriptions are sufficient.

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 the tool runs a Postman collection by ID and provides detailed test results and execution statistics. It distinguishes itself from sibling tools like createCollection or getCollection by focusing on execution.

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

Usage Guidelines4/5

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

The description mentions optional environment support and notes that advanced parameters are not available, guiding users on when to use (basic runs) and when to avoid (if advanced options needed). It doesn't explicitly mention alternatives but contextually clear.

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

searchPostmanElementsA
Read-onlyIdempotent
Inspect

Search for Postman entities (requests, collections, workspaces, specs, flows, environments, mocks, and documents).

Ownership:

  • organization — Search within all resources owned by your organization (default).

  • external — Search within the public Postman network (third-party and community APIs).

  • all — Search across all scopes.

When to use each ownership value and filters:

Goal

Recommended approach

Find an internal API (e.g. "our notification service")

ownership: organization

Find a trusted API published to the Private Network

ownership: organization + privateNetwork: true filter

Find an internal API in all resources of organization and are visible to the organization only

ownership: organization + visibility: internal filter

Find an API by your organization that is made publicly visible

ownership: organization + visibility: public filter

Find a third party publicly visible API (e.g. "Stripe API", "Twilio API")

ownership: external + visibility: public filter

User says "our APIs", "internal", "team"

ownership: organization

Search across all scopes

ownership: all

Element Types:

  • requests: Search for individual API requests.

  • collections: Search for API collections.

  • workspaces: Search for Postman workspaces.

  • specs: Search for API specifications.

  • flows: Search for Postman Flows.

  • environments: Search for Postman Environments.

  • mocks: Search for Postman Mock Servers.

  • documents: Search for Postman workspace documents.

Filters:

Use the filters parameter to narrow results. The top-level key must be $and with an array of condition objects. Each condition object must contain exactly one field key.

Supported filter fields:

Field

Operators

Notes

workspaceId

$eq, $ne, $in, $nin

All element types. $in/$nin accept arrays.

collectionId

$eq, $ne, $in, $nin

Requests and collections only.

visibility

$eq, $ne

Values: public, partner, internal. All element types.

privateNetwork

$eq, $ne

Boolean. All element types.

publisherIsVerified

$eq, $ne

Boolean. All element types.

method

$eq, $ne, $in, $nin

HTTP methods (GET, POST, etc.). Requests only.

tags

$eq, $ne, $in, $nin

Workspaces and collections only.

requestId

$eq, $ne, $in, $nin

Requests only.

specificationId

$eq, $ne, $in, $nin

Specs only.

flowId

$eq, $ne, $in, $nin

Flows only.

documentId

$eq, $ne, $in, $nin

Documents only.

createdBy

$eq, $ne, $in, $nin

All element types.

organizationId

$eq, $ne, $in, $nin

All element types.

teamId

$eq, $ne, $in, $nin

All element types.

isGitConnected

$eq, $ne

Boolean. Workspaces, collections, requests, specs, flows, environments, mocks, documents.

type

$eq, $ne, $in, $nin

Requests only.

Filter examples:

  • Private API Network only: {"$and":[{"privateNetwork":{"$eq":true}}]}

  • Single workspace: {"$and":[{"workspaceId":{"$eq":"ws-abc123"}}]}

  • Multiple workspaces: {"$and":[{"workspaceId":{"$in":["ws-1","ws-2"]}}]}

  • Public visibility: {"$and":[{"visibility":{"$eq":"public"}}]}

  • GET requests only: {"$and":[{"method":{"$eq":"GET"}}]}

  • Combine conditions: {"$and":[{"visibility":{"$eq":"public"}},{"workspaceId":{"$eq":"ws-abc123"}}]}

  • Environments in a workspace: {"$and":[{"workspaceId":{"$eq":"ws-abc123"}}]}

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoThe search query (e.g. "payment API", "notification service", "Stripe").
limitNoThe maximum number of search results to return. Maximum: 25.
cursorNoThe cursor to get the next set of results in the paginated response. Pass the `nextCursor` value from the previous response.
filtersNoStructured filter expression. Top-level key must be "$and" with an array of condition objects. Each condition: { "<field>": { "<operator>": <value> } }. Example: {"$and":[{"privateNetwork":{"$eq":true}}]}
ownershipNoThe ownership scope. Use `organization` to search all resources in your organization (default), `external` to search the public Postman network, or `all` to search across all scopes.organization
entityTypeNoThe type of Postman entity to search for: `requests` (individual API requests), `collections` (API collections), `workspaces` (Postman workspaces), `specs` (API specifications), `flows` (Postman Flows), `environments` (Postman Environments), `mocks` (Postman Mock Servers), or `documents` (Postman workspace documents).requests

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses extensive behavioral semantics: ownership scope meaning, filter structure with $and and operator rules, which filter fields apply to which element types, and examples of valid filter expressions. This goes well beyond what annotations convey.

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 long but extremely well-structured with clear sections, tables, and bullet points. Every part adds necessary information for a complex tool with nested filters and multiple entity types. It earns its length, though it could be slightly trimmed by avoiding some repetition with the schema.

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?

The description covers ownership, element types, filters, and examples comprehensively. It does not explicitly describe the response format or pagination behavior, but the cursor parameter in the schema hints at pagination. For a complex search tool with no output schema, this is nearly complete but leaves return structure implicit.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains ownership values with decision criteria, lists all element types with context, and provides a comprehensive filter field/operator table plus multiple examples. This is far more than the schema's per-parameter descriptions.

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 searches for Postman entities across multiple types (requests, collections, workspaces, etc.) and scopes (organization, external, all). The verb 'Search' and resource are specific, and the ownership scope distinguishes it from simple retrieval tools like getCollections or getWorkspaces.

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

Usage Guidelines4/5

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

The description provides a detailed table mapping user goals to ownership values and recommended filters, which is clear contextual guidance. However, it does not explicitly name sibling tools as alternatives or say when not to use this tool in favor of a more specific getter, so it falls short of a full 5.

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

syncCollectionWithSpecSync collection with specA
Idempotent
Inspect

Syncs a collection generated from an API specification. This is an asynchronous endpoint that returns an HTTP `202 Accepted` response.

Note:

  • This endpoint only supports the OpenAPI 2.0, 3.0, and 3.1 specification types.

  • You can only sync collections generated from the given spec ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe spec's ID.
collectionUidYesThe collection's unique ID.

TDQS

A3.9/5.0
Behavior4/5

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

The description discloses the async behavior: 'This is an asynchronous endpoint that returns an HTTP 202 Accepted response.' This goes beyond the annotations and informs the agent that success is not a completed sync. It also adds restrictions around supported spec types and the generation relationship, though it does not mention how to track or confirm the async completion.

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 short, front-loaded, and uses bulleted notes for detail. Every sentence serves a purpose: defining the operation, flagging async behavior, and listing key constraints. No redundant text or padding.

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?

For an operation with simple parameters and no output schema, the description is sufficiently complete: it covers purpose, async behavior, supported spec types, and a required relationship with the passed spec ID. It lacks an explicit statement about what happens after the 202 response or whether a separate status-check tool is needed, but this is a minor gap.

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 already describes both parameters clearly with 100% coverage. The description adds meaningful context by saying 'You can only sync collections generated from the given spec ID,' which clarifies the relationship between specId and collectionUid. It also implies that collectionUid should be a collection generated from specId.

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 action: 'Syncs a collection generated from an API specification.' It identifies the resource (a collection) and the operation (sync), and clarifies the spec types supported. However, it does not explicitly distinguish this tool from its sibling syncSpecWithCollection, so sibling differentiation is weaker.

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: the tool is for collections generated from specs, supports only OpenAPI 2.0/3.0/3.1, and can only sync collections generated from the given spec ID. But it does not explain when to choose this over alternatives like syncSpecWithCollection or when not to use it.

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

syncSpecWithCollectionSync spec with collectionA
Idempotent
Inspect

Syncs an API specification linked to a collection. This is an asynchronous endpoint that returns an HTTP `202 Accepted` response.

Note:

  • This endpoint only supports the OpenAPI 2.0, 3.0, and 3.1 specification types.

  • You can only sync collections generated from the given specification ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe spec's ID.
collectionUidYesThe collection's unique ID.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, idempotent, non-destructive operation. The description adds valuable behavioral context beyond this: it explicitly states the endpoint is asynchronous and returns HTTP 202 Accepted, and further constrains the operation to specific OpenAPI versions and collection origins.

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 concise: two sentences plus a short bulleted list. It front-loads the core action and then efficiently presents the key constraints. No redundant words.

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?

For a simple two-parameter tool with no output schema, the description covers the essential invocation context: async behavior, supported spec types, and a precondition on the collection. It does not explain what the sync actually updates or how to poll for completion, but this is moderately covered by the annotations and the tool's purpose.

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?

Schema coverage is 100% with clear descriptions for both parameters, so baseline is 3. The description adds semantic linkage between specId and collectionUid by stating that only collections generated from the given spec ID can be synced, which clarifies how the parameters relate and what values are valid.

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 states a specific action ('Syncs an API specification linked to a collection') with a clear subject and resource. The direction (spec to collection) is implied by the constraint that only collections generated from the spec ID can be synced, which distinguishes it from the sibling syncCollectionWithSpec, though not explicitly.

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 includes important usage constraints: it is asynchronous, supports only OpenAPI 2.0/3.0/3.1, and requires collections generated from the given spec ID. However, it does not explicitly mention when to use this tool versus the reverse sibling syncCollectionWithSpec, nor does it provide alternative suggestions.

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

updateCollectionRequestUpdate a requestA
Idempotent
Inspect

Updates a request in a collection. For a complete list of properties, refer to the Request entry in the Postman Collection Format documentation.

Note:

  • You must pass a collection ID (`12ece9e1-2abf-4edc-8e34-de66e74114d2`), not a collection(`12345678-12ece9e1-2abf-4edc-8e34-de66e74114d2`), in this endpoint.

  • This endpoint does not support changing the folder of a request.

  • This endpoint acts like a PATCH method. It only updates the values that you pass in the request body.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe request's URL.
authNoThe request's authorization settings.
dataNoThe request body's form or urlencoded data.
nameNoThe request's name.
eventsNoThe request's pre-request and test scripts.
methodNoThe request's HTTP method.
dataModeNoThe request body's data mode.
requestIdYesThe request's ID.
headerDataNoThe request's headers.
dataOptionsNoAdditional options for the request body data.
descriptionNoThe request's description.
queryParamsNoThe request's query parameters.
rawModeDataNoThe request body's raw mode data.
collectionIdYesThe collection's ID.
graphqlModeDataNoThe request body's GraphQL mode data.

TDQS

A4/5.0
Behavior4/5

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

The description clearly explains the PATCH-like behavior, which is critical for understanding that omitted fields are not reset. It also states the limitation about folder changes. Annotations declare idempotentHint=true (consistent with PATCH) and destructiveHint=false; the description aligns well, adding behavioral nuance beyond the annotations.

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 concise and structured: a clear primary sentence followed by a list of notes. It front-loads the core action and then presents important caveats in an easy-to-parse list. No unnecessary fluff, though the note about the collection ID could be more prominent.

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

Completeness5/5

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

For a complex tool with 15 parameters, the description provides complete, necessary context: it clarifies the ID requirement, PATCH semantics, and the folder limitation. Since there is no output schema, the description doesn't need to explain return values, but it covers the main operational traps, making it sufficient for an agent to call correctly.

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 coverage is 100%, so the schema already defines every parameter. The description adds context for specific parameters like collectionId (explaining the ID vs UID distinction), but does not elaborate on the update semantics for each field (e.g., how auth or headers are handled). Thus, it adds some value beyond schema, but the schema carries most of the weight.

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 states 'Updates a request in a collection', clearly identifying the verb (update) and the resource (request within a collection). It distinguishes itself from createCollectionRequest and other update tools, but does not explicitly name a sibling or contrast with them. The title aligns well.

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

Usage Guidelines4/5

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

The description provides key usage guidance: it specifies that collectionId must be the collection ID not the collection UID (with an illustrative example), and notes that folder changes are not supported, and that it acts as a PATCH (only updates provided values). However, it does not explicitly say when not to use this tool versus alternatives like createCollectionRequest or putCollection, but the guidance on scope is useful.

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

updateMockUpdate a mock serverA
Idempotent
Inspect

Updates a mock server.

  • Resource: Mock server entity associated with a collection UID.

  • Use this to change name, environment, privacy, or default server response.

  • To activate a server response, set `config.serverResponseId` to the server response's `id`. Pass `null` to deactivate.

ParametersJSON Schema
NameRequiredDescriptionDefault
mockNoThe mock server fields to update.
mockIdYesThe mock's ID.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish that this is a mutating but non-destructive, idempotent operation. The description adds useful behavioral detail by explaining how setting `config.serverResponseId` activates a server response and passing `null` deactivates it. It does not contradict annotations.

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 compact, uses bullet points for scannability, and front-loads the core purpose. Every line carries useful information: the resource, the actionable fields, and the special activation behavior. There is no redundant filler.

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

Completeness5/5

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

For a two-parameter update tool with a fully documented schema and annotations covering safety and idempotency, the description provides the essential operational context. It explains what can be updated and the key behavioral nuance for `serverResponseId`, making it complete enough for an agent to select and invoke the tool correctly.

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 parameter meanings. The description's activation/deactivation note largely repeats the schema text for `serverResponseId`, adding no significant semantic information beyond what the schema provides. This meets the baseline but does not exceed it.

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 states a specific action ('Updates a mock server') and a specific resource ('Mock server entity associated with a collection UID'). It also enumerates the fields that can be changed, making its purpose clear and distinct from creation, publishing, or other mock-related operations.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this to change name, environment, privacy, or default server response,' which gives clear when-to-use guidance. It does not explicitly mention alternatives or exclusions, such as pointing to createMock or publishMock, so it falls short of full 5-level guidance.

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

updateSpecFileUpdate a spec fileA
Idempotent
Inspect

Updates a file for an OpenAPI or protobuf 2 or 3 specification.

Note:

  • This endpoint does not accept an empty request body. You must pass one of the accepted values.

  • This endpoint does not accept multiple request body properties in a single call. For example, you cannot pass both the `content` and `type` property at the same time.

  • Multi-file specifications can only have one root file.

  • When updating a file type to `ROOT`, the previous root file is updated to the `DEFAULT` file type.

  • Files cannot exceed a maximum of 10 MB in size.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoThe file's name.
typeNoThe type of file: - `ROOT` — The file containing the full OpenAPI structure. This serves as the entry point for the API spec and references other (`DEFAULT`) spec files. Multi-file specs can only have one root file. - `DEFAULT` — A file referenced by the `ROOT` file.
specIdYesThe spec's ID.
contentNoThe specification's stringified contents.
filePathYesThe path to the file.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint=false, destructiveHint=false), but the description adds valuable behavioral details: no empty body, cannot pass multiple body properties, root file switching behavior, and file size limit. This covers important side effects and constraints beyond the annotations, improving transparency.

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 highly concise, front-loading the purpose and then using bullet points for critical notes. No superfluous text; every sentence adds value.

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's complexity and lack of output schema, the description covers essential constraints (no empty body, no multi-property, root-file behavior, size limit) that are critical for correct usage. It does not explicitly address error conditions, but the provided notes are substantial enough for a complex mutation tool.

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?

Schema covers all 5 parameters at 100%, so baseline is 3. The description adds cross-parameter constraints (cannot pass both content and type simultaneously) and explains the root file behavior, which enriches the parameter semantics beyond individual field descriptions.

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 it updates a spec file for OpenAPI or protobuf, using a specific verb+resource. It implicitly distinguishes from createSpecFile (updating vs creating), though it doesn't explicitly name alternative tools. The title and description align well.

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?

It gives context on when to use (updating existing spec files) but does not explicitly mention when not to use it or contrast with sibling tools like createSpecFile or updateSpecProperties. The constraints (no empty body, one property at a time, root file rules) are helpful but are more about how to use than when.

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

updateSpecPropertiesUpdate a spec's propertiesB
Idempotent
Inspect

Updates an API specification's properties, such as its name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe spec's name.
specIdYesThe spec's ID.

TDQS

B3.3/5.0
Behavior2/5

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

The description adds no behavioral context beyond what the annotations already convey. Annotations indicate the operation is not read-only, not destructive, and idempotent, but the description does not mention permissions, side effects, or what happens to unspecified properties. There is no contradiction with annotations, but there is also no added transparency.

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 a single focused sentence with no wasted words. It is front-loaded with the verb and object, making it easy to scan.

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?

For a simple two-parameter update operation with complete schema coverage, the description is minimally adequate. However, it does not clarify the update's scope (e.g., whether only metadata like name is affected, versus file contents or definition), nor does it mention return or failure behavior.

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%, with both parameters clearly documented. The description's mention of 'such as its name' only repeats the schema's existing parameter description and adds no meaningful semantic detail, so the baseline score of 3 is appropriate.

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 the action ('Updates an API specification's properties') and gives a concrete example ('such as its name'). This distinguishes it from sibling tools like updateSpecFile or updateWorkspace by focusing on spec property metadata.

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?

No guidance is provided about when to use this tool versus alternatives like updateSpecFile, createSpec, or putSpec. The description only restates the basic action without any context, exclusions, or relationships to other tools.

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

updateWorkspaceUpdate a workspaceA
Idempotent
Inspect

Updates a workspace's property, such as its name or visibility.

Note:

  • This endpoint does not support the following visibility changes:

    • `private` to `public`, `public` to `private`, and `private` to `personal` for Free and Solo plans.

    • `public` to `personal` for team users only.

  • There are rate limits when publishing public workspaces.

  • Public team workspace names must be unique.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceNoThe workspace fields to update.
workspaceIdYesThe workspace's ID.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, destructive, and idempotency hints, so the remaining burden is added context. The description contributes meaningful behavioral details: unsupported visibility changes by plan/audience, rate limits when publishing public workspaces, and a uniqueness requirement for public team workspace names.

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 opening sentence is concise and specific, and the note list is scannable. There is minor redundancy with the schema's type field description, but the additional notes earn their place and clarify failure modes.

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?

Combined with the rich schema and annotations, the description covers the key failure modes and constraints for an agent making a workspace update. It does not describe the response shape, but the main risks for this operation are behavioral and are disclosed here.

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?

Schema coverage is 100%, so the description is not required to restate field definitions. It adds value with parameter-level constraints, especially the uniqueness rule for public team workspace names and rate-limit implications when setting public visibility.

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 uses the specific verb 'updates' with a workspace resource and gives concrete examples such as name or visibility. It clearly distinguishes the tool from sibling read/create operations without being a tautology of the title.

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 the tool is for modifying an existing workspace and gives important constraints such as unsupported visibility transitions, rate limits, and unique public team names. It does not explicitly direct agents to choose this tool over alternatives like createWorkspace or getWorkspace, so the guidance is present but not proactive.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv2.12.3
    • ChangedcreateCollection1 field changed
      • addedInput schema / properties / collection / description
        Added value: +"Information about the collection."
    • ChangedcreateCollectionRequest6 fields changed
      • changedInput schema / properties / auth / description
        Previous value: -"The request's authentication information."New value: +"The request's authorization settings."
      • changedInput schema / properties / data / description
        Previous value: -"The request body's form data."New value: +"The request body's form or urlencoded data."
      • changedInput schema / properties / dataOptions / description
        Previous value: -"Additional configurations and options set for the request body's various data modes."New value: +"Additional options for the request body data."
      • changedInput schema / properties / events / description
        Previous value: -"A list of scripts configured to run when specific events occur."New value: +"The request's pre-request and test scripts."
      • addedInput schema / properties / folder
        Added value: +{
        +  "description": "The folder ID in which to create the request. By default, the system creates the request at the collection level.",
        +  "type": "string"
        +}
      • removedInput schema / properties / folderId
        Removed value: -{
        -  "description": "The folder ID in which to create the request. By default, the system will create the request at the collection level.",
        -  "type": "string"
        -}
    • ChangedcreateCollectionResponse3 fields changed
      • changedInput schema / properties / dataOptions / description
        Previous value: -"Additional configurations and options set for the request body's various data modes."New value: +"Additional options for the associated request body data."
      • changedInput schema / properties / headers / description
        Previous value: -"A list of headers."New value: +"The response's headers."
      • changedInput schema / properties / method / description
        Previous value: -"The request's HTTP method."New value: +"The associated request's HTTP method."
    • ChangedcreateMock1 field changed
      • addedInput schema / properties / mock / description
        Added value: +"Information about the mock server to create."
    • ChangedputCollection3 fields changed
      • addedInput schema / properties / collection / description
        Added value: +"The new collection contents that replace the existing collection."
      • addedInput schema / properties / collection / properties / info / properties / createdAt
        Added value: +{
        +  "description": "The date and time when the collection was created.",
        +  "format": "date-time",
        +  "type": "string"
        +}
      • removedInput schema / properties / collection / properties / info / properties / createdat
        Removed value: -{
        -  "description": "The date and time when the collection was created.",
        -  "format": "date-time",
        -  "type": "string"
        -}
    • ChangedupdateCollectionRequest4 fields changed
      • changedInput schema / properties / auth / description
        Previous value: -"The request's authentication information."New value: +"The request's authorization settings."
      • changedInput schema / properties / data / description
        Previous value: -"The request body's form data."New value: +"The request body's form or urlencoded data."
      • changedInput schema / properties / dataOptions / description
        Previous value: -"Additional configurations and options set for the request body's various data modes."New value: +"Additional options for the request body data."
      • changedInput schema / properties / events / description
        Previous value: -"A list of scripts configured to run when specific events occur."New value: +"The request's pre-request and test scripts."
    • ChangedupdateMock1 field changed
      • addedInput schema / properties / mock / description
        Added value: +"The mock server fields to update."
    • ChangedupdateWorkspace1 field changed
      • addedInput schema / properties / workspace / description
        Added value: +"The workspace fields to update."
  2. 8 tool updatesv2.12.0
    • ChangedcreateCollection3 fields changed
      • removedInput schema / properties / collection / properties / info / properties / schema / const
        Removed value: -"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
      • changedInput schema / properties / collection / properties / info / properties / schema / description
        Previous value: -"The \"https://schema.getpostman.com/json/collection/v2.1.0/collection.json\" Postman Collection Format v2.1.0 schema."New value: +"The \"https://schema.postman.com/json/collection/v2.1.0/collection.json\" Postman Collection Format v2.1.0 schema."
      • addedInput schema / properties / collection / properties / info / properties / schema / enum
        Added value: +[
        +  "https://schema.postman.com/json/collection/v2.1.0/collection.json",
        +  "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
        +]
    • ChangedcreateCollectionRequest3 fields changed
      • removedInput schema / properties / events / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "listen": {
        -          "description": "The event type.",
        -          "enum": [
        -            "test",
        -            "prerequest"
        -          ],
        -          "type": "string"
        -        },
        -        "script": {
        -          "additionalProperties": false,
        -          "description": "Information about the Javascript code that can be used to to perform setup or teardown operations in a response.",
        -          "properties": {
        -            "exec": {
        -              "description": "A list of script strings, where each line represents a line of code. Separate lines makes it easy to track script changes.",
        -              "items": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "type": "array"
        -            },
        -            "id": {
        -              "description": "The script's ID.",
        -              "type": "string"
        -            },
        -            "type": {
        -              "description": "The type of script. For example, `text/javascript`.",
        -              "type": "string"
        -            }
        -          },
        -          "type": "object"
        -        }
        -      },
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / events / items
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "listen": {
        +      "description": "The event type.",
        +      "enum": [
        +        "test",
        +        "prerequest"
        +      ],
        +      "type": "string"
        +    },
        +    "script": {
        +      "additionalProperties": false,
        +      "description": "Information about the Javascript code that can be used to to perform setup or teardown operations in a response.",
        +      "properties": {
        +        "exec": {
        +          "description": "A list of script strings, where each line represents a line of code. Separate lines makes it easy to track script changes.",
        +          "items": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "type": "array"
        +        },
        +        "id": {
        +          "description": "The script's ID.",
        +          "type": "string"
        +        },
        +        "type": {
        +          "description": "The type of script. For example, `text/javascript`.",
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / events / type
        Added value: +"array"
    • ChangedcreateEnvironment5 fields changed
      • removedInput schema / properties / environment / properties / values / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / environment / properties / values / items / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about the variable.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The variable's name.",
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "The variable's type:\n- `secret` — The variable value is masked.\n- `default` — The variable value is visible in plain text.\n",
        +        "enum": [
        +          "secret",
        +          "default"
        +        ],
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The variable's value.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about the variable stored in the Postman Vault. This property only returns when a variable is defined as secret.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The variable's name.",
        +        "type": "string"
        +      },
        +      "secret": {
        +        "description": "If true, the variable is marked as secret and its value is retrieved from the mentioned provider in the source field.",
        +        "type": "boolean"
        +      },
        +      "source": {
        +        "additionalProperties": false,
        +        "description": "Information about the source of the variable's value.",
        +        "properties": {
        +          "postman": {
        +            "additionalProperties": false,
        +            "description": "Information about the Postman-specific source of the variable's value.",
        +            "properties": {
        +              "secretId": {
        +                "description": "The variable's secret ID.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "const": "cloud",
        +                "description": "The variable's type:\n- `cloud` — The variable value is synced and stored in the Postman Cloud.\n",
        +                "type": "string"
        +              },
        +              "vaultId": {
        +                "description": "The variable's ID in the Postman Vault.",
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "provider": {
        +            "const": "postman",
        +            "description": "The secret's provider.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": {
        +        "description": "The variable's type:\n- `secret` — The variable value is masked.\n- `default` — The variable value is visible in plain text.\n",
        +        "enum": [
        +          "secret",
        +          "default"
        +        ],
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The variable's value.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / environment / properties / values / items / description
        Removed value: -"Information about the environment's variables."
      • removedInput schema / properties / environment / properties / values / items / properties
        Removed value: -{
        -  "description": {
        -    "description": "The variable's description.",
        -    "maxLength": 512,
        -    "type": "string"
        -  },
        -  "enabled": {
        -    "description": "If true, the variable is enabled.",
        -    "type": "boolean"
        -  },
        -  "key": {
        -    "description": "The variable's name.",
        -    "type": "string"
        -  },
        -  "type": {
        -    "description": "The variable's type:\n- `secret` — The variable value is masked.\n- `default` — The variable value is visible in plain text.\n",
        -    "enum": [
        -      "secret",
        -      "default"
        -    ],
        -    "type": "string"
        -  },
        -  "value": {
        -    "description": "The variable's value.",
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / environment / properties / values / items / type
        Removed value: -"object"
    • ChangedgetWorkspace3 fields changed
      • changedInput schema / properties / include / description
        Previous value: -"Include the following information in the endpoint's response:\n- `mocks:deactivated` — Include all deactivated mock servers in the response.\n- `scim` — Return the SCIM user IDs of the workspace creator and who last modified it.\n"New value: +"A comma-separated list of values to include in the endpoint's response:\n- `scim` — Return the SCIM user IDs of the workspace creator and who last modified it.\n- `team` — Return the workspace's team ID. Returns a null value if the workspace isn't associated with a team.\n- `mocks:deactivated` — Include all deactivated mock servers in the response.\n"
      • removedInput schema / properties / include / enum
        Removed value: -[
        -  "mocks:deactivated",
        -  "scim"
        -]
      • addedInput schema / properties / include / pattern
        Added value: +"^(?!.*(?:^|,)(team|scim|mocks:deactivated),(?:.*,)?\\1(?:$|,))(team|scim|mocks:deactivated)(,(team|scim|mocks:deactivated))*$"
    • ChangedputCollection13 fields changed
      • removedInput schema / properties / collection / properties / info / properties / schema / const
        Removed value: -"https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
      • changedInput schema / properties / collection / properties / info / properties / schema / description
        Previous value: -"The \"https://schema.getpostman.com/json/collection/v2.1.0/collection.json\" Postman Collection Format v2.1.0 schema."New value: +"The \"https://schema.postman.com/json/collection/v2.1.0/collection.json\" Postman Collection Format v2.1.0 schema."
      • addedInput schema / properties / collection / properties / info / properties / schema / enum
        Added value: +[
        +  "https://schema.postman.com/json/collection/v2.1.0/collection.json",
        +  "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
        +]
      • removedInput schema / properties / collection / properties / item / items / properties / variable / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / collection / properties / item / items / properties / variable / items / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about the variable.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "disabled": {
        +        "default": false,
        +        "description": "If true, the variable is not enabled. Doesn't apply to path parameter variables.",
        +        "type": "boolean"
        +      },
        +      "enabled": {
        +        "default": true,
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "id": {
        +        "description": "The variable's ID. Doesn't apply to collection-level variables.",
        +        "type": "string"
        +      },
        +      "key": {
        +        "description": "The variable's key (name).",
        +        "type": "string"
        +      },
        +      "value": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "integer"
        +          }
        +        ],
        +        "description": "The key's value."
        +      }
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about the secret variable.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "default": true,
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "id": {
        +        "description": "The variable's ID. Doesn't apply to collection-level variables.",
        +        "type": "string"
        +      },
        +      "key": {
        +        "description": "The variable's key (name).",
        +        "type": "string"
        +      },
        +      "secret": {
        +        "description": "If true, the variable is marked as secret and its value is retrieved from the mentioned provider in the source field.",
        +        "type": "boolean"
        +      },
        +      "source": {
        +        "additionalProperties": false,
        +        "description": "Information about the source of the variable's value.",
        +        "properties": {
        +          "postman": {
        +            "additionalProperties": false,
        +            "description": "Information about the Postman-specific source of the variable's value.",
        +            "properties": {
        +              "secretId": {
        +                "description": "The variable's secret ID.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "const": "cloud",
        +                "description": "The variable's type:\n- `cloud` — The variable value is synced and stored in the Postman Cloud.\n",
        +                "type": "string"
        +              },
        +              "vaultId": {
        +                "description": "The variable's ID in the Postman Vault.",
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "provider": {
        +            "const": "postman",
        +            "description": "The secret's provider.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / collection / properties / item / items / properties / variable / items / description
        Removed value: -"Information about the variable."
      • removedInput schema / properties / collection / properties / item / items / properties / variable / items / properties
        Removed value: -{
        -  "description": {
        -    "description": "The variable's description.",
        -    "maxLength": 512,
        -    "type": "string"
        -  },
        -  "disabled": {
        -    "default": false,
        -    "description": "If true, the variable is not enabled. Doesn't apply to path parameter variables.",
        -    "type": "boolean"
        -  },
        -  "id": {
        -    "description": "The variable's ID. Doesn't apply to collection-level variables.",
        -    "type": "string"
        -  },
        -  "key": {
        -    "description": "The variable's key (name).",
        -    "type": "string"
        -  },
        -  "value": {
        -    "anyOf": [
        -      {
        -        "type": "string"
        -      },
        -      {
        -        "type": "boolean"
        -      },
        -      {
        -        "type": "integer"
        -      }
        -    ],
        -    "description": "The key's value."
        -  }
        -}
      • removedInput schema / properties / collection / properties / item / items / properties / variable / items / type
        Removed value: -"object"
      • removedInput schema / properties / collection / properties / variable / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / collection / properties / variable / items / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about a collection-level variable. Collection variables don't support `id`, `description`, or `enabled` fields. Use `disabled` to control whether a variable is active.",
        +    "properties": {
        +      "disabled": {
        +        "default": false,
        +        "description": "If true, the variable is not enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The variable's key (name).",
        +        "type": "string"
        +      },
        +      "value": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "boolean"
        +          },
        +          {
        +            "type": "integer"
        +          }
        +        ],
        +        "description": "The key's value."
        +      }
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about a collection-level secret variable. Collection variables don't have an `id` field.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "default": true,
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The variable's key (name).",
        +        "type": "string"
        +      },
        +      "secret": {
        +        "description": "If true, the variable is marked as secret and its value is retrieved from the mentioned provider in the source field.",
        +        "type": "boolean"
        +      },
        +      "source": {
        +        "additionalProperties": false,
        +        "description": "Information about the source of the variable's value.",
        +        "properties": {
        +          "postman": {
        +            "additionalProperties": false,
        +            "description": "Information about the Postman-specific source of the variable's value.",
        +            "properties": {
        +              "secretId": {
        +                "description": "The variable's secret ID.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "const": "cloud",
        +                "description": "The variable's type:\n- `cloud` — The variable value is synced and stored in the Postman Cloud.\n",
        +                "type": "string"
        +              },
        +              "vaultId": {
        +                "description": "The variable's ID in the Postman Vault.",
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "provider": {
        +            "const": "postman",
        +            "description": "The secret's provider.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / collection / properties / variable / items / description
        Removed value: -"Information about the variable."
      • removedInput schema / properties / collection / properties / variable / items / properties
        Removed value: -{
        -  "description": {
        -    "description": "The variable's description.",
        -    "maxLength": 512,
        -    "type": "string"
        -  },
        -  "disabled": {
        -    "default": false,
        -    "description": "If true, the variable is not enabled. Doesn't apply to path parameter variables.",
        -    "type": "boolean"
        -  },
        -  "id": {
        -    "description": "The variable's ID. Doesn't apply to collection-level variables.",
        -    "type": "string"
        -  },
        -  "key": {
        -    "description": "The variable's key (name).",
        -    "type": "string"
        -  },
        -  "value": {
        -    "anyOf": [
        -      {
        -        "type": "string"
        -      },
        -      {
        -        "type": "boolean"
        -      },
        -      {
        -        "type": "integer"
        -      }
        -    ],
        -    "description": "The key's value."
        -  }
        -}
      • removedInput schema / properties / collection / properties / variable / items / type
        Removed value: -"object"
    • ChangedputEnvironment5 fields changed
      • removedInput schema / properties / environment / properties / values / items / additionalProperties
        Removed value: -false
      • addedInput schema / properties / environment / properties / values / items / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about the variable.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The variable's name.",
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "The variable's type:\n- `secret` — The variable value is masked.\n- `default` — The variable value is visible in plain text.\n",
        +        "enum": [
        +          "secret",
        +          "default"
        +        ],
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The variable's value.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "Information about the variable stored in the Postman Vault. This property only returns when a variable is defined as secret.",
        +    "properties": {
        +      "description": {
        +        "description": "The variable's description.",
        +        "maxLength": 512,
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "description": "If true, the variable is enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The variable's name.",
        +        "type": "string"
        +      },
        +      "secret": {
        +        "description": "If true, the variable is marked as secret and its value is retrieved from the mentioned provider in the source field.",
        +        "type": "boolean"
        +      },
        +      "source": {
        +        "additionalProperties": false,
        +        "description": "Information about the source of the variable's value.",
        +        "properties": {
        +          "postman": {
        +            "additionalProperties": false,
        +            "description": "Information about the Postman-specific source of the variable's value.",
        +            "properties": {
        +              "secretId": {
        +                "description": "The variable's secret ID.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "const": "cloud",
        +                "description": "The variable's type:\n- `cloud` — The variable value is synced and stored in the Postman Cloud.\n",
        +                "type": "string"
        +              },
        +              "vaultId": {
        +                "description": "The variable's ID in the Postman Vault.",
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "provider": {
        +            "const": "postman",
        +            "description": "The secret's provider.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": {
        +        "description": "The variable's type:\n- `secret` — The variable value is masked.\n- `default` — The variable value is visible in plain text.\n",
        +        "enum": [
        +          "secret",
        +          "default"
        +        ],
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The variable's value.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / environment / properties / values / items / description
        Removed value: -"Information about the environment's variables."
      • removedInput schema / properties / environment / properties / values / items / properties
        Removed value: -{
        -  "description": {
        -    "description": "The variable's description.",
        -    "maxLength": 512,
        -    "type": "string"
        -  },
        -  "enabled": {
        -    "description": "If true, the variable is enabled.",
        -    "type": "boolean"
        -  },
        -  "key": {
        -    "description": "The variable's name.",
        -    "type": "string"
        -  },
        -  "type": {
        -    "description": "The variable's type:\n- `secret` — The variable value is masked.\n- `default` — The variable value is visible in plain text.\n",
        -    "enum": [
        -      "secret",
        -      "default"
        -    ],
        -    "type": "string"
        -  },
        -  "value": {
        -    "description": "The variable's value.",
        -    "type": "string"
        -  }
        -}
      • removedInput schema / properties / environment / properties / values / items / type
        Removed value: -"object"
    • ChangedsearchPostmanElements3 fields changed
      • changedInput schema / properties / entityType / description
        Previous value: -"The type of Postman entity to search for: `requests` (individual API requests), `collections` (API collections), `workspaces` (Postman workspaces), `specs` (API specifications), `flows` (Postman Flows), `environments` (Postman Environments), or `mocks` (Postman Mock Servers)."New value: +"The type of Postman entity to search for: `requests` (individual API requests), `collections` (API collections), `workspaces` (Postman workspaces), `specs` (API specifications), `flows` (Postman Flows), `environments` (Postman Environments), `mocks` (Postman Mock Servers), or `documents` (Postman workspace documents)."
      • changedInput schema / properties / entityType / enum
        Previous value: -[
        -  "requests",
        -  "collections",
        -  "workspaces",
        -  "specs",
        -  "flows",
        -  "environments",
        -  "mocks"
        -]New value: +[
        +  "requests",
        +  "collections",
        +  "workspaces",
        +  "specs",
        +  "flows",
        +  "environments",
        +  "mocks",
        +  "documents"
        +]
      • addedInput schema / properties / filters / properties / $and / items / properties / documentId
        Added value: +{
        +  "$ref": "#/properties/filters/properties/$and/items/properties/workspaceId"
        +}
    • ChangedupdateCollectionRequest3 fields changed
      • removedInput schema / properties / events / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "additionalProperties": false,
        -      "properties": {
        -        "listen": {
        -          "description": "The event type.",
        -          "enum": [
        -            "test",
        -            "prerequest"
        -          ],
        -          "type": "string"
        -        },
        -        "script": {
        -          "additionalProperties": false,
        -          "description": "Information about the Javascript code that can be used to to perform setup or teardown operations in a response.",
        -          "properties": {
        -            "exec": {
        -              "description": "A list of script strings, where each line represents a line of code. Separate lines makes it easy to track script changes.",
        -              "items": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "type": "array"
        -            },
        -            "id": {
        -              "description": "The script's ID.",
        -              "type": "string"
        -            },
        -            "type": {
        -              "description": "The type of script. For example, `text/javascript`.",
        -              "type": "string"
        -            }
        -          },
        -          "type": "object"
        -        }
        -      },
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedInput schema / properties / events / items
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "listen": {
        +      "description": "The event type.",
        +      "enum": [
        +        "test",
        +        "prerequest"
        +      ],
        +      "type": "string"
        +    },
        +    "script": {
        +      "additionalProperties": false,
        +      "description": "Information about the Javascript code that can be used to to perform setup or teardown operations in a response.",
        +      "properties": {
        +        "exec": {
        +          "description": "A list of script strings, where each line represents a line of code. Separate lines makes it easy to track script changes.",
        +          "items": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "type": "array"
        +        },
        +        "id": {
        +          "description": "The script's ID.",
        +          "type": "string"
        +        },
        +        "type": {
        +          "description": "The type of script. For example, `text/javascript`.",
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / events / type
        Added value: +"array"
  3. 1 tool updatev2.9.1
    • ChangedsearchPostmanElements2 fields changed
      • changedInput schema / properties / entityType / description
        Previous value: -"The type of Postman entity to search for: `requests` (individual API requests), `collections` (API collections), `workspaces` (Postman workspaces), `specs` (API specifications), `flows` (Postman Flows), or `environments` (Postman Environments)."New value: +"The type of Postman entity to search for: `requests` (individual API requests), `collections` (API collections), `workspaces` (Postman workspaces), `specs` (API specifications), `flows` (Postman Flows), `environments` (Postman Environments), or `mocks` (Postman Mock Servers)."
      • changedInput schema / properties / entityType / enum
        Previous value: -[
        -  "requests",
        -  "collections",
        -  "workspaces",
        -  "specs",
        -  "flows",
        -  "environments"
        -]New value: +[
        +  "requests",
        +  "collections",
        +  "workspaces",
        +  "specs",
        +  "flows",
        +  "environments",
        +  "mocks"
        +]
  4. 3 tool updatesv2.9.0
    • ChangedcreateSpec3 fields changed
      • changedInput schema / properties / files / items / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "description": "The file's stringified contents.",
        -        "type": "string"
        -      },
        -      "path": {
        -        "description": "The file's path. Accepts .json, .yaml, .proto and .graphql file types.",
        -        "type": "string"
        -      },
        -      "type": {
        -        "description": "The type of file. This property is required when creating multi-file specifications:\n- `ROOT` — The file containing the full OpenAPI structure. This serves as the entry point for the API spec and references other (`DEFAULT`) spec files. Multi-file specs can only have one root file.\n- `DEFAULT` — A file referenced by the `ROOT` file.\n",
        -        "enum": [
        -          "DEFAULT",
        -          "ROOT"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content",
        -      "type"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "description": "The file's stringified contents.",
        -        "type": "string"
        -      },
        -      "path": {
        -        "description": "The file's path. Accepts .json, .yaml, .proto and .graphql file types.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "content": {
        +        "description": "The file's stringified contents.",
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "The file's path. Accepts .json, .yaml, and .proto types.",
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "The type of file. This property is required when creating multi-file specifications:\n- `ROOT` — The file containing the full OpenAPI structure. This serves as the entry point for the API spec and references other (`DEFAULT`) spec files. Multi-file specs can only have one root file.\n- `DEFAULT` — A file referenced by the `ROOT` file.\n",
        +        "enum": [
        +          "DEFAULT",
        +          "ROOT"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "content",
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "content": {
        +        "description": "The file's stringified contents.",
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "The file's path. Accepts .json, .yaml, .proto, .graphql, and .smithy file types.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "content"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / type / description
        Previous value: -"The specification's type."New value: +"The type of API specification."
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "OPENAPI:2.0",
        -  "OPENAPI:3.0",
        -  "OPENAPI:3.1",
        -  "ASYNCAPI:2.0",
        -  "PROTOBUF:2",
        -  "PROTOBUF:3",
        -  "GRAPHQL"
        -]New value: +[
        +  "OPENAPI:2.0",
        +  "OPENAPI:3.0",
        +  "OPENAPI:3.1",
        +  "ASYNCAPI:2.0",
        +  "ASYNCAPI:3.0",
        +  "PROTOBUF:2",
        +  "PROTOBUF:3",
        +  "GRAPHQL",
        +  "SMITHY:2.0"
        +]
    • ChangedputCollection1 field changed
      • changedInput schema / properties / collection / properties / auth / properties / type / enum
        Previous value: -[
        -  "basic",
        -  "bearer",
        -  "apikey",
        -  "digest",
        -  "oauth1",
        -  "oauth2",
        -  "hawk",
        -  "awsv4",
        -  "ntlm",
        -  "edgegrid",
        -  "jwt",
        -  "asap"
        -]New value: +[
        +  "basic",
        +  "bearer",
        +  "apikey",
        +  "digest",
        +  "oauth1",
        +  "oauth2",
        +  "hawk",
        +  "awsv4",
        +  "ntlm",
        +  "edgegrid",
        +  "jwt",
        +  "asap",
        +  "noauth"
        +]
    • AddedsearchPostmanElements
  5. 3 tool updatesv2.8.9
    • ChangedcreateCollection1 field changed
      • addedInput schema / properties / collection / properties / item / items / properties / item
        Added value: +{
        +  "description": "A list of items contained in this folder. Use this property to create folder structures within the collection. Each item can be a request (with a 'request' property) or a nested folder (with its own 'item' property). Omit the 'request' property for folder items.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "A nested collection item — either a request (has 'request') or a folder (has 'item').",
        +    "properties": {
        +      "description": {
        +        "description": "The item's description.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "item": {
        +        "description": "Nested folder items for deeper folder structures.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "description": {
        +              "description": "The item's description.",
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "item": {
        +              "description": "Further nested folder items.",
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "request": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "method": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "anyOf": [
        +                          {
        +                            "type": "string"
        +                          },
        +                          {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "raw": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "type": "object"
        +                          }
        +                        ]
        +                      }
        +                    },
        +                    "type": "object"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "name": {
        +              "description": "The item's name.",
        +              "type": "string"
        +            },
        +            "request": {
        +              "additionalProperties": false,
        +              "description": "The request definition.",
        +              "properties": {
        +                "body": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "mode": {
        +                      "type": "string"
        +                    },
        +                    "raw": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "type": "object"
        +                },
        +                "header": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "key": {
        +                        "type": "string"
        +                      },
        +                      "value": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "method": {
        +                  "enum": [
        +                    "GET",
        +                    "PUT",
        +                    "POST",
        +                    "PATCH",
        +                    "DELETE",
        +                    "COPY",
        +                    "HEAD",
        +                    "OPTIONS",
        +                    "LINK",
        +                    "UNLINK",
        +                    "PURGE",
        +                    "LOCK",
        +                    "UNLOCK",
        +                    "PROPFIND",
        +                    "VIEW"
        +                  ],
        +                  "type": "string"
        +                },
        +                "url": {
        +                  "anyOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "raw": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "type": "object"
        +                    }
        +                  ]
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "description": "The item's name.",
        +        "type": "string"
        +      },
        +      "request": {
        +        "additionalProperties": false,
        +        "description": "The request definition. Include for request items, omit for folder items.",
        +        "properties": {
        +          "auth": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "type": {
        +                "enum": [
        +                  "noauth",
        +                  "basic",
        +                  "bearer",
        +                  "apikey",
        +                  "digest",
        +                  "oauth1",
        +                  "oauth2",
        +                  "hawk",
        +                  "awsv4",
        +                  "ntlm",
        +                  "edgegrid"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "body": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "mode": {
        +                "enum": [
        +                  "raw",
        +                  "urlencoded",
        +                  "formdata",
        +                  "file",
        +                  "graphql"
        +                ],
        +                "type": "string"
        +              },
        +              "options": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "raw": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "language": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "type": "object"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "raw": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "header": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "description": {
        +                  "type": "string"
        +                },
        +                "key": {
        +                  "type": "string"
        +                },
        +                "value": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "method": {
        +            "description": "The HTTP method.",
        +            "enum": [
        +              "GET",
        +              "PUT",
        +              "POST",
        +              "PATCH",
        +              "DELETE",
        +              "COPY",
        +              "HEAD",
        +              "OPTIONS",
        +              "LINK",
        +              "UNLINK",
        +              "PURGE",
        +              "LOCK",
        +              "UNLOCK",
        +              "PROPFIND",
        +              "VIEW"
        +            ],
        +            "type": "string"
        +          },
        +          "url": {
        +            "anyOf": [
        +              {
        +                "description": "The request's URL string.",
        +                "type": "string"
        +              },
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "host": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "path": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "protocol": {
        +                    "type": "string"
        +                  },
        +                  "query": {
        +                    "items": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "key": {
        +                          "type": "string"
        +                        },
        +                        "value": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "raw": {
        +                    "description": "The request's raw URL.",
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • ChangedgetCollections1 field changed
      • changedInput schema / properties / name / description
        Previous value: -"Filter results by collections that match the given name."New value: +"Filter results by collections whose name exactly matches the given value. Partial or substring matches are not supported."
    • ChangedputCollection2 fields changed
      • addedInput schema / properties / collection / properties / item / items / properties / item
        Added value: +{
        +  "description": "A list of items contained in this folder. Use this property to create folder structures within the collection. Each item can be a request (with a 'request' property) or a nested folder (with its own 'item' property). Omit the 'request' property for folder items.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "A nested collection item — either a request (has 'request') or a folder (has 'item').",
        +    "properties": {
        +      "description": {
        +        "description": "The item's description.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "id": {
        +        "description": "The collection item's ID.",
        +        "type": "string"
        +      },
        +      "item": {
        +        "description": "Nested folder items for deeper folder structures.",
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "description": {
        +              "description": "The item's description.",
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "id": {
        +              "description": "The collection item's ID.",
        +              "type": "string"
        +            },
        +            "item": {
        +              "description": "Further nested folder items.",
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "request": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "method": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "anyOf": [
        +                          {
        +                            "type": "string"
        +                          },
        +                          {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "raw": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "type": "object"
        +                          }
        +                        ]
        +                      }
        +                    },
        +                    "type": "object"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "name": {
        +              "description": "The item's name.",
        +              "type": "string"
        +            },
        +            "request": {
        +              "additionalProperties": false,
        +              "description": "The request definition.",
        +              "properties": {
        +                "body": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "mode": {
        +                      "type": "string"
        +                    },
        +                    "raw": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "type": "object"
        +                },
        +                "header": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "key": {
        +                        "type": "string"
        +                      },
        +                      "value": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "method": {
        +                  "enum": [
        +                    "GET",
        +                    "PUT",
        +                    "POST",
        +                    "PATCH",
        +                    "DELETE",
        +                    "COPY",
        +                    "HEAD",
        +                    "OPTIONS",
        +                    "LINK",
        +                    "UNLINK",
        +                    "PURGE",
        +                    "LOCK",
        +                    "UNLOCK",
        +                    "PROPFIND",
        +                    "VIEW"
        +                  ],
        +                  "type": "string"
        +                },
        +                "url": {
        +                  "anyOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "raw": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "type": "object"
        +                    }
        +                  ]
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "name": {
        +        "description": "The item's name.",
        +        "type": "string"
        +      },
        +      "request": {
        +        "additionalProperties": false,
        +        "description": "The request definition. Include for request items, omit for folder items.",
        +        "properties": {
        +          "auth": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "type": {
        +                "enum": [
        +                  "noauth",
        +                  "basic",
        +                  "bearer",
        +                  "apikey",
        +                  "digest",
        +                  "oauth1",
        +                  "oauth2",
        +                  "hawk",
        +                  "awsv4",
        +                  "ntlm",
        +                  "edgegrid"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "body": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "mode": {
        +                "enum": [
        +                  "raw",
        +                  "urlencoded",
        +                  "formdata",
        +                  "file",
        +                  "graphql"
        +                ],
        +                "type": "string"
        +              },
        +              "options": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "raw": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "language": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "type": "object"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "raw": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "header": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "description": {
        +                  "type": "string"
        +                },
        +                "key": {
        +                  "type": "string"
        +                },
        +                "value": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "method": {
        +            "description": "The HTTP method.",
        +            "enum": [
        +              "GET",
        +              "PUT",
        +              "POST",
        +              "PATCH",
        +              "DELETE",
        +              "COPY",
        +              "HEAD",
        +              "OPTIONS",
        +              "LINK",
        +              "UNLINK",
        +              "PURGE",
        +              "LOCK",
        +              "UNLOCK",
        +              "PROPFIND",
        +              "VIEW"
        +            ],
        +            "type": "string"
        +          },
        +          "url": {
        +            "anyOf": [
        +              {
        +                "description": "The request's URL string.",
        +                "type": "string"
        +              },
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "host": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "path": {
        +                    "items": {
        +                      "type": "string"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "protocol": {
        +                    "type": "string"
        +                  },
        +                  "query": {
        +                    "items": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "key": {
        +                          "type": "string"
        +                        },
        +                        "value": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "raw": {
        +                    "description": "The request's raw URL.",
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              }
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / properties / collection / properties / item / items / properties / request / properties / auth / properties / type / enum
        Previous value: -[
        -  "basic",
        -  "bearer",
        -  "apikey",
        -  "digest",
        -  "oauth1",
        -  "oauth2",
        -  "hawk",
        -  "awsv4",
        -  "ntlm",
        -  "edgegrid",
        -  "jwt",
        -  "asap"
        -]New value: +[
        +  "basic",
        +  "bearer",
        +  "apikey",
        +  "digest",
        +  "oauth1",
        +  "oauth2",
        +  "hawk",
        +  "awsv4",
        +  "ntlm",
        +  "edgegrid",
        +  "jwt",
        +  "asap",
        +  "noauth"
        +]
  6. 12 tool updatesv2.8.7
    • ChangedcreateCollection2 fields changed
      • changedInput schema / properties / collection / properties / info / properties / name / description
        Previous value: -"The collection's name."New value: +"The collection's name. Must not be empty."
      • addedInput schema / properties / collection / properties / info / properties / name / minLength
        Added value: +1
    • ChangedcreateCollectionRequest12 fields changed
      • addedInput schema / properties / auth
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "apikey": {
        +          "description": "The API key's authentication information.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "asap": {
        +          "description": "The attributes for ASAP authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "awsv4": {
        +          "description": "The attributes for AWS Signature authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "basic": {
        +          "description": "The attributes for Basic Auth.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "bearer": {
        +          "description": "The attributes for Bearer Token authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "digest": {
        +          "description": "The attributes for Digest access authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "edgegrid": {
        +          "description": "The attributes for Akamai Edgegrid authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "hawk": {
        +          "description": "The attributes for Hawk authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "jwt": {
        +          "description": "The attributes for JWT authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "ntlm": {
        +          "description": "The attributes for NTLM authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "oauth1": {
        +          "description": "The attributes for OAuth1 authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "oauth2": {
        +          "description": "The attributes for OAuth2 authentication.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Information about the supported Postman [authorization type](https://learning.postman.com/docs/sending-requests/authorization/authorization-types/).",
        +            "properties": {
        +              "key": {
        +                "description": "The auth method's key value.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The value's type.",
        +                "enum": [
        +                  "string",
        +                  "boolean",
        +                  "number",
        +                  "array",
        +                  "object",
        +                  "any"
        +                ],
        +                "type": "string"
        +              },
        +              "value": {
        +                "anyOf": [
        +                  {
        +                    "type": "string"
        +                  },
        +                  {
        +                    "items": {
        +                      "additionalProperties": {},
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                ],
        +                "description": "The key's value."
        +              }
        +            },
        +            "required": [
        +              "key"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "type": {
        +          "description": "The authorization type.",
        +          "enum": [
        +            "basic",
        +            "bearer",
        +            "apikey",
        +            "digest",
        +            "oauth1",
        +            "oauth2",
        +            "hawk",
        +            "awsv4",
        +            "ntlm",
        +            "edgegrid",
        +            "jwt",
        +            "asap",
        +            "noauth"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The request's authentication information."
        +}
      • addedInput schema / properties / data
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "description": {
        +            "description": "The form data's description.",
        +            "type": "string"
        +          },
        +          "enabled": {
        +            "description": "If true, the form data entry is enabled.",
        +            "type": "boolean"
        +          },
        +          "key": {
        +            "description": "The form data's key.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "description": "The form data's type.",
        +            "enum": [
        +              "text",
        +              "file"
        +            ],
        +            "type": "string"
        +          },
        +          "uuid": {
        +            "description": "The form data entry's unique identifier.",
        +            "type": "string"
        +          },
        +          "value": {
        +            "description": "The form data's value.",
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The request body's form data."
        +}
      • addedInput schema / properties / dataMode
        Added value: +{
        +  "description": "The request body's data mode.",
        +  "enum": [
        +    "raw",
        +    "urlencoded",
        +    "formdata",
        +    "binary",
        +    "graphql"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / dataOptions
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "binary": {
        +          "additionalProperties": {},
        +          "description": "Options for the `binary` data mode.",
        +          "type": "object"
        +        },
        +        "graphql": {
        +          "additionalProperties": {},
        +          "description": "Options for the `graphql` data mode.",
        +          "type": "object"
        +        },
        +        "params": {
        +          "additionalProperties": {},
        +          "description": "Options for the `params` data mode.",
        +          "type": "object"
        +        },
        +        "raw": {
        +          "additionalProperties": false,
        +          "description": "Options for the `raw` data mode.",
        +          "properties": {
        +            "language": {
        +              "description": "The raw mode data's language type.",
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "urlencoded": {
        +          "additionalProperties": {},
        +          "description": "Options for the `urlencoded` data mode.",
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Additional configurations and options set for the request body's various data modes."
        +}
      • addedInput schema / properties / description
        Added value: +{
        +  "description": "The request's description.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / events
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "listen": {
        +            "description": "The event type.",
        +            "enum": [
        +              "test",
        +              "prerequest"
        +            ],
        +            "type": "string"
        +          },
        +          "script": {
        +            "additionalProperties": false,
        +            "description": "Information about the Javascript code that can be used to to perform setup or teardown operations in a response.",
        +            "properties": {
        +              "exec": {
        +                "description": "A list of script strings, where each line represents a line of code. Separate lines makes it easy to track script changes.",
        +                "items": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "type": "array"
        +              },
        +              "id": {
        +                "description": "The script's ID.",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "The type of script. For example, `text/javascript`.",
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "A list of scripts configured to run when specific events occur."
        +}
      • addedInput schema / properties / graphqlModeData
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "query": {
        +          "description": "The GraphQL query.",
        +          "type": "string"
        +        },
        +        "variables": {
        +          "description": "The GraphQL query variables, in JSON format.",
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The request body's GraphQL mode data."
        +}
      • addedInput schema / properties / headerData
        Added value: +{
        +  "description": "The request's headers.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "description": {
        +        "description": "The header's description.",
        +        "type": "string"
        +      },
        +      "key": {
        +        "description": "The header's key.",
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The header's value.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / method
        Added value: +{
        +  "description": "The request's HTTP method.",
        +  "enum": [
        +    "GET",
        +    "PUT",
        +    "POST",
        +    "PATCH",
        +    "DELETE",
        +    "COPY",
        +    "HEAD",
        +    "OPTIONS",
        +    "LINK",
        +    "UNLINK",
        +    "PURGE",
        +    "LOCK",
        +    "UNLOCK",
        +    "PROPFIND",
        +    "VIEW"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / queryParams
        Added value: +{
        +  "description": "The request's query parameters.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "description": {
        +        "description": "The query parameter's description.",
        +        "type": "string"
        +      },
        +      "enabled": {
        +        "description": "If true, the query parameter is enabled.",
        +        "type": "boolean"
        +      },
        +      "key": {
        +        "description": "The query parameter's key.",
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The query parameter's value.",
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / rawModeData
        Added value: +{
        +  "description": "The request body's raw mode data.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / url
        Added value: +{
        +  "description": "The request's URL.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • ChangedcreateCollectionResponse19 fields changed
      • addedInput schema / properties / cookies
        Added value: +{
        +  "description": "The response's cookie data.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / dataMode
        Added value: +{
        +  "description": "The associated request body's data mode.",
        +  "enum": [
        +    "raw",
        +    "urlencoded",
        +    "formdata",
        +    "binary",
        +    "graphql"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / dataOptions
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "binary": {
        +          "additionalProperties": {},
        +          "description": "Options for the `binary` data mode.",
        +          "type": "object"
        +        },
        +        "graphql": {
        +          "additionalProperties": {},
        +          "description": "Options for the `graphql` data mode.",
        +          "type": "object"
        +        },
        +        "params": {
        +          "additionalProperties": {},
        +          "description": "Options for the `params` data mode.",
        +          "type": "object"
        +        },
        +        "raw": {
        +          "additionalProperties": false,
        +          "description": "Options for the `raw` data mode.",
        +          "properties": {
        +            "language": {
        +              "description": "The raw mode data's language type.",
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "urlencoded": {
        +          "additionalProperties": {},
        +          "description": "Options for the `urlencoded` data mode.",
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Additional configurations and options set for the request body's various data modes."
        +}
      • addedInput schema / properties / description
        Added value: +{
        +  "description": "The response's description.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / headers
        Added value: +{
        +  "description": "A list of headers.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "Information about the header.",
        +    "properties": {
        +      "description": {
        +        "description": "The header's description.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "key": {
        +        "description": "The header's key, such as `Content-Type` or `X-Custom-Header`.",
        +        "type": "string"
        +      },
        +      "value": {
        +        "description": "The header key's value.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "key",
        +      "value"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / language
        Added value: +{
        +  "description": "The response body's language type.",
        +  "type": "string"
        +}
      • addedInput schema / properties / method
        Added value: +{
        +  "description": "The request's HTTP method.",
        +  "enum": [
        +    "GET",
        +    "PUT",
        +    "POST",
        +    "PATCH",
        +    "DELETE",
        +    "COPY",
        +    "HEAD",
        +    "OPTIONS",
        +    "LINK",
        +    "UNLINK",
        +    "PURGE",
        +    "LOCK",
        +    "UNLOCK",
        +    "PROPFIND",
        +    "VIEW"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / mime
        Added value: +{
        +  "description": "The response's MIME type.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / rawDataType
        Added value: +{
        +  "description": "The response's raw data type.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / rawModeData
        Added value: +{
        +  "description": "The associated request body's raw mode data.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / request
        Added value: +{
        +  "description": "The parent request's ID.",
        +  "type": "string"
        +}
      • removedInput schema / properties / requestId
        Removed value: -{
        -  "description": "The parent request's ID.",
        -  "type": "string"
        -}
      • addedInput schema / properties / requestObject
        Added value: +{
        +  "description": "A JSON-stringified representation of the associated request.",
        +  "type": "string"
        +}
      • addedInput schema / properties / responseCode
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "The response's HTTP response code information.",
        +  "properties": {
        +    "code": {
        +      "description": "The response's HTTP response status code.",
        +      "type": "number"
        +    },
        +    "name": {
        +      "description": "The name of the status code.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "The response's HTTP status text.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / text
        Added value: +{
        +  "description": "The raw text of the response body.",
        +  "type": "string"
        +}
      • addedInput schema / properties / time
        Added value: +{
        +  "description": "The time taken by the request to complete, in milliseconds.",
        +  "type": "string"
        +}
      • addedInput schema / properties / url
        Added value: +{
        +  "description": "The associated request's URL.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedInput schema / required
        Previous value: -[
        -  "collectionId",
        -  "requestId"
        -]New value: +[
        +  "collectionId",
        +  "request"
        +]
    • ChangedcreateSpec2 fields changed
      • changedInput schema / properties / files / items / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "description": "The file's stringified contents.",
        -        "type": "string"
        -      },
        -      "path": {
        -        "description": "The file's path. Accepts JSON or YAML files.",
        -        "type": "string"
        -      },
        -      "type": {
        -        "description": "The type of file. This property is required when creating multi-file specifications:\n- `ROOT` — The file containing the full OpenAPI structure. This serves as the entry point for the API spec and references other (`DEFAULT`) spec files. Multi-file specs can only have one root file.\n- `DEFAULT` — A file referenced by the `ROOT` file.\n",
        -        "enum": [
        -          "DEFAULT",
        -          "ROOT"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content",
        -      "type"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "description": "The file's stringified contents.",
        -        "type": "string"
        -      },
        -      "path": {
        -        "description": "The file's path. Accepts JSON or YAML files.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "content": {
        +        "description": "The file's stringified contents.",
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "The file's path. Accepts .json, .yaml, .proto and .graphql file types.",
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "The type of file. This property is required when creating multi-file specifications:\n- `ROOT` — The file containing the full OpenAPI structure. This serves as the entry point for the API spec and references other (`DEFAULT`) spec files. Multi-file specs can only have one root file.\n- `DEFAULT` — A file referenced by the `ROOT` file.\n",
        +        "enum": [
        +          "DEFAULT",
        +          "ROOT"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "content",
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "content": {
        +        "description": "The file's stringified contents.",
        +        "type": "string"
        +      },
        +      "path": {
        +        "description": "The file's path. Accepts .json, .yaml, .proto and .graphql file types.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "content"
        +    ],
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / type / enum
        Previous value: -[
        -  "OPENAPI:3.0",
        -  "ASYNCAPI:2.0"
        -]New value: +[
        +  "OPENAPI:2.0",
        +  "OPENAPI:3.0",
        +  "OPENAPI:3.1",
        +  "ASYNCAPI:2.0",
        +  "PROTOBUF:2",
        +  "PROTOBUF:3",
        +  "GRAPHQL"
        +]
    • ChangedcreateWorkspace2 fields changed
      • addedInput schema / properties / workspace / properties / teamId
        Added value: +{
        +  "description": "The team ID to assign to the workspace. This property is required if Postman [Organizations](https://learning.postman.com/docs/administration/managing-your-team/overview) is enabled.",
        +  "type": "string"
        +}
      • changedInput schema / properties / workspace / properties / type / description
        Previous value: -"The type of workspace:\n- `personal`\n- `private` — Private workspaces are available on Postman [**Professional** and **Enterprise** plans](https://www.postman.com/pricing).\n- `public`\n- `team`\n- `partner` — [Partner Workspaces](https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/partner-workspaces/) are available on Postman [**Professional** and **Enterprise** plans](https://www.postman.com/pricing)).\n"New value: +"The type of workspace:\n- `personal`\n- `private` — Private workspaces are available on Postman [**Team** and **Enterprise** plans](https://www.postman.com/pricing).\n- `public`\n- `team`\n- `partner` — [Partner Workspaces](https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/partner-workspaces/) are available on Postman [**Team** and **Enterprise** plans](https://www.postman.com/pricing)).\n"
    • ChangedgenerateCollection5 fields changed
      • removedInput schema / properties / options / default
        Removed value: -{
        -  "enableOptionalParameters": true,
        -  "folderStrategy": "Paths"
        -}
      • changedInput schema / properties / options / properties / parametersResolution / default
        Previous value: -"Schema"New value: +"Example"
      • changedInput schema / properties / options / properties / parametersResolution / description
        Previous value: -"Whether to generate the request and response parameters based on the specification or the specification's examples."New value: +"Determines how parameter values are generated in the collection. Must be set to \"Example\" — the \"Schema\" value is no longer supported by the Postman API and will result in an error. Always use \"Example\" to generate parameters from example values in the spec."
      • removedInput schema / properties / options / properties / parametersResolution / enum
        Removed value: -[
        -  "Schema",
        -  "Example"
        -]
      • changedInput schema / required
        Previous value: -[
        -  "specId",
        -  "elementType",
        -  "name"
        -]New value: +[
        +  "specId",
        +  "elementType",
        +  "name",
        +  "options"
        +]
    • ChangedgenerateSpecFromCollection2 fields changed
      • removedInput schema / properties / type / const
        Removed value: -"OPENAPI:3.0"
      • addedInput schema / properties / type / enum
        Added value: +[
        +  "OPENAPI:2.0",
        +  "OPENAPI:3.0",
        +  "OPENAPI:3.1"
        +]
    • AddedgetDuplicateCollectionTaskStatus
    • RemovedgetStatusOfAnAsyncApiTask
    • ChangedgetWorkspaces4 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor to get the next set of results in a paginated response. Get this value from the `meta.nextCursor` field in the previous response.\n",
        +  "type": "string"
        +}
      • addedInput schema / properties / elementId
        Added value: +{
        +  "description": "Filter results to return the workspace where the given element's ID is located. When filtering by collection, you must use the collection's unique ID (`userId`-`collection`). If you pass this query parameter, you must also pass the `elementType` query parameter.",
        +  "type": "string"
        +}
      • addedInput schema / properties / elementType
        Added value: +{
        +  "description": "Filter results to return the workspace where the given element type is located. If you pass this query parameter, you must also pass the `elementId` query parameter.",
        +  "enum": [
        +    "collection",
        +    "specification"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 100,
        +  "description": "The maximum number of workspaces to return per page. Defaults to 100.\n",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • ChangedputCollection2 fields changed
      • addedInput schema / properties / collection / properties / item / items / properties / createdAt
        Added value: +{
        +  "description": "The date and time at which the collection item was created.",
        +  "format": "date-time",
        +  "type": "string"
        +}
      • addedInput schema / properties / collection / properties / item / items / properties / updatedAt
        Added value: +{
        +  "description": "The date and time at which the collection item was updated.",
        +  "format": "date-time",
        +  "type": "string"
        +}
    • AddedupdateCollectionRequest
  7. 40 tool updates
    • First observedcreateCollection
    • First observedcreateCollectionRequest
    • First observedcreateCollectionResponse
    • First observedcreateEnvironment
    • First observedcreateMock
    • First observedcreateSpec
    • First observedcreateSpecFile
    • First observedcreateWorkspace
    • First observedduplicateCollection
    • First observedgenerateCollection
    • First observedgenerateSpecFromCollection
    • First observedgetAllSpecs
    • First observedgetAuthenticatedUser
    • First observedgetCollection
    • First observedgetCollections
    • First observedgetEnabledTools
    • First observedgetEnvironment
    • First observedgetEnvironments
    • First observedgetGeneratedCollectionSpecs
    • First observedgetMock
    • First observedgetMocks
    • First observedgetSpec
    • First observedgetSpecCollections
    • First observedgetSpecDefinition
    • First observedgetSpecFile
    • First observedgetSpecFiles
    • First observedgetStatusOfAnAsyncApiTask
    • First observedgetTaggedEntities
    • First observedgetWorkspace
    • First observedgetWorkspaces
    • First observedpublishMock
    • First observedputCollection
    • First observedputEnvironment
    • First observedrunCollection
    • First observedsyncCollectionWithSpec
    • First observedsyncSpecWithCollection
    • First observedupdateMock
    • First observedupdateSpecFile
    • First observedupdateSpecProperties
    • First observedupdateWorkspace

TDQS

B3.1/5.0

Scored across 42 tools

Disambiguation3/5

Many tools are individually clear, but there are several near-miss pairs such as createCollection/generateCollection, syncCollectionWithSpec/syncSpecWithCollection, getSpecDefinition/getSpecFile, and getSpecCollections/getGeneratedCollectionSpecs. These overlapping creation/sync/generation relationships could cause an agent to select the wrong tool despite helpful descriptions.

Naming Consistency4/5

The tool set overwhelmingly follows a verb-noun camelCase pattern like getCollection, createWorkspace, updateMock, and runCollection. Minor deviations such as getAllSpecs instead of getSpecs, the meta-tool getEnabledTools, and the put vs update distinction require a bit of inference but do not break the overall pattern.

Tool Count2/5

With 42 tools, this server is well beyond the 25+ threshold and spans many Postman resources including collections, specs, environments, workspaces, mocks, search, tags, and user metadata. The count feels heavy and would likely be better split into multiple focused servers or consolidated around core workflows.

Completeness2/5

The server provides broad create/read/update coverage across collections, environments, workspaces, specs, and mocks, but lacks delete operations for nearly every resource. This is a significant lifecycle gap that will cause agent failures when users need to clean up or manage resources end-to-end.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that generates AI agent tools from Postman collections and requests. This server integrates with the Postman API to convert API endpoints into type-safe code that can be used with various AI frameworks.
    1
    13
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Automatically converts Postman API collections into MCP-compatible tools for AI assistants. Enables users to interact with any API through natural language by generating JavaScript tools from Postman requests.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that converts Postman API requests into executable tools for LLMs using the Postman Runtime. It supports complex authentication types and enables seamless integration between Postman collections and MCP clients like Claude Desktop.
    -
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides seamless integration with the Postman API, enabling AI assistants and applications to interact with Postman workspaces, collections, requests, environments, and folders programmatically.
    19
    13
    31
    MIT