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.

Inputs: workspace (required), collection.

createCollectionRequestCreate a collection requestBInspect

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.

Inputs: collectionId (required), url, auth, data, +11 more.

createCollectionResponseCreate a collection 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.

Inputs: request (required), collectionId (required), url, mime, +15 more.

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.

Inputs: workspace (required), environment.

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.

Inputs: workspace (required), mock.

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.

Inputs: name (required), type (required), files (required), workspaceId (required).

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.

Inputs: path (required), specId (required), content (required).

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.

Inputs: workspace.

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.

Inputs: workspace (required), collectionId (required), suffix.

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.

Inputs: name (required), specId (required), options (required), elementType (required).

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.

Inputs: name (required), type (required), format (required), elementType (required), +1 more.

getAllSpecsGet all specsA
Read-onlyIdempotent
Inspect

Gets all API specifications in a workspace.

Inputs: workspaceId (required), limit, cursor.

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.

Inputs: no named parameters.

getCollectionGet a collection (map by default)A
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.

Inputs: collectionId (required), model, access_key.

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.

Inputs: workspace (required), name, limit, offset.

getDuplicateCollectionTaskStatusGet status of a collection duplication taskC
Read-onlyIdempotent
Inspect

Gets the status of a collection duplication task.

Inputs: taskId (required).

getEnabledToolsGet enabled toolsA
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.

Inputs: no named parameters.

getEnvironmentGet an environmentC
Read-onlyIdempotent
Inspect

Gets information about an environment.

Inputs: environmentId (required).

getEnvironmentsGet all environmentsA
Read-onlyIdempotent
Inspect

Gets information about all of your environments.

Inputs: workspace.

getGeneratedCollectionSpecsGet a collection's generated specsC
Read-onlyIdempotent
Inspect

Gets the API specification generated for the given collection.

Inputs: elementType (required), collectionUid (required).

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.

Inputs: mockId (required).

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.

Inputs: teamId, workspace.

getSpecGet a specB
Read-onlyIdempotent
Inspect

Gets information about an API specification.

Inputs: specId (required).

getSpecCollectionsGet a spec's generated collectionsA
Read-onlyIdempotent
Inspect

Gets all of an API specification's generated collections.

Inputs: specId (required), elementType (required), limit, cursor.

getSpecDefinitionGet a spec's definitionB
Read-onlyIdempotent
Inspect

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

Inputs: specId (required).

getSpecFileGet a spec fileA
Read-onlyIdempotent
Inspect

Gets the contents of an API specification's file.

Inputs: specId (required), filePath (required).

getSpecFilesGet a spec's filesA
Read-onlyIdempotent
Inspect

Gets all the files in an API specification.

Inputs: specId (required).

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.

Inputs: slug (required), limit, cursor, direction, +1 more.

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).

Inputs: workspaceId (required), include.

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`

Inputs: type, limit, cursor, include, +3 more.

publishMockPublish a mock serverAInspect

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

Inputs: mockId (required).

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.

Inputs: collectionId (required), Prefer, collection.

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.

Inputs: environmentId (required), environment.

runCollectionRun a collectionB
DestructiveIdempotent
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.

Inputs: collectionId (required), stopOnError, abortOnError, environmentId, +5 more.

searchPostmanElementsSearch Postman elementsA
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"}}]}

Inputs: q, limit, cursor, filters, +2 more.

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.

Inputs: specId (required), collectionUid (required).

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.

Inputs: specId (required), collectionUid (required).

updateCollectionRequestUpdate a collection 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.

  • Events (`events`). Events are merged by `listen` type, so you only need to send the event you are changing. A `listen` type you omit keeps its stored script. To empty a script, send its event with `script.exec` set to `[]` — sending `events: []` changes nothing.

Inputs: requestId (required), collectionId (required), url, auth, +11 more.

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.

Inputs: mockId (required), mock.

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.

Inputs: specId (required), filePath (required), name, type, +1 more.

updateSpecPropertiesUpdate a spec's propertiesB
Idempotent
Inspect

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

Inputs: name (required), specId (required).

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.

Inputs: workspaceId (required), workspace.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 42 tools

    Disambiguation3/5

    Most tools are resource/action specific, but the spec and collection lifecycle has overlapping operations such as generateSpecFromCollection, generateCollection, getGeneratedCollectionSpecs, getSpecCollections, syncCollectionWithSpec, and syncSpecWithCollection. Descriptions help, but an agent can easily misselect among these closely related tools.

    Naming Consistency4/5

    Names are consistently camelCase and mostly follow predictable verb-noun patterns such as createCollection, getWorkspace, updateMock, and runCollection. Minor deviations exist, including putCollection/putEnvironment instead of update*, and getAllSpecs versus other get* variants.

    Tool Count2/5

    The 42-tool surface is large for an agent-facing MCP server and includes many fine-grained operations across collections, specs, mocks, environments, and workspaces. While Postman is a broad product, this count feels heavy and increases selection burden.

    Completeness3/5

    The surface covers many create/get/update workflows across major Postman entities, but delete operations are conspicuously absent for collections, requests, responses, environments, mocks, specs, and workspaces. Agents can perform core creation and reading tasks but will hit dead ends for cleanup and full lifecycle management.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    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
    • A
      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.
      MIT
    • A
      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.
      MIT
    • 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
      28 npm
      31
      MIT