PostHog MCP Server
OFFICIAL SERVERPostHog's hosted MCP endpoint for analytics queries, feature flags, experiments, errors and more
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
Opens the app, which asks before it adds the server.
claude mcp add --transport http postman https://mcp.postman.com/minimal{
"mcpServers": {
"postman": {
"url": "https://mcp.postman.com/minimal"
}
}
}{
"servers": {
"postman": {
"type": "http",
"url": "https://mcp.postman.com/minimal"
}
}
}codex mcp add postman --url https://mcp.postman.com/minimalOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs POSTMAN_API_KEY. Replace each <NAME> with your value.
claude mcp add postman -e POSTMAN_API_KEY=<POSTMAN_API_KEY> -- npx -y @postman/postman-mcp-server{
"mcpServers": {
"postman": {
"command": "npx",
"args": [
"-y",
"@postman/postman-mcp-server"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}{
"mcpServers": {
"postman": {
"command": "npx",
"args": [
"-y",
"@postman/postman-mcp-server"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}{
"servers": {
"postman": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@postman/postman-mcp-server"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}[mcp_servers.postman]
command = "npx"
args = ["-y", "@postman/postman-mcp-server"]
[mcp_servers.postman.env]
POSTMAN_API_KEY = "<POSTMAN_API_KEY>"gemini mcp add --scope user -e POSTMAN_API_KEY=<POSTMAN_API_KEY> postman npx -- -y @postman/postman-mcp-serverOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs POSTMAN_API_KEY. Replace each <NAME> with your value.
claude mcp add postman -e POSTMAN_API_KEY=<POSTMAN_API_KEY> -- docker run -i --rm -e POSTMAN_API_KEY mcp/postman{
"mcpServers": {
"postman": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"POSTMAN_API_KEY",
"mcp/postman"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}{
"mcpServers": {
"postman": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"POSTMAN_API_KEY",
"mcp/postman"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}{
"servers": {
"postman": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"POSTMAN_API_KEY",
"mcp/postman"
],
"env": {
"POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
}
}
}
}[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 mcp add --scope user -e POSTMAN_API_KEY=<POSTMAN_API_KEY> postman docker -- run -i --rm -e POSTMAN_API_KEY mcp/postmanPOSTMAN_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. |
In a container, a setting goes in with -e NAME=value after docker run.
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.
| To run it yourself | Node.js 20+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| Postman | Free 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.
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.
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.
27 only read, 29 change things, 4 can delete or overwrite. A ? marks an optional parameter.
createCollection changesgetCollectiongetCollectionsputCollection deletesduplicateCollection changesgetDuplicateCollectionTaskStatusgenerateCollection changescreateCollectionRequest changesupdateCollectionRequest changescreateCollectionResponse changesrunCollection changescollectionId: stringenvironmentId?: stringstopOnError?: booleanstopOnFailure?: booleanabortOnError?: booleanabortOnFailure?: booleaniterationCount?: numberrequestTimeout?: numberscriptTimeout?: numbercreateEnvironment changesgetEnvironmentgetEnvironmentsputEnvironment deletescreateWorkspace changesgetWorkspacegetWorkspacesupdateWorkspace changescreateSpec changesgetAllSpecsgetSpecgetSpecDefinitioncreateSpecFile changesgetSpecFilegetSpecFilesupdateSpecFile changesupdateSpecProperties changesgetSpecCollectionsgenerateSpecFromCollection changesgetGeneratedCollectionSpecssyncCollectionWithSpec changessyncSpecWithCollection changescreateMock changesgetMockgetMocksupdateMock changespublishMock changesgetTaggedEntitiesgetAuthenticatedUsergetEnabledToolssearchPostmanElementsgetCodeGenerationInstructionsgetInstalledApiMaintenanceInstructionsgetCollectionContextgetRequestCodeContextgetWorkspaceContextsearchLearningCentersubmitContextGraphAsk changesgetContextGraphAskdeleteCollection deletescreateCollectionFork changesmergeCollectionFork changesforkEnvironment changesupdateCollectionRoles changescreateRuleset changescreateCustomFunction changescreateSpecVersionTag changesrunMonitor changesremoveTeamMembers deletespostman://instructions