Postman MCP Server

Postman's own server for reading and editing workspaces, collections, specs and environments

Official · Postman Inc. TypeScript Remote (hosted) · Streamable HTTPLocal · stdio Developer toolsTesting

76 popularity score ★ 326 ↓ 12k/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude Codeterminal
claude mcp add --transport http postman https://mcp.postman.com/minimal
Cursor.cursor/mcp.json
{
    "mcpServers": {
        "postman": {
            "url": "https://mcp.postman.com/minimal"
        }
    }
}
VS Code.vscode/mcp.json
{
    "servers": {
        "postman": {
            "type": "http",
            "url": "https://mcp.postman.com/minimal"
        }
    }
}
Codexterminal
codex mcp add postman --url https://mcp.postman.com/minimal
Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs POSTMAN_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add postman -e POSTMAN_API_KEY=<POSTMAN_API_KEY> -- npx -y @postman/postman-mcp-server
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "postman": {
      "command": "npx",
      "args": [
        "-y",
        "@postman/postman-mcp-server"
      ],
      "env": {
        "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "postman": {
      "command": "npx",
      "args": [
        "-y",
        "@postman/postman-mcp-server"
      ],
      "env": {
        "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "postman": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@postman/postman-mcp-server"
      ],
      "env": {
        "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.postman]
command = "npx"
args = ["-y", "@postman/postman-mcp-server"]

[mcp_servers.postman.env]
POSTMAN_API_KEY = "<POSTMAN_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e POSTMAN_API_KEY=<POSTMAN_API_KEY> postman npx -- -y @postman/postman-mcp-server
Local (Docker)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs POSTMAN_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add postman -e POSTMAN_API_KEY=<POSTMAN_API_KEY> -- docker run -i --rm -e POSTMAN_API_KEY mcp/postman
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "postman": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "POSTMAN_API_KEY",
        "mcp/postman"
      ],
      "env": {
        "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "postman": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "POSTMAN_API_KEY",
        "mcp/postman"
      ],
      "env": {
        "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "postman": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "POSTMAN_API_KEY",
        "mcp/postman"
      ],
      "env": {
        "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.postman]
command = "docker"
args = ["run", "-i", "--rm", "-e", "POSTMAN_API_KEY", "mcp/postman"]

[mcp_servers.postman.env]
POSTMAN_API_KEY = "<POSTMAN_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e POSTMAN_API_KEY=<POSTMAN_API_KEY> postman docker -- run -i --rm -e POSTMAN_API_KEY mcp/postman

Settings 3

POSTMAN_API_KEY secret Required: Postman API key; the local server exits without it.
POSTMAN_API_BASE_URL Optional: Postman API base address; --region eu sets it to the EU API, or set it directly.
POSTMAN_MCP_TELEMETRY Optional: Set to true to share usage data with Postman; any other value keeps it off. Default false.

In a container, a setting goes in with -e NAME=value after docker run.

What it does

Postman MCP Server connects an assistant to a Postman account through the Postman API. It can list and edit workspaces, collections, requests, environments, mock servers and API specifications, keep a spec and a collection in step, run a collection and report its test results, and in Code mode hand over condensed views of an API so the assistant can write client code against it.

It comes in two forms: a hosted server run by Postman over streamable HTTP, and an npm package that runs on your machine over stdio (also published as a Docker image). Both offer the same tool sets, picked by URL path on the hosted server or by a flag locally: Minimal (the default), Code (--code), Full (--full), Learn (--learn, a search of Postman's documentation) and Context Graph (--context-graph). The EU region is reached with --region eu or the EU hosted address. Note that the hosted /mcp path is Full mode, while /minimal gives the small set.

The README calls Full "100+ tools", which undersells it. Counting src/enabledResources.ts gives 42 tools in Minimal and 23 in Code, and Full has 234. That covers environment forks, collection roles, API governance rulesets, groups and custom functions, spec version tags, and fork merge and pull. All modes together name 243 distinct tools. Only a sample of the Full set is listed below.

What it needs

To run it yourselfNode.js 20+
Runs onmacOS, Windows, Linux
PostmanFree tierFull-mode tools for teams, the private API network, API catalog, governance and audit logs need Postman plans that include those features

Running it yourself needs a Postman API key (from your Postman account settings) in POSTMAN_API_KEY, and Node.js for npx or Docker for the image. The hosted US server signs in with OAuth or takes the key as an Authorization: Bearer header. The hosted EU server takes the API key only.

Limits

  • Limit The local server exits at start when POSTMAN_API_KEY is unset, or when --region is given anything other than us or eu (src/index.ts)
  • Limit The local server and the EU hosted server accept an API key only, OAuth works on the US hosted server
  • Not covered On the hosted server runCollection runs from Postman's side and cannot reach APIs on your own machine or private network
  • Not covered runCollection takes no custom delays or other advanced run options yet, by its own description
  • Limit runCollection waits 60000 ms per request and 5000 ms per script by default, changed with requestTimeout and scriptTimeout
  • Limit Tool code is synced from Postman's internal source, so pull requests that change src/ are not merged

The hosted server picks its tool set by path: https://mcp.postman.com/minimal is Minimal, /code is Code and /mcp is Full, so a client pointed at /mcp gets all 234 Full tools. EU users swap in mcp.eu.postman.com and must send the key as an Authorization: Bearer header.

Who it suits

Suits people who keep their APIs in Postman and want an assistant to create or update collections, specs, environments and mocks, run collection tests, or write client code from collections. The hosted US endpoint with OAuth is the quickest start and needs no key. Pick the local npm package or Docker image when collections must call APIs on your own machine, or when you are in the EU region. Start with Minimal and move to Full only when you need forks, pull requests, monitors, governance or team administration, since Full gives the assistant 234 tools, many of which change or delete shared team data. Not for people who do not use Postman.

Tools 60 of 243

27 only read, 29 change things, 4 can delete or overwrite. A ? marks an optional parameter.

createCollection changes
Create a new collection in a workspace
getCollection
Fetch one collection, in full or as a compact map
getCollections
List the collections in a workspace
putCollection deletes
Replace a collection's whole contents
duplicateCollection changes
Start a copy of a collection
getDuplicateCollectionTaskStatus
Check whether a collection copy has finished
generateCollection changes
Build a collection from an API spec
createCollectionRequest changes
Add a request to a collection
updateCollectionRequest changes
Change an existing request in a collection
createCollectionResponse changes
Save an example response on a request
runCollection changes
Run a collection's requests and tests and report the resultscollectionId: stringenvironmentId?: stringstopOnError?: booleanstopOnFailure?: booleanabortOnError?: booleanabortOnFailure?: booleaniterationCount?: numberrequestTimeout?: numberscriptTimeout?: number
createEnvironment changes
Create an environment with its variables
getEnvironment
Read one environment and its variables
getEnvironments
List environments
putEnvironment deletes
Replace an environment's whole contents
createWorkspace changes
Create a workspace
getWorkspace
Read one workspace's details
getWorkspaces
List the workspaces the key can see
updateWorkspace changes
Rename or change a workspace
createSpec changes
Create an API specification
getAllSpecs
List specifications in a workspace
getSpec
Read one specification's details
getSpecDefinition
Fetch a specification's full definition
createSpecFile changes
Add a file to a specification
getSpecFile
Read one file of a specification
getSpecFiles
List the files of a specification
updateSpecFile changes
Change a file of a specification
updateSpecProperties changes
Change a specification's name or settings
getSpecCollections
List collections generated from a specification
generateSpecFromCollection changes
Build a specification from a collection
getGeneratedCollectionSpecs
List specifications generated from a collection
syncCollectionWithSpec changes
Update a collection to match its specification
syncSpecWithCollection changes
Update a specification to match its collection
createMock changes
Create a mock server for a collection
getMock
Read one mock server's details
getMocks
List mock servers
updateMock changes
Change a mock server's settings
publishMock changes
Make a mock server public
getTaggedEntities
Find elements carrying a given tag
getAuthenticatedUser
Show the account the API key belongs to
getEnabledTools
List the tools the current configuration exposes
searchPostmanElements
Search collections, requests and other Postman elements
getCodeGenerationInstructions
Code mode: guidance for writing client code from an API
getInstalledApiMaintenanceInstructions
Code mode: guidance for keeping generated client code current
getCollectionContext
Code mode: a collection as a condensed markdown view
getRequestCodeContext
Code mode: a request's details shaped for code generation
getWorkspaceContext
Code mode: a workspace as a condensed markdown view
searchLearningCenter
Learn mode: search Postman's documentation site
submitContextGraphAsk changes
Context Graph mode: send a question to Postman's Context Graph
getContextGraphAsk
Context Graph mode: fetch the answer to a question sent earlier
deleteCollection deletes
Full mode: delete a collection
createCollectionFork changes
Full mode: fork a collection
mergeCollectionFork changes
Full mode: merge a collection fork back into its parent
forkEnvironment changes
Full mode: fork an environment
updateCollectionRoles changes
Full mode: change who holds which role on a collection
createRuleset changes
Full mode: add an API governance ruleset
createCustomFunction changes
Full mode: add a custom function for governance rules
createSpecVersionTag changes
Full mode: tag a version of a specification
runMonitor changes
Full mode: trigger a monitor run
removeTeamMembers deletes
Full mode: remove members from a team

Resources 1

postman://instructions
Usage notes the server asks the client to read before answering API questions

Similar servers