@postman/postman-mcp-server 2.4.9 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,6 +6,7 @@ Postman supports the following tool configurations:
6
6
 
7
7
  * **Minimal** — (Default) Only includes essential tools for basic Postman operations This offers faster performance and simplifies use for those who only need basic Postman operations. Ideal for users who want to modify a single Postman elements, such as collections, workspaces, or environments.
8
8
  * **Full** — Includes all available Postman API tools (100+ tools). This configuration is ideal for users who engage in advanced collaboration and Postman's Enterprise features.
9
+ * **Code** — Includes tools to generate high-quality, well-organized client code from public and internal API definitions. This configuration is ideal for users who need to consume APIs or simply get context about APIs to their agents.
9
10
 
10
11
  For a complete list of the Postman MCP Server's tools, see the [Postman MCP Server collection](https://www.postman.com/postman/postman-public-workspace/collection/681dc649440b35935978b8b7). This collection offers both the remote [full](https://www.postman.com/postman/postman-public-workspace/mcp-request/6821a76b17ccb90a86df48d3) and [minimal](https://www.postman.com/postman/postman-public-workspace/mcp-request/689e1c635be722a98b723238) servers, and the [local server](https://www.postman.com/postman/postman-public-workspace/mcp-request/6866a655b36c67cc435b5033).
11
12
 
@@ -19,8 +20,9 @@ Postman also offers servers as an [npm package](https://www.npmjs.com/package/@p
19
20
  * **Collection management** - Create and [tag](https://learning.postman.com/docs/collections/use-collections/collaborate-with-collections/#tag-a-collection) collections, update collection and request [documentation](https://learning.postman.com/docs/publishing-your-api/api-documentation-overview/), add [comments](https://learning.postman.com/docs/collaborating-in-postman/comments/), or perform actions across multiple collections without leaving your editor.
20
21
  * **Workspace and environment management** - Create [workspaces](https://learning.postman.com/docs/collaborating-in-postman/using-workspaces/overview/) and [environments](https://learning.postman.com/docs/sending-requests/variables/managing-environments/), plus manage your environment variables.
21
22
  * **Automatic spec creation** - Create [specs](https://learning.postman.com/docs/design-apis/specifications/overview/) from your code and use them to generate collections.
23
+ * **Client code generation** - Generate production-ready client code that consumes APIs following best practices and project conventions. The `code` toolset produces code that precisely matches your API definitions, organizes it into an intuitive tree structure mirroring your Postman collections and requests, and leverages example responses to create accurate response types and error handling.
22
24
 
23
- Designed for developers who want to integrate their AI tools with Postmans context and features. Supports quick natural language queries queries to advanced agent workflows.
25
+ Designed for developers who want to integrate their AI tools with Postman's context and features. Supports quick natural language queries to advanced agent workflows.
24
26
 
25
27
  ### Support for EU
26
28
 
@@ -55,6 +57,7 @@ The remote Postman MCP Server is hosted by Postman over streamable HTTP and prov
55
57
  The remote server supports the following tool configurations:
56
58
 
57
59
  * **Minimal** — (Default) Only includes essential tools for basic Postman operations, available at `https://mcp.postman.com/minimal` and `https://mcp.eu.postman.com/minimal` for EU users.
60
+ * **Code** — Includes tools for searching public and internal API definitions and generating client code, available at `https://mcp.postman.com/code` and `https://mcp.eu.postman.com/code` for EU users.
58
61
  * **Full** — Includes all available Postman API tools (100+ tools), available at `https://mcp.postman.com/mcp` and `https://mcp.eu.postman.com/mcp` for EU users.
59
62
 
60
63
  ### Install in Cursor
@@ -65,7 +68,7 @@ To install the remote Postman MCP Server in Cursor, click the install button.
65
68
 
66
69
  **Note:** Ensure that the Authorization header uses the `Bearer <YOUR_API_KEY>` format.
67
70
 
68
- By default, the server uses **Minimal** mode. To access **Full** mode, change the `url` value to `https://mcp.postman.com/mcp` in the `mcp.json` file.
71
+ By default, the server uses **Minimal** mode. To access **Full** mode, change the `url` value to `https://mcp.postman.com/mcp` in the `mcp.json` file. To access **Code** mode, change the value to `https://mcp.postman.com/code`.
69
72
 
70
73
  ### Install in Visual Studio Code
71
74
 
@@ -73,7 +76,7 @@ By default, the server uses **Minimal** mode. To access **Full** mode, change th
73
76
 
74
77
  To install the remote Postman MCP Server in VS Code, click the install button or use the [Postman VS Code Extension](https://marketplace.visualstudio.com/items?itemName=Postman.postman-for-vscode).
75
78
 
76
- By default, the server uses **Minimal** mode. To access **Full** mode, change the `url` value to `https://mcp.postman.com/mcp` in the `mcp.json` file.
79
+ By default, the server uses **Minimal** mode. To access **Full** mode, change the `url` value to `https://mcp.postman.com/mcp` in the `mcp.json` file. To access **Code** mode, change the value to `https://mcp.postman.com/code`.
77
80
 
78
81
  #### Manual configuration
79
82
 
@@ -84,8 +87,7 @@ You can use the Postman MCP Server with MCP-compatible extensions in VS Code, su
84
87
  "servers": {
85
88
  "postman-api-http-server": {
86
89
  "type": "http",
87
- "url": "https://mcp.postman.com/{minimal OR mcp}",
88
- // Use "https://mcp.postman.com/mcp" for full or "https://mcp.postman.com/minimal" for minimal mode.
90
+ "url": "https://mcp.postman.com/{minimal OR code OR mcp}",
89
91
  // For the EU server, use the "https://mcp.eu.postman.com" URL.
90
92
  "headers": {
91
93
  "Authorization": "Bearer ${input:postman-api-key}"
@@ -114,6 +116,12 @@ For **Minimal** mode:
114
116
  claude mcp add --transport http postman https://mcp.postman.com/minimal --header "Authorization: Bearer <POSTMAN_API_KEY>"
115
117
  ```
116
118
 
119
+ For **Code** mode:
120
+
121
+ ```bash
122
+ claude mcp add --transport http postman https://mcp.postman.com/code --header "Authorization: Bearer <POSTMAN_API_KEY>"
123
+ ```
124
+
117
125
  For **Full** mode:
118
126
 
119
127
  ```bash
@@ -133,6 +141,7 @@ STDIO is a lightweight solution that's ideal for integration with editors and to
133
141
  The local server supports the following tool configurations:
134
142
 
135
143
  * **Minimal** — (Default) Only includes essential tools for basic Postman operations.
144
+ * **Code** — Includes tools for searching public and internal API definitions and generating client code
136
145
  * **Full** — Includes all available Postman API tools (100+ tools). Use the `--full` flag to enable this configuration.
137
146
 
138
147
  **Note:** Use the `--region` flag to specify the Postman API region (`us` or `eu`), or set the `POSTMAN_API_BASE_URL` environment variable directly. By default, the server uses the `us` option.
@@ -144,7 +153,7 @@ The local server supports the following tool configurations:
144
153
 
145
154
  To install the local Postman MCP Server in VS Code, click the install button.
146
155
 
147
- By default, the server uses **Full** mode. To access **Minimal** mode, remove the `--full` flag from the `mcp.json` configuration file.
156
+ By default, the server uses **Full** mode. To access **Minimal** mode, remove the `--full` flag from the `mcp.json` configuration file. To access **Code** mode, replace the `--full` flag with `--code`.
148
157
 
149
158
  #### Manual configuration
150
159
 
@@ -158,7 +167,8 @@ You can manually integrate your MCP server with Cursor or VS Code to use it with
158
167
  "command": "npx",
159
168
  "args": [
160
169
  "@postman/postman-mcp-server",
161
- "--full" // (optional) Use this flag to enable full mode.
170
+ "--full", // (optional) Use this flag to enable full mode...
171
+ "--code", // (optional) ...OR this flag to enable code mode.
162
172
  "--region us" // (optional) Use this flag to specify the Postman API region (us or eu). Defaults to us.
163
173
  ],
164
174
  "env": {
@@ -182,14 +192,15 @@ You can manually integrate your MCP server with Cursor or VS Code to use it with
182
192
 
183
193
  To install the local Postman MCP Server in Cursor, click the install button.
184
194
 
185
- By default, the server uses **Full** mode. To access **Minimal** mode, remove the `--full` flag from the `mcp.json` configuration file.
195
+ By default, the server uses **Full** mode. To access **Minimal** mode, remove the `--full` flag from the `mcp.json` configuration file. To access **Code** mode, replace the `--full` flag with `--code`.
186
196
 
187
197
  ### Claude integration
188
198
 
189
199
  To integrate the MCP server with Claude, check the latest [Postman MCP Server release](https://github.com/postmanlabs/postman-mcp-server/releases) and get the `.mcpb` file.
190
200
 
191
- * **Minimal** - `postman-api-mcp-minimal.mcpb`
192
- * **Full** - `postman-api-mcp-full.mcpb`
201
+ * **Minimal** - `postman-mcp-server-minimal.mcpb`
202
+ * **Full** - `postman-mcp-server-full.mcpb`
203
+ * **Code** - `postman-mcp-server-code.mcpb`
193
204
 
194
205
  For more information, see the [Claude Desktop Extensions](https://www.anthropic.com/engineering/desktop-extensions) documentation.
195
206
 
@@ -203,6 +214,12 @@ For **Minimal** mode:
203
214
  claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mcp-server@latest
204
215
  ```
205
216
 
217
+ For **Code** mode:
218
+
219
+ ```bash
220
+ claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mcp-server@latest --code
221
+ ```
222
+
206
223
  For **Full** mode:
207
224
 
208
225
  ```bash
@@ -239,7 +256,6 @@ If you're migrating from Postman MCP Server version 1.x to 2.x, be aware of the
239
256
 
240
257
  ## Questions and support
241
258
 
242
- * See the [Postman Agent Generator](https://postman.com/explore/agent-generator) page for updates and new capabilities.
243
259
  * See [Add your MCP requests to your collections](https://learning.postman.com/docs/postman-ai-agent-builder/mcp-requests/overview/) to learn how to use Postman to perform MCP requests.
244
260
  * Visit the [Postman Community](https://community.postman.com/) to share what you've built, ask questions, and get help.
245
261
  * You can connect to both the remote and local servers and test them using the [Postman MCP Server collection](https://www.postman.com/postman/postman-public-workspace/collection/681dc649440b35935978b8b7).
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postman/postman-mcp-server",
3
- "version": "2.4.9",
3
+ "version": "2.5.1",
4
4
  "description": "A simple MCP server to operate on the Postman API",
5
5
  "mcpName": "com.postman/postman-mcp-server",
6
6
  "main": "dist/src/index.js",
@@ -27,30 +27,21 @@
27
27
  "access": "public"
28
28
  },
29
29
  "dependencies": {
30
- "@apidevtools/swagger-parser": "^12.0.0",
31
- "@modelcontextprotocol/sdk": "^1.18.1",
32
- "dotenv": "^17.2.2",
33
- "es-toolkit": "^1.39.10",
34
- "express": "^5.1.0",
35
- "newman": "^6.2.1"
30
+ "@modelcontextprotocol/sdk": "^1.22.0",
31
+ "dotenv": "^17.2.3",
32
+ "newman": "^6.2.0",
33
+ "uuid": "^13.0.0"
36
34
  },
37
35
  "devDependencies": {
38
- "@eslint/js": "^9.35.0",
39
- "@types/express": "^5.0.3",
36
+ "@eslint/js": "^9.39.1",
40
37
  "@types/node": "^24",
41
- "eslint": "^9.35.0",
38
+ "eslint": "^9.39.1",
42
39
  "eslint-config-prettier": "^10.1.8",
43
- "eslint-plugin-prettier": "^5.5.4",
44
- "eslint-plugin-unused-imports": "^4.2.0",
45
- "fs-extra": "^11.3.2",
46
- "jest": "^30.1.3",
47
- "json-schema-to-zod": "^2.6.1",
48
- "openapi-types": "^12.1.3",
40
+ "eslint-plugin-unused-imports": "^4.3.0",
49
41
  "prettier": "^3.6.2",
50
- "tsx": "^4.20.5",
51
- "typescript": "^5.9.2",
52
- "typescript-eslint": "^8.44.0",
53
- "vitest": "^3.2.4"
42
+ "typescript": "^5.9.3",
43
+ "typescript-eslint": "^8.48.0",
44
+ "vitest": "^4.0.13"
54
45
  },
55
46
  "engines": {
56
47
  "node": ">=20.0.0"
@@ -2,3 +2,4 @@ import packageJson from '../package.json' with { type: 'json' };
2
2
  export const SERVER_NAME = packageJson.name;
3
3
  export const APP_VERSION = packageJson.version;
4
4
  export const USER_AGENT = `${packageJson.name}/${packageJson.version}`;
5
+ export const RUNNER_ACCEPT_HEADER = 'application/vnd.postman.v2+json';
@@ -35,6 +35,7 @@ const full = [
35
35
  'getCollectionResponse',
36
36
  'updateCollectionResponse',
37
37
  'transferCollectionResponses',
38
+ 'runCollection',
38
39
  'createCollectionComment',
39
40
  'deleteCollectionComment',
40
41
  'getCollectionComments',
@@ -110,7 +111,7 @@ const full = [
110
111
  'deleteApiCollectionComment',
111
112
  'deleteSpecFile',
112
113
  'getEnabledTools',
113
- 'runCollection',
114
+ 'searchPostmanElements',
114
115
  ];
115
116
  const minimal = [
116
117
  'createCollection',
@@ -154,9 +155,28 @@ const minimal = [
154
155
  'runCollection',
155
156
  'getEnabledTools',
156
157
  ];
157
- const excludedFromGeneration = ['runCollection', 'getEnabledTools'];
158
+ const code = [
159
+ 'getCodeGenerationInstructions',
160
+ 'getWorkspace',
161
+ 'getWorkspaces',
162
+ 'searchPostmanElements',
163
+ 'getCollectionRequest',
164
+ 'getCollectionResponse',
165
+ 'getCollectionFolder',
166
+ 'getAuthenticatedUser',
167
+ 'getCollectionMap',
168
+ 'getEnvironment',
169
+ 'getEnvironments',
170
+ ];
171
+ const excludedFromGeneration = [
172
+ 'runCollection',
173
+ 'getEnabledTools',
174
+ 'getCodeGenerationInstructions',
175
+ 'getCollectionMap',
176
+ ];
158
177
  export const enabledResources = {
159
178
  full,
160
179
  minimal,
180
+ code,
161
181
  excludedFromGeneration,
162
182
  };
package/dist/src/index.js CHANGED
@@ -97,6 +97,7 @@ let clientInfo = undefined;
97
97
  async function run() {
98
98
  const args = process.argv.slice(2);
99
99
  const useFull = args.includes('--full');
100
+ const useCode = args.includes('--code');
100
101
  const regionIndex = args.findIndex((arg) => arg === '--region');
101
102
  if (regionIndex !== -1 && regionIndex + 1 < args.length) {
102
103
  const region = args[regionIndex + 1];
@@ -126,7 +127,8 @@ async function run() {
126
127
  });
127
128
  const fullTools = allGeneratedTools.filter((t) => enabledResources.full.includes(t.method));
128
129
  const minimalTools = allGeneratedTools.filter((t) => enabledResources.minimal.includes(t.method));
129
- const tools = useFull ? fullTools : minimalTools;
130
+ const codeTools = allGeneratedTools.filter((t) => enabledResources.code.includes(t.method));
131
+ const tools = useCode ? codeTools : useFull ? fullTools : minimalTools;
130
132
  const server = new McpServer({ name: SERVER_NAME, version: APP_VERSION });
131
133
  server.onerror = (error) => {
132
134
  const msg = String(error?.message || error);
@@ -139,7 +141,7 @@ async function run() {
139
141
  });
140
142
  const client = new PostmanAPIClient(apiKey);
141
143
  const serverContext = {
142
- serverType: useFull ? 'full' : 'minimal',
144
+ serverType: useCode ? 'code' : useFull ? 'full' : 'minimal',
143
145
  availableTools: tools.map((t) => t.method),
144
146
  };
145
147
  log('info', 'Registering tools with McpServer');
@@ -182,7 +184,8 @@ async function run() {
182
184
  }
183
185
  };
184
186
  await server.connect(transport);
185
- logBoth(server, 'info', `Server connected and ready: ${SERVER_NAME}@${APP_VERSION} with ${tools.length} tools (${useFull ? 'full' : 'minimal'})`);
187
+ const toolsetName = useCode ? 'code' : useFull ? 'full' : 'minimal';
188
+ logBoth(server, 'info', `Server connected and ready: ${SERVER_NAME}@${APP_VERSION} with ${tools.length} tools (${toolsetName})`);
186
189
  }
187
190
  run().catch((error) => {
188
191
  log('error', 'Unhandled error during server execution', {