Postman's MCP server connects AI agents, assistants, and chatbots directly to your APIs on Postman. Use natural language to prompt AI to automate work across your Postman collections, environments, workspaces, and more.
10K+
42 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
Postman's MCP server connects AI agents, assistants, and chatbots directly to your APIs on Postman. Use natural language to prompt AI to automate work across your Postman collections, environments, workspaces, and more.
| Attribute | Details |
|---|---|
| Docker Image | mcp/postman |
| Author | postmanlabs |
| Repository | https://github.com/postmanlabs/postman-mcp-server |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/postmanlabs/postman-mcp-server/blob/89d87667898d08443d2791fb19312b2f2084a697/Dockerfile |
| Commit | 89d87667898d08443d2791fb19312b2f2084a697 |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/postman --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | Apache License 2.0 |
| Tools provided by this Server | Short Description |
|---|---|
createCollection | Creates a collection using the Postman Collection v2.1.0 schema format. |
createCollectionRequest | Creates a request in a collection. For a complete list of properties, refer to the Request entry in the Postman Collection Format documentation. |
createCollectionResponse | 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. |
createEnvironment | Creates an environment. |
createMock | Creates a mock server in a collection. |
createSpec | Creates an API specification in Postman's Spec Hub. Specifications can be single or multi-file. |
createSpecFile | Creates a file for an OpenAPI or a protobuf 2 or 3 specification. |
createWorkspace | Creates a new workspace. |
duplicateCollection | Creates a duplicate of the given collection in another workspace. |
generateCollection | Creates a collection from the given API specification. |
generateSpecFromCollection | 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. |
getAllSpecs | Gets all API specifications in a workspace. |
getAuthenticatedUser | Gets information about the authenticated user. |
getCollection | Get Collection (map by default) |
getCollections | The workspace ID query is required for this endpoint. If not provided, the LLM should ask the user to provide it. |
getDuplicateCollectionTaskStatus | Gets the status of a collection duplication task. |
getEnabledTools | Get Enabled Tools |
getEnvironment | Gets information about an environment. |
getEnvironments | Gets information about all of your environments. |
getGeneratedCollectionSpecs | Gets the API specification generated for the given collection. |
getMock | Gets information about a mock server. |
getMocks | Gets all active mock servers. By default, returns only mock servers you created across all workspaces. |
getSpec | Gets information about an API specification. |
getSpecCollections | Gets all of an API specification's generated collections. |
getSpecDefinition | Gets the complete contents of an OpenAPI or AsyncAPI specification's definition. |
getSpecFile | Gets the contents of an API specification's file. |
getSpecFiles | Gets all the files in an API specification. |
getTaggedEntities | Requires an Enterprise plan. Tagging is only available on Postman Enterprise plans. This tool returns a 404 error on Free, Basic, and Professional accounts. |
getWorkspace | Gets information about a workspace. |
getWorkspaces | Gets all workspaces you have access to. |
publishMock | Publishes a mock server. Publishing a mock server sets its Access Control configuration setting to public. |
putCollection | 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. |
putEnvironment | Replaces all the contents of an environment with the given information. |
runCollection | Run Postman Collection |
searchPostmanElements | Search for Postman entities (requests, collections, workspaces, specs, flows, environments, mocks). |
syncCollectionWithSpec | Syncs a collection generated from an API specification. This is an asynchronous endpoint that returns an HTTP `202 Accepted` response. |
syncSpecWithCollection | Syncs an API specification linked to a collection. This is an asynchronous endpoint that returns an HTTP `202 Accepted` response. |
updateCollectionRequest | Updates a request in a collection. For a complete list of properties, refer to the Request entry in the Postman Collection Format documentation. |
updateMock | Updates a mock server. |
updateSpecFile | Updates a file for an OpenAPI or protobuf 2 or 3 specification. |
updateSpecProperties | Updates an API specification's properties, such as its name. |
updateWorkspace | Updates a workspace's property, such as its name or visibility. |
createCollectionCreates 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.
| Parameters | Type | Description |
|---|---|---|
workspace | string | The workspace's ID. |
collection | objectoptional |
createCollectionRequestCreates 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.
| Parameters | Type | Description |
|---|---|---|
collectionId | string | The collection's ID. |
auth | stringoptional | The request's authentication information. |
data | stringoptional | The request body's form data. |
dataMode | stringoptional | The request body's data mode. |
dataOptions | stringoptional | Additional configurations and options set for the request body's various data modes. |
description | stringoptional | The request's description. |
events | stringoptional | A list of scripts configured to run when specific events occur. |
folderId | stringoptional | The folder ID in which to create the request. By default, the system will create the request at the collection level. |
graphqlModeData | stringoptional | The request body's GraphQL mode data. |
headerData | arrayoptional | The request's headers. |
method | stringoptional | The request's HTTP method. |
name | stringoptional | The 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. |
queryParams | arrayoptional | The request's query parameters. |
rawModeData | stringoptional | The request body's raw mode data. |
url | stringoptional | The request's URL. |
createCollectionResponseCreates 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.
| Parameters | Type | Description |
|---|---|---|
collectionId | string | The collection's ID. |
request | string | The parent request's ID. |
cookies | stringoptional | The response's cookie data. |
dataMode | stringoptional | The associated request body's data mode. |
dataOptions | stringoptional | Additional configurations and options set for the request body's various data modes. |
description | stringoptional | The response's description. |
headers | arrayoptional | A list of headers. |
language | stringoptional | The response body's language type. |
method | stringoptional | The request's HTTP method. |
mime | stringoptional | The response's MIME type. |
name | stringoptional | The 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. |
rawDataType | stringoptional | The response's raw data type. |
rawModeData | stringoptional | The associated request body's raw mode data. |
requestObject | stringoptional | A JSON-stringified representation of the associated request. |
responseCode | objectoptional | The response's HTTP response code information. |
status | stringoptional | The response's HTTP status text. |
text | stringoptional | The raw text of the response body. |
time | stringoptional | The time taken by the request to complete, in milliseconds. |
url | stringoptional | The associated request's URL. |
createEnvironmentCreates an environment.
Note:
workspace|string|The workspace's ID.
environment|objectoptional|Information about the environment.createMockCreates a mock server in a collection.
workspace|string|The workspace's ID.
mock|objectoptional|createSpecCreates an API specification in Postman's Spec Hub. Specifications can be single or multi-file.
Note:
files|array|A list of the specification's files and their contents.
name|string|The specification's name.
type|string|The type of API specification.
workspaceId|string|The workspace's ID.createSpecFileCreates a file for an OpenAPI or a protobuf 2 or 3 specification.
Note:
content|string|The file's stringified contents.
path|string|The file's path. Accepts JSON or YAML files.
specId|string|The spec's ID.createWorkspaceCreates a new workspace.
Note:
workspace|objectoptional|Information about the workspace.duplicateCollectionCreates 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.
| Parameters | Type | Description |
|---|---|---|
collectionId | string | The collection's unique ID. |
workspace | string | The workspace ID in which to duplicate the collection. |
suffix | stringoptional | An optional suffix to append to the duplicated collection's name. |
generateCollectionCreates 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.
| Parameters | Type | Description |
|---|---|---|
elementType | string | The collection element type. |
name | string | The generated collection's name. |
options | object | The advanced creation options and their values. For more details, see Postman's OpenAPI to Postman Collection Converter OPTIONS documentation. These properties are case-sensitive. |
specId | string | The spec's ID. |
generateSpecFromCollectionGenerates an OpenAPI 2.0, 3.0, or 3.1 specification for the given collection. The response contains a polling link to the task status.
| Parameters | Type | Description |
|---|---|---|
collectionUid | string | The collection's unique ID. |
elementType | string | The spec value. |
format | string | The format of the API specification. |
name | string | The API specification's name. |
type | string | The specification's type. |
getAllSpecsGets all API specifications in a workspace.
| Parameters | Type | Description |
|---|---|---|
workspaceId | string | The workspace's ID. |
cursor | stringoptional | The pointer to the first record of the set of paginated results. To view the next response, use the nextCursor value for this parameter. |
limit | integeroptional | The maximum number of rows to return in the response. |
This tool is read-only. It does not modify its environment.
getAuthenticatedUserGets information about the authenticated user.
getCollectionGet 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:
collectionId|string|The collection ID must be in the form <OWNER_ID>- (e.g. 12345-33823532ab9e41c9b6fd12d0fd459b8b).
access_key|stringoptional|A collection's read-only access key. Using this query parameter does not require an API key to call the endpoint.
model|stringoptional|Optional 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.This tool is read-only. It does not modify its environment.
getCollectionsThe workspace ID query is required for this endpoint. If not provided, the LLM should ask the user to provide it.
| Parameters | Type | Description |
|---|---|---|
workspace | string | The workspace's ID. |
limit | integeroptional | The maximum number of rows to return in the response. |
name | stringoptional | Filter results by collections whose name exactly matches the given value. Partial or substring matches are not supported. |
offset | integeroptional | The zero-based offset of the first item to return. |
This tool is read-only. It does not modify its environment.
getDuplicateCollectionTaskStatusGets the status of a collection duplication task.
| Parameters | Type | Description |
|---|---|---|
taskId | string | The task's unique ID. |
This tool is read-only. It does not modify its environment.
getEnabledToolsIMPORTANT: 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.
getEnvironmentGets information about an environment.
| Parameters | Type | Description |
|---|---|---|
environmentId | string | The environment's ID. |
This tool is read-only. It does not modify its environment.
getEnvironmentsGets information about all of your environments.
| Parameters | Type | Description |
|---|---|---|
workspace | stringoptional | The workspace's ID. |
This tool is read-only. It does not modify its environment.
getGeneratedCollectionSpecsGets the API specification generated for the given collection.
| Parameters | Type | Description |
|---|---|---|
collectionUid | string | The collection's unique ID. |
elementType | string | The spec value. |
This tool is read-only. It does not modify its environment.
getMockGets information about a mock server.
mockId|string|The mock's ID.This tool is read-only. It does not modify its environment.
getMocksGets all active mock servers. By default, returns only mock servers you created across all workspaces.
teamId|stringoptional|Return only results that belong to the given team ID./me (me.teamId).workspace|stringoptional|Return only results found in the given workspace ID.
This tool is read-only. It does not modify its environment.
getSpecGets information about an API specification.
| Parameters | Type | Description |
|---|---|---|
specId | string | The spec's ID. |
This tool is read-only. It does not modify its environment.
getSpecCollectionsGets all of an API specification's generated collections.
| Parameters | Type | Description |
|---|---|---|
elementType | string | The collection element type. |
specId | string | The spec's ID. |
cursor | stringoptional | The pointer to the first record of the set of paginated results. To view the next response, use the nextCursor value for this parameter. |
limit | integeroptional | The maximum number of rows to return in the response. |
This tool is read-only. It does not modify its environment.
getSpecDefinitionGets the complete contents of an OpenAPI or AsyncAPI specification's definition.
| Parameters | Type | Description |
|---|---|---|
specId | string | The spec's ID. |
This tool is read-only. It does not modify its environment.
getSpecFileGets the contents of an API specification's file.
| Parameters | Type | Description |
|---|---|---|
filePath | string | The path to the file. |
specId | string | The spec's ID. |
This tool is read-only. It does not modify its environment.
getSpecFilesGets all the files in an API specification.
| Parameters | Type | Description |
|---|---|---|
specId | string | The spec's ID. |
This tool is read-only. It does not modify its environment.
getTaggedEntitiesRequires 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.
| Parameters | Type | Description |
|---|---|---|
slug | string | The tag's ID within a team or individual (non-team) user scope. |
cursor | stringoptional | The 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. |
direction | stringoptional | The ascending (asc) or descending (desc) order to sort the results by, based on the time of the entity's tagging. |
entityType | stringoptional | Filter results for the given entity type. |
limit | integeroptional | The maximum number of tagged elements to return in a single call. |
This tool is read-only. It does not modify its environment.
getWorkspaceGets information about a workspace.
Note:
This endpoint's response contains the `visibility` field. Visibility determines who can access the workspace:
workspaceId|string|The workspace's ID.
include|stringoptional|Include 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.This tool is read-only. It does not modify its environment.
getWorkspacesGets all workspaces you have access to.
createdBy|integeroptional|Return only workspaces created by the specified Postman user ID.createdBy to the current user’s ID from GET /me (me.user.id)./me, then retry with createdBy.cursor|stringoptional|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.
elementId|stringoptional|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.
elementType|stringoptional|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.
include|stringoptional|Include 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.limit|integeroptional|The maximum number of workspaces to return per page. Defaults to 100.
type|stringoptional|The type of workspace to filter the response by. One of: personal, team, private, public, partner.
createdBy. If type is not specified, it will search across all types for that user.This tool is read-only. It does not modify its environment.
publishMockPublishes a mock server. Publishing a mock server sets its Access Control configuration setting to public.
| Parameters | Type | Description |
|---|---|---|
mockId | string | The mock's ID. |
putCollectionReplaces 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:
collectionId|string|The collection ID must be in the form <OWNER_ID>- (e.g. 12345-33823532ab9e41c9b6fd12d0fd459b8b).
Prefer|stringoptional|The respond-async header to perform the update asynchronously.
collection|objectoptional|putEnvironmentReplaces all the contents of an environment with the given information.
Note:
environmentId|string|The environment's ID.
environment|objectoptional|Information about the environment.runCollectionRuns 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.
| Parameters | Type | Description |
|---|---|---|
collectionId | string | The collection ID in the format <OWNER_ID>- (e.g. 12345-33823532ab9e41c9b6fd12d0fd459b8b). |
abortOnError | booleanoptional | Abruptly halt on errors (default: false) |
abortOnFailure | booleanoptional | Abruptly halt on test failures (default: false) |
environmentId | stringoptional | Optional environment ID to use for variable substitution during the run. |
iterationCount | numberoptional | Number of iterations to run (default: 1) |
requestTimeout | numberoptional | Request timeout in milliseconds (default: 60000) |
scriptTimeout | numberoptional | Script timeout in milliseconds (default: 5000) |
stopOnError | booleanoptional | Gracefully halt on errors (default: false) |
stopOnFailure | booleanoptional | Gracefully halt on test failures (default: false) |
searchPostmanElementsSearch for Postman entities (requests, collections, workspaces, specs, flows, environments, and mocks).
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.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. |
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. |
type | $eq, $ne, $in, $nin | Requests only. |
Filter examples:
{"$and":[{"privateNetwork":{"$eq":true}}]}{"$and":[{"workspaceId":{"$eq":"ws-abc123"}}]}{"$and":[{"workspaceId":{"$in":["ws-1","ws-2"]}}]}{"$and":[{"visibility":{"$eq":"public"}}]}{"$and":[{"method":{"$eq":"GET"}}]}{"$and":[{"visibility":{"$eq":"public"}},{"workspaceId":{"$eq":"ws-abc123"}}]}{"$and":[{"workspaceId":{"$eq":"ws-abc123"}}]}
Parameters|Type|Description
-|-|-
cursor|stringoptional|The cursor to get the next set of results in the paginated response. Pass the nextCursor value from the previous response.
entityType|stringoptional|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).
filters|objectoptional|Structured filter expression. Top-level key must be "$and" with an array of condition objects. Each condition: { "": { "": } }. Example: {"$and":[{"privateNetwork":{"$eq":true}}]}
limit|integeroptional|The maximum number of search results to return. Maximum: 25.
ownership|stringoptional|The 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.
q|stringoptional|The search query (e.g. "payment API", "notification service", "Stripe").This tool is read-only. It does not modify its environment.
syncCollectionWithSpecSyncs a collection generated from an API specification. This is an asynchronous endpoint that returns an HTTP `202 Accepted` response.
Note:
collectionUid|string|The collection's unique ID.
specId|string|The spec's ID.syncSpecWithCollectionSyncs an API specification linked to a collection. This is an asynchronous endpoint that returns an HTTP `202 Accepted` response.
Note:
collectionUid|string|The collection's unique ID.
specId|string|The spec's ID.updateCollectionRequestUpdates a request in a collection. For a complete list of properties, refer to the Request entry in the Postman Collection Format documentation.
Note:
collectionId|string|The collection's ID.
requestId|string|The request's ID.
auth|stringoptional|The request's authentication information.
data|stringoptional|The request body's form data.
dataMode|stringoptional|The request body's data mode.
dataOptions|stringoptional|Additional configurations and options set for the request body's various data modes.
description|stringoptional|The request's description.
events|stringoptional|A list of scripts configured to run when specific events occur.
graphqlModeData|stringoptional|The request body's GraphQL mode data.
headerData|arrayoptional|The request's headers.
method|stringoptional|The request's HTTP method.
name|stringoptional|The request's name.
queryParams|arrayoptional|The request's query parameters.
rawModeData|stringoptional|The request body's raw mode data.
url|stringoptional|The request's URL.updateMockUpdates a mock server.
mockId|string|The mock's ID.
mock|objectoptional|updateSpecFileUpdates a file for an OpenAPI or protobuf 2 or 3 specification.
Note:
filePath|string|The path to the file.
specId|string|The spec's ID.
content|stringoptional|The specification's stringified contents.
name|stringoptional|The file's name.
type|stringoptional|The 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.updateSpecPropertiesUpdates an API specification's properties, such as its name.
| Parameters | Type | Description |
|---|---|---|
name | string | The spec's name. |
specId | string | The spec's ID. |
updateWorkspaceUpdates a workspace's property, such as its name or visibility.
Note:
workspaceId|string|The workspace's ID.
workspace|objectoptional|{
"mcpServers": {
"postman": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"POSTMAN_API_KEY",
"mcp/postman"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}