@postman/postman-mcp-server 2.6.0 → 2.7.0

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.
Files changed (66) hide show
  1. package/README.md +204 -80
  2. package/dist/package.json +2 -1
  3. package/dist/src/enabledResources.js +3 -0
  4. package/dist/src/index.js +11 -0
  5. package/dist/src/tools/createCollection.js +1 -1
  6. package/dist/src/tools/createCollectionComment.js +1 -1
  7. package/dist/src/tools/createCollectionFolder.js +1 -1
  8. package/dist/src/tools/createCollectionRequest.js +1 -1
  9. package/dist/src/tools/createCollectionResponse.js +1 -1
  10. package/dist/src/tools/createEnvironment.js +1 -1
  11. package/dist/src/tools/createFolderComment.js +1 -1
  12. package/dist/src/tools/createMock.js +1 -1
  13. package/dist/src/tools/createMonitor.js +1 -1
  14. package/dist/src/tools/createRequestComment.js +1 -1
  15. package/dist/src/tools/createResponseComment.js +1 -1
  16. package/dist/src/tools/createSpec.js +1 -1
  17. package/dist/src/tools/createSpecFile.js +1 -1
  18. package/dist/src/tools/createWorkspace.js +1 -1
  19. package/dist/src/tools/deleteApiCollectionComment.js +1 -1
  20. package/dist/src/tools/deleteCollectionComment.js +1 -1
  21. package/dist/src/tools/deleteFolderComment.js +1 -1
  22. package/dist/src/tools/deleteMock.js +1 -1
  23. package/dist/src/tools/deletePanElementOrFolder.js +1 -1
  24. package/dist/src/tools/deleteRequestComment.js +1 -1
  25. package/dist/src/tools/deleteResponseComment.js +1 -1
  26. package/dist/src/tools/deleteWorkspace.js +1 -1
  27. package/dist/src/tools/duplicateCollection.js +1 -1
  28. package/dist/src/tools/generateCollection.js +1 -1
  29. package/dist/src/tools/getAllElementsAndFolders.js +1 -1
  30. package/dist/src/tools/getAuthenticatedUser.js +1 -1
  31. package/dist/src/tools/getCodeGenerationInstructions.js +6 -6
  32. package/dist/src/tools/getMock.js +1 -1
  33. package/dist/src/tools/getMocks.js +1 -1
  34. package/dist/src/tools/getSourceCollectionStatus.js +1 -1
  35. package/dist/src/tools/getTaggedEntities.js +1 -1
  36. package/dist/src/tools/getWorkspace.js +1 -1
  37. package/dist/src/tools/getWorkspaces.js +1 -1
  38. package/dist/src/tools/mergeCollectionFork.js +1 -1
  39. package/dist/src/tools/patchCollection.js +1 -1
  40. package/dist/src/tools/patchEnvironment.js +1 -1
  41. package/dist/src/tools/postPanElementOrFolder.js +1 -1
  42. package/dist/src/tools/publishDocumentation.js +1 -1
  43. package/dist/src/tools/pullCollectionChanges.js +1 -1
  44. package/dist/src/tools/putCollection.js +1 -1
  45. package/dist/src/tools/putEnvironment.js +1 -1
  46. package/dist/src/tools/resolveCommentThread.js +1 -1
  47. package/dist/src/tools/runMonitor.js +1 -1
  48. package/dist/src/tools/searchPostmanElements.js +38 -6
  49. package/dist/src/tools/syncCollectionWithSpec.js +1 -1
  50. package/dist/src/tools/syncSpecWithCollection.js +1 -1
  51. package/dist/src/tools/updateApiCollectionComment.js +1 -1
  52. package/dist/src/tools/updateCollectionComment.js +1 -1
  53. package/dist/src/tools/updateCollectionFolder.js +1 -1
  54. package/dist/src/tools/updateCollectionRequest.js +1 -1
  55. package/dist/src/tools/updateCollectionResponse.js +1 -1
  56. package/dist/src/tools/updateFolderComment.js +1 -1
  57. package/dist/src/tools/updateMock.js +1 -1
  58. package/dist/src/tools/updatePanElementOrFolder.js +1 -1
  59. package/dist/src/tools/updateRequestComment.js +1 -1
  60. package/dist/src/tools/updateResponseComment.js +1 -1
  61. package/dist/src/tools/updateSpecFile.js +1 -1
  62. package/dist/src/tools/updateWorkspace.js +1 -1
  63. package/dist/src/tools/utils/templateRenderer.js +23 -0
  64. package/dist/src/views/getCollections.njk +12 -0
  65. package/dist/src/views/getWorkspaces.njk +6 -0
  66. package/package.json +2 -1
package/README.md CHANGED
@@ -12,24 +12,28 @@ For a complete list of the Postman MCP Server's tools, see the [Postman MCP Serv
12
12
 
13
13
  Postman also offers servers as an [npm package](https://www.npmjs.com/package/@postman/postman-mcp-server).
14
14
 
15
- **Note:** Before getting started, ensure that you have a valid [Postman API key](https://postman.postman.co/settings/me/api-keys).
15
+ ### Authentication
16
+
17
+ 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](https://modelcontextprotocol.io/specification/draft/basic/authorization) and requires no manual API key configuration. The EU remote server and the [local server](#local-server) (this repo/npm package) support only [Postman API key](https://postman.postman.co/settings/me/api-keys) authentication.
16
18
 
17
19
  ### Use Cases
18
20
 
19
- * **API Testing** - Continuously test your API using your Postman collection.
21
+ * **API Testing** - Continuously test your API using your Postman collection. To be able to test local APIs, use the [local server](#local-server), as the remote server won't have network access to your workstation.
20
22
  * **Code synchronization** - Effortlessly keep your code in sync with your [Postman Collections](https://learning.postman.com/docs/design-apis/collections/overview/) and specs.
21
23
  * **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.
22
24
  * **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.
23
25
  * **Automatic spec creation** - Create [specs](https://learning.postman.com/docs/design-apis/specifications/overview/) from your code and use them to generate collections.
24
- * **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.
26
+ * **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.
25
27
 
26
28
  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.
27
29
 
28
30
  ### Support for EU
29
31
 
30
32
  The Postman MCP Server supports the EU region for remote and local servers:
33
+
31
34
  * For streamable HTTP, the remote server is available at `https://mcp.eu.postman.com`.
32
35
  * For our STDIO public package, use the `--region` flag to specify the Postman API region (`us` or `eu`), or set the `POSTMAN_API_BASE_URL` environment variable directly.
36
+ * OAuth isn't supported for the EU Postman MCP Server. The EU remote server only supports API key authentication.
33
37
 
34
38
  ---
35
39
 
@@ -48,6 +52,7 @@ The Postman MCP Server supports the EU region for remote and local servers:
48
52
  * [**Cursor**](#install-in-cursor-1)
49
53
  * [**Claude**](#claude-integration)
50
54
  * [**Claude Code**](#install-in-claude-code-1)
55
+ * [**Codex**](#install-in-codex-1)
51
56
  * [**Windsurf**](#install-in-windsurf-1)
52
57
  * [**Antigravity**](#install-in-antigravity-1)
53
58
  * [**GitHub Copilot CLI**](#install-in-github-copilot-cli-1)
@@ -60,7 +65,24 @@ The Postman MCP Server supports the EU region for remote and local servers:
60
65
 
61
66
  ## Remote server
62
67
 
63
- The remote Postman MCP Server is hosted by Postman over streamable HTTP and provides the easiest method for getting started. If your MCP host doesn't support remote MCP servers, you can use the [local Postman MCP Server](#local-server).
68
+ The remote Postman MCP Server is hosted by Postman over streamable HTTP and provides the easiest method for getting started.
69
+
70
+ The remote server (`https://mcp.postman.com`) supports OAuth for the best developer experience and fastest setup, and no API key needed. OAuth also provides stronger security and fine-grained access control compared to a static API key. OAuth is MCP specification–compliant, including Dynamic Client Registration (DCR), OAuth metadata, and PKCE.
71
+
72
+ **Note:** The EU remote server (`https://mcp.eu.postman.com`) only supports API key authentication.
73
+
74
+ MCP hosts that support OAuth can discover and use it automatically for all tools. The remote server also accepts a [Postman API key](https://postman.postman.co/settings/me/api-keys) (Bearer token in the Authorization header).
75
+
76
+ **Why use the remote server?**
77
+
78
+ Consider using the remote Postman MCP server if:
79
+
80
+ * You want to get started quickly and easily.
81
+ * You are working with public APIs.
82
+ * Your MCP host doesn't support local MCP servers.
83
+
84
+
85
+ **Supported configurations**
64
86
 
65
87
  The remote server supports the following tool configurations:
66
88
 
@@ -74,7 +96,7 @@ The remote server supports the following tool configurations:
74
96
 
75
97
  To install the remote Postman MCP Server in Cursor, click the install button.
76
98
 
77
- **Note:** Ensure that the Authorization header uses the `Bearer <YOUR_API_KEY>` format.
99
+ **Note:** If your MCP host supports OAuth, use the `https://mcp.postman.com` server URL with no headers for the fastest setup. Otherwise, ensure the Authorization header uses the `Bearer <YOUR_API_KEY>` format. OAuth is not available on the EU server.
78
100
 
79
101
  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`.
80
102
 
@@ -90,25 +112,46 @@ By default, the server uses **Minimal** mode. To access **Full** mode, change th
90
112
 
91
113
  You can use the Postman MCP Server with MCP-compatible extensions in VS Code, such as GitHub Copilot, Claude for VS Code, or other AI assistants that support MCP. To do so, add the following JSON block to the `.vscode/mcp.json` configuration file:
92
114
 
115
+ **OAuth**
116
+
117
+ Add the following JSON block to use the recommended OAuth installation method:
118
+
93
119
  ```json
94
120
  {
95
- "servers": {
96
- "postman-api-http-server": {
97
- "type": "http",
98
- "url": "https://mcp.postman.com/{minimal OR code OR mcp}",
99
- // For the EU server, use the "https://mcp.eu.postman.com" URL.
100
- "headers": {
101
- "Authorization": "Bearer ${input:postman-api-key}"
102
- }
103
- }
104
- },
105
- "inputs": [
106
- {
107
- "id": "postman-api-key",
108
- "type": "promptString",
109
- "description": "Enter your Postman API key"
110
- }
111
- ]
121
+ "servers": {
122
+ "postman": {
123
+ "type": "http",
124
+ "url": "https://mcp.postman.com/{minimal OR code OR mcp}"
125
+ }
126
+ }
127
+ }
128
+ ```
129
+
130
+ When prompted, enter your Postman API key.
131
+
132
+ **API key**
133
+
134
+ Use the following JSON block to use the API key installation method:
135
+
136
+ ```json
137
+ {
138
+ "servers": {
139
+ "postman": {
140
+ "type": "http",
141
+ "url": "https://mcp.postman.com/{minimal OR code OR mcp}",
142
+ // For the EU server, use "https://mcp.eu.postman.com/{minimal OR code OR mcp}"
143
+ "headers": {
144
+ "Authorization": "Bearer ${input:postman-api-key}"
145
+ }
146
+ }
147
+ },
148
+ "inputs": [
149
+ {
150
+ "id": "postman-api-key",
151
+ "type": "promptString",
152
+ "description": "Enter your Postman API key"
153
+ }
154
+ ]
112
155
  }
113
156
  ```
114
157
 
@@ -116,29 +159,69 @@ When prompted, enter your Postman API key.
116
159
 
117
160
  ### Install in Claude Code
118
161
 
119
- To install the MCP server in Claude Code, run the following command in your terminal:
162
+ To install the MCP server in Claude Code, run the following command in your terminal. On the US server, Claude Code uses OAuth automatically for the best installation experience. To use an API key (required for the EU server), add the `--header` flag.
120
163
 
121
- For **Minimal** mode:
164
+ **OAuth**
165
+
166
+ Use the recommended OAuth installation method for US servers:
167
+
168
+ ```bash
169
+ claude mcp add --transport http postman https://mcp.postman.com/minimal
170
+ ```
171
+
172
+ ```bash
173
+ claude mcp add --transport http postman https://mcp.postman.com/code
174
+ ```
175
+
176
+ ```bash
177
+ claude mcp add --transport http postman https://mcp.postman.com/mcp
178
+ ```
179
+
180
+ **API key**
181
+
182
+ Use the API key installation method if required and for EU servers:
122
183
 
123
184
  ```bash
124
185
  claude mcp add --transport http postman https://mcp.postman.com/minimal --header "Authorization: Bearer <POSTMAN_API_KEY>"
125
186
  ```
126
187
 
188
+ ```bash
189
+ claude mcp add --transport http postman https://mcp.postman.com/code --header "Authorization: Bearer <POSTMAN_API_KEY>"
190
+ ```
191
+
192
+ ```bash
193
+ claude mcp add --transport http postman https://mcp.postman.com/mcp --header "Authorization: Bearer <POSTMAN_API_KEY>"
194
+ ```
195
+
196
+ ### Install in Codex
197
+
198
+ To install the remote server in Codex, use one of the following methods, depending on your authentication and region.
199
+
200
+ **OAuth**
201
+
202
+ Use the recommended OAuth installation method with the US server for the best installation experience. This requires no manual API key setup.
203
+
204
+ For **Minimal** mode:
205
+
206
+ ```bash
207
+ codex mcp add postman --remote-url https://mcp.postman.com/minimal
208
+ ```
209
+
127
210
  For **Code** mode:
128
211
 
129
212
  ```bash
130
- claude mcp add --transport http postman https://mcp.postman.com/code --header "Authorization: Bearer <POSTMAN_API_KEY>"
213
+ codex mcp add postman --remote-url https://mcp.postman.com/code
131
214
  ```
132
215
 
133
216
  For **Full** mode:
134
217
 
135
218
  ```bash
136
- claude mcp add --transport http postman https://mcp.postman.com/mcp --header "Authorization: Bearer <POSTMAN_API_KEY>"
219
+ codex mcp add postman --remote-url https://mcp.postman.com/mcp
137
220
  ```
138
221
 
139
- ### Install in Codex
222
+ **API key**
140
223
 
141
- To install the MCP server in Codex, run the following command in your terminal:
224
+ If you're using the EU server, a [local server](#install-in-codex-1), or prefer API key authentication, use the API key method. Set the `POSTMAN_API_KEY` environment variable and invoke the MCP server using `npx`.
142
225
 
143
226
  For **Minimal** mode:
144
227
 
@@ -160,43 +243,36 @@ codex mcp add postman --env POSTMAN_API_KEY=<POSTMAN_API_KEY> -- npx @postman/po
160
243
 
161
244
  ### Install in Windsurf
162
245
 
163
- To install the MCP server in Windsurf, copy the following JSON config into the `.codeium/windsurf/mcp_config.json` file:
246
+ To install the MCP server in Windsurf, copy the following JSON config into the `.codeium/windsurf/mcp_config.json` file.
247
+
248
+ This configuration uses the remote server (`https://mcp.postman.com`), which authenticates with OAuth automatically.
164
249
 
165
250
  ```json
166
251
  {
167
252
  "mcpServers": {
168
- "postman-api": {
253
+ "postman-full": {
169
254
  "args": [
170
255
  "mcp-remote",
171
- "https://mcp.postman.com/mcp",
172
- "--header",
173
- "Authorization: Bearer XXX"
256
+ "https://mcp.postman.com/mcp"
174
257
  ],
175
- "command": "npx",
176
258
  "disabled": false,
177
259
  "disabledTools": [],
178
260
  "env": {}
179
261
  },
180
- "postman-api-code": {
262
+ "postman-code": {
181
263
  "args": [
182
264
  "mcp-remote",
183
- "https://mcp.postman.com/code",
184
- "--header",
185
- "Authorization: Bearer XXX"
265
+ "https://mcp.postman.com/code"
186
266
  ],
187
- "command": "npx",
188
267
  "disabled": false,
189
268
  "disabledTools": [],
190
269
  "env": {}
191
270
  },
192
- "postman-api-minimal": {
271
+ "postman-minimal": {
193
272
  "args": [
194
273
  "mcp-remote",
195
- "https://mcp.postman.com/minimal",
196
- "--header",
197
- "Authorization: Bearer XXX"
274
+ "https://mcp.postman.com/minimal"
198
275
  ],
199
- "command": "npx",
200
276
  "disabled": false,
201
277
  "disabledTools": [],
202
278
  "env": {}
@@ -207,43 +283,36 @@ To install the MCP server in Windsurf, copy the following JSON config into the `
207
283
 
208
284
  ### Install in Antigravity
209
285
 
210
- To install the MCP server in Antigravity, click **Manage MCP servers > View raw config**. Then, copy the following JSON config into the `.codeium/windsurf/mcp_config.json` file:
286
+ To install the MCP server in Antigravity, click **Manage MCP servers > View raw config**. Then, copy the following JSON config into the `.codeium/windsurf/mcp_config.json` file.
287
+
288
+ This configuration uses the remote server (`https://mcp.postman.com`), which authenticates automatically with OAuth.
211
289
 
212
290
  ```json
213
291
  {
214
292
  "mcpServers": {
215
- "postman-api": {
293
+ "postman-full": {
216
294
  "args": [
217
295
  "mcp-remote",
218
- "https://mcp.postman.com/mcp",
219
- "--header",
220
- "Authorization: Bearer XXX"
296
+ "https://mcp.postman.com/mcp"
221
297
  ],
222
- "command": "npx",
223
298
  "disabled": false,
224
299
  "disabledTools": [],
225
300
  "env": {}
226
301
  },
227
- "postman-api-code": {
302
+ "postman-code": {
228
303
  "args": [
229
304
  "mcp-remote",
230
- "https://mcp.postman.com/code",
231
- "--header",
232
- "Authorization: Bearer XXX"
305
+ "https://mcp.postman.com/code"
233
306
  ],
234
- "command": "npx",
235
307
  "disabled": false,
236
308
  "disabledTools": [],
237
309
  "env": {}
238
310
  },
239
- "postman-api-minimal": {
311
+ "postman-minimal": {
240
312
  "args": [
241
313
  "mcp-remote",
242
- "https://mcp.postman.com/minimal",
243
- "--header",
244
- "Authorization: Bearer XXX"
314
+ "https://mcp.postman.com/minimal"
245
315
  ],
246
- "command": "npx",
247
316
  "disabled": false,
248
317
  "disabledTools": [],
249
318
  "env": {}
@@ -254,25 +323,49 @@ To install the MCP server in Antigravity, click **Manage MCP servers > View raw
254
323
 
255
324
  ### Install in GitHub Copilot CLI
256
325
 
326
+ You can add the MCP server to your Copilot CLI either with OAuth (recommended) or an API key.
327
+
257
328
  Use the Copilot CLI to interactively add the MCP server:
258
329
 
259
330
  ```bash
260
331
  /mcp add
261
332
  ```
262
333
 
263
- Alternatively, create or edit the configuration file `~/.copilot/mcp-config.json` and add:
334
+ Or, add the following to your `~/.copilot/mcp-config.json` config file:
264
335
 
265
336
  ```json
266
337
  {
267
338
  "mcpServers": {
268
- "postman-api-http-server": {
339
+ "postman": {
269
340
  "type": "http",
270
- "url": "https://mcp.postman.com/minimal",
341
+ "url": "https://mcp.postman.com/minimal" // Use "https://mcp.postman.com/mcp" for Full mode, or "https://mcp.postman.com/code"` for Code mode.
342
+ }
343
+ }
344
+ }
345
+ ```
346
+
347
+ **API key**
348
+
349
+ Use the following method to install on EU servers or if API key is required:
350
+
351
+ ```json
352
+ {
353
+ "mcpServers": {
354
+ "postman": {
355
+ "type": "http",
356
+ "url": "https://mcp.eu.postman.com/minimal",
271
357
  "headers": {
272
- "Authorization": "Bearer YOUR_API_KEY"
358
+ "Authorization": "Bearer ${input:postman-api-key}"
273
359
  }
274
360
  }
275
- }
361
+ },
362
+ "inputs": [
363
+ {
364
+ "id": "postman-api-key",
365
+ "type": "promptString",
366
+ "description": "Enter your Postman API key"
367
+ }
368
+ ]
276
369
  }
277
370
  ```
278
371
 
@@ -284,11 +377,18 @@ For more information, see the [Copilot CLI documentation](https://docs.github.co
284
377
 
285
378
  ## Local server
286
379
 
287
- If remote MCP servers aren't supported by your MCP host, you can install the Postman MCP Server to your local machine.
380
+ The local server uses STDIO transport and is hosted locally on an environment of your choice.
381
+
382
+ **Why use the local server?**
383
+
384
+ Consider using the local Postman MCP server if:
288
385
 
289
- STDIO is a lightweight solution that's ideal for integration with editors and tools like Visual Studio Code. Install an MCP-compatible VS Code extension, such as GitHub Copilot, Claude for VS Code, or other AI assistants that support MCP.
386
+ * You are working with internal APIs.
387
+ * You want to power local use cases, such as local API testing.
388
+ * You have specific security and network requirements.
389
+ * You prefer to build the MCP server from the source code in this repo.
290
390
 
291
- **Note:** To run the server as a Node application, install [Node.js](https://nodejs.org/en).
391
+ **Supported configurations**
292
392
 
293
393
  The local server supports the following tool configurations:
294
394
 
@@ -296,7 +396,9 @@ The local server supports the following tool configurations:
296
396
  * **Code** — Includes tools for searching public and internal API definitions and generating client code
297
397
  * **Full** — Includes all available Postman API tools (100+ tools). Use the `--full` flag to enable this configuration.
298
398
 
299
- **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.
399
+ **Note:**
400
+ * 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.
401
+ * The local server only supports API key authentication (with a Postman API key or Bearer token). To run the server as a Node application, install [Node.js](https://nodejs.org/en).
300
402
 
301
403
  ### Install in Visual Studio Code
302
404
 
@@ -313,13 +415,13 @@ You can manually integrate your MCP server with Cursor or VS Code to use it with
313
415
  ```json
314
416
  {
315
417
  "servers": {
316
- "postman-api-mcp": {
418
+ "postman": {
317
419
  "type": "stdio",
318
420
  "command": "npx",
319
421
  "args": [
320
422
  "@postman/postman-mcp-server",
321
423
  "--full", // (optional) Use this flag to enable full mode...
322
- "--code", // (optional) ...OR this flag to enable code mode.
424
+ "--code", // (optional) ...or this flag to enable code mode.
323
425
  "--region us" // (optional) Use this flag to specify the Postman API region (us or eu). Defaults to us.
324
426
  ],
325
427
  "env": {
@@ -349,9 +451,9 @@ By default, the server uses **Full** mode. To access **Minimal** mode, remove th
349
451
 
350
452
  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.
351
453
 
352
- * **Minimal** - `postman-mcp-server-minimal.mcpb`
353
- * **Full** - `postman-mcp-server-full.mcpb`
354
- * **Code** - `postman-mcp-server-code.mcpb`
454
+ * **Minimal** `postman-mcp-server-minimal.mcpb`
455
+ * **Full** `postman-mcp-server-full.mcpb`
456
+ * **Code** `postman-mcp-server-code.mcpb`
355
457
 
356
458
  For more information, see the [Claude Desktop Extensions](https://www.anthropic.com/engineering/desktop-extensions) documentation.
357
459
 
@@ -362,7 +464,7 @@ To install the MCP server in Claude Code, run the following command in your term
362
464
  For **Minimal** mode:
363
465
 
364
466
  ```bash
365
- claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mcp-server@latest
467
+ claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mcp-server@latest
366
468
  ```
367
469
 
368
470
  For **Code** mode:
@@ -374,7 +476,29 @@ claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mc
374
476
  For **Full** mode:
375
477
 
376
478
  ```bash
377
- claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mcp-server@latest --full
479
+ claude mcp add postman --env POSTMAN_API_KEY=YOUR_KEY -- npx @postman/postman-mcp-server@latest --full
480
+ ```
481
+
482
+ ### Install in Codex
483
+
484
+ To install the local server, use the API key installation method. Set the `POSTMAN_API_KEY` environment variable and invoke the MCP server using `npx`.
485
+
486
+ For **Minimal** mode:
487
+
488
+ ```bash
489
+ codex mcp add postman --env POSTMAN_API_KEY=<POSTMAN_API_KEY> -- npx @postman/postman-mcp-server --minimal
490
+ ```
491
+
492
+ For **Code** mode:
493
+
494
+ ```bash
495
+ codex mcp add postman --env POSTMAN_API_KEY=<POSTMAN_API_KEY> -- npx @postman/postman-mcp-server --code
496
+ ```
497
+
498
+ For **Full** mode:
499
+
500
+ ```bash
501
+ codex mcp add postman --env POSTMAN_API_KEY=<POSTMAN_API_KEY> -- npx @postman/postman-mcp-server --full
378
502
  ```
379
503
 
380
504
  ### Install in Windsurf
@@ -395,7 +519,7 @@ Copy the following JSON config into the `.codeium/windsurf/mcp_config.json` file
395
519
  ```json
396
520
  {
397
521
  "mcpServers": {
398
- "postman_mcp_server_stdio": {
522
+ "postman": {
399
523
  "args": [
400
524
  "@postman/postman-mcp-server"
401
525
  ],
@@ -403,7 +527,7 @@ Copy the following JSON config into the `.codeium/windsurf/mcp_config.json` file
403
527
  "disabled": false,
404
528
  "disabledTools": [],
405
529
  "env": {
406
- "POSTMAN_API_KEY": "XXXX"
530
+ "POSTMAN_API_KEY": "<POSTMAN_API_KEY>"
407
531
  }
408
532
  }
409
533
  }
@@ -417,7 +541,7 @@ To install the MCP server in Antigravity, click **Manage MCP servers > View raw
417
541
  ```json
418
542
  {
419
543
  "mcpServers": {
420
- "postman_mcp_server_stdio": {
544
+ "postman": {
421
545
  "args": [
422
546
  "@postman/postman-mcp-server"
423
547
  ],
@@ -445,7 +569,7 @@ Alternatively, create or edit the configuration file `~/.copilot/mcp-config.json
445
569
  ```json
446
570
  {
447
571
  "mcpServers": {
448
- "postman-api-mcp": {
572
+ "postman": {
449
573
  "command": "npx",
450
574
  "args": ["@postman/postman-mcp-server"],
451
575
  "env": {
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postman/postman-mcp-server",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
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",
@@ -30,6 +30,7 @@
30
30
  "@modelcontextprotocol/sdk": "^1.25.2",
31
31
  "dotenv": "^17.2.3",
32
32
  "newman": "^6.2.0",
33
+ "nunjucks": "^3.2.4",
33
34
  "uuid": "^13.0.0",
34
35
  "zod": "^3.25.76"
35
36
  },
@@ -176,6 +176,7 @@ const excludedFromGeneration = [
176
176
  'getCodeGenerationInstructions',
177
177
  'getCollectionMap',
178
178
  'getCollection',
179
+ 'searchPostmanElements',
179
180
  ];
180
181
  const subtools = {
181
182
  getCollection: {
@@ -183,10 +184,12 @@ const subtools = {
183
184
  subtools: ['getCollection', 'getCollectionMap'],
184
185
  },
185
186
  };
187
+ const templated = ['getCollections', 'getWorkspaces'];
186
188
  export const enabledResources = {
187
189
  full,
188
190
  minimal,
189
191
  code,
190
192
  excludedFromGeneration,
191
193
  subtools,
194
+ templated,
192
195
  };
package/dist/src/index.js CHANGED
@@ -10,6 +10,7 @@ import { enabledResources } from './enabledResources.js';
10
10
  import { PostmanAPIClient } from './clients/postman.js';
11
11
  import { SERVER_NAME, APP_VERSION } from './constants.js';
12
12
  import { env } from './env.js';
13
+ import { createTemplateRenderer } from './tools/utils/templateRenderer.js';
13
14
  const SUPPORTED_REGIONS = {
14
15
  us: 'https://api.postman.com',
15
16
  eu: 'https://api.eu.postman.com',
@@ -143,6 +144,10 @@ async function run() {
143
144
  serverType: useCode ? 'code' : useFull ? 'full' : 'minimal',
144
145
  availableTools: tools.map((t) => t.method),
145
146
  };
147
+ const __filename = fileURLToPath(import.meta.url);
148
+ const __dirname = dirname(__filename);
149
+ const viewsDir = join(__dirname, './views');
150
+ const renderTemplate = createTemplateRenderer(viewsDir);
146
151
  const client = new PostmanAPIClient(apiKey, undefined, serverContext);
147
152
  log('info', 'Registering tools with McpServer');
148
153
  for (const tool of tools) {
@@ -168,6 +173,12 @@ async function run() {
168
173
  toolName,
169
174
  durationMs,
170
175
  });
176
+ if (result.content?.[0]?.type === 'text') {
177
+ const rendered = renderTemplate(toolName, result.content[0].text);
178
+ if (rendered) {
179
+ return { content: [{ type: 'text', text: rendered }] };
180
+ }
181
+ }
171
182
  return result;
172
183
  }
173
184
  catch (error) {
@@ -778,7 +778,7 @@ export const parameters = z.object({
778
778
  .optional(),
779
779
  });
780
780
  export const annotations = {
781
- title: 'Creates a collection using the [Postman Collection v2.1.0 schema format](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).\n\n**Note:**\n\nIf you do not include the \\`workspace\\` query parameter, the system creates the collection in the oldest personal Internal workspace you own.\n',
781
+ title: 'Creates a collection using the [Postman Collection v2.1.0 schema format](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).',
782
782
  readOnlyHint: false,
783
783
  destructiveHint: false,
784
784
  idempotentHint: false,
@@ -25,7 +25,7 @@ export const parameters = z.object({
25
25
  .optional(),
26
26
  });
27
27
  export const annotations = {
28
- title: 'Creates a comment on a collection. To create a reply on an existing comment, include the \\`threadId\\` property in the request body.\n\n**Note:**\n\nThis endpoint accepts a max of 10,000 characters.\n',
28
+ title: 'Creates a comment on a collection. To create a reply on an existing comment, include the \\`threadId\\` property in the request body.',
29
29
  readOnlyHint: false,
30
30
  destructiveHint: false,
31
31
  idempotentHint: false,
@@ -12,7 +12,7 @@ export const parameters = z.object({
12
12
  folder: z.string().describe('The ID of a folder in which to create the folder.').optional(),
13
13
  });
14
14
  export const annotations = {
15
- title: 'Creates a folder in a collection. For a complete list of properties, refer to the **Folder** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).\n\nYou can use this endpoint to to import requests and responses into a newly-created folder. To do this, include the \\`requests\\` field and the list of request objects in the request body. For more information, see the provided example.\n\n**Note:**\n\nIt 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 folder with a blank name.\n',
15
+ title: 'Creates a folder in a collection. For a complete list of properties, refer to the **Folder** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).',
16
16
  readOnlyHint: false,
17
17
  destructiveHint: false,
18
18
  idempotentHint: false,
@@ -182,7 +182,7 @@ export const parameters = z.object({
182
182
  .optional(),
183
183
  });
184
184
  export const annotations = {
185
- title: 'Creates a request in a collection. For a complete list of properties, refer to the **Request** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).\n\n**Note:**\n\nIt 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.\n',
185
+ title: 'Creates a request in a collection. For a complete list of properties, refer to the **Request** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).',
186
186
  readOnlyHint: false,
187
187
  destructiveHint: false,
188
188
  idempotentHint: false,
@@ -12,7 +12,7 @@ export const parameters = z.object({
12
12
  .optional(),
13
13
  });
14
14
  export const annotations = {
15
- title: '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](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).\n\n**Note:**\n\nIt 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.\n',
15
+ title: '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](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).',
16
16
  readOnlyHint: false,
17
17
  destructiveHint: false,
18
18
  idempotentHint: false,
@@ -28,7 +28,7 @@ export const parameters = z.object({
28
28
  .optional(),
29
29
  });
30
30
  export const annotations = {
31
- title: 'Creates an environment.\n\n**Note:**\n\n- The request body size cannot exceed the maximum allowed size of 30MB.\n- If you receive an HTTP \\`411 Length Required\\` error response, manually pass the \\`Content-Length\\` header and its value in the request header.\n- If you do not include the \\`workspace\\` query parameter, the system creates the environment in the oldest personal Internal workspace you own.\n',
31
+ title: 'Creates an environment.',
32
32
  readOnlyHint: false,
33
33
  destructiveHint: false,
34
34
  idempotentHint: false,
@@ -26,7 +26,7 @@ export const parameters = z.object({
26
26
  .optional(),
27
27
  });
28
28
  export const annotations = {
29
- title: 'Creates a comment on a folder. To create a reply on an existing comment, include the \\`threadId\\` property in the request body.\n\n**Note:**\n\nThis endpoint accepts a max of 10,000 characters.\n',
29
+ title: 'Creates a comment on a folder. To create a reply on an existing comment, include the \\`threadId\\` property in the request body.',
30
30
  readOnlyHint: false,
31
31
  destructiveHint: false,
32
32
  idempotentHint: false,