@postman/postman-mcp-server 2.6.1 → 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.
- package/README.md +204 -80
- package/dist/package.json +2 -1
- package/dist/src/enabledResources.js +3 -0
- package/dist/src/index.js +11 -0
- package/dist/src/tools/createCollection.js +1 -1
- package/dist/src/tools/createCollectionComment.js +1 -1
- package/dist/src/tools/createCollectionFolder.js +1 -1
- package/dist/src/tools/createCollectionRequest.js +1 -1
- package/dist/src/tools/createCollectionResponse.js +1 -1
- package/dist/src/tools/createEnvironment.js +1 -1
- package/dist/src/tools/createFolderComment.js +1 -1
- package/dist/src/tools/createMock.js +1 -1
- package/dist/src/tools/createMonitor.js +1 -1
- package/dist/src/tools/createRequestComment.js +1 -1
- package/dist/src/tools/createResponseComment.js +1 -1
- package/dist/src/tools/createSpec.js +1 -1
- package/dist/src/tools/createSpecFile.js +1 -1
- package/dist/src/tools/createWorkspace.js +1 -1
- package/dist/src/tools/deleteApiCollectionComment.js +1 -1
- package/dist/src/tools/deleteCollectionComment.js +1 -1
- package/dist/src/tools/deleteFolderComment.js +1 -1
- package/dist/src/tools/deleteMock.js +1 -1
- package/dist/src/tools/deletePanElementOrFolder.js +1 -1
- package/dist/src/tools/deleteRequestComment.js +1 -1
- package/dist/src/tools/deleteResponseComment.js +1 -1
- package/dist/src/tools/deleteWorkspace.js +1 -1
- package/dist/src/tools/duplicateCollection.js +1 -1
- package/dist/src/tools/generateCollection.js +1 -1
- package/dist/src/tools/getAllElementsAndFolders.js +1 -1
- package/dist/src/tools/getAuthenticatedUser.js +1 -1
- package/dist/src/tools/getCodeGenerationInstructions.js +6 -6
- package/dist/src/tools/getMock.js +1 -1
- package/dist/src/tools/getMocks.js +1 -1
- package/dist/src/tools/getSourceCollectionStatus.js +1 -1
- package/dist/src/tools/getTaggedEntities.js +1 -1
- package/dist/src/tools/getWorkspace.js +1 -1
- package/dist/src/tools/getWorkspaces.js +1 -1
- package/dist/src/tools/mergeCollectionFork.js +1 -1
- package/dist/src/tools/patchCollection.js +1 -1
- package/dist/src/tools/patchEnvironment.js +1 -1
- package/dist/src/tools/postPanElementOrFolder.js +1 -1
- package/dist/src/tools/publishDocumentation.js +1 -1
- package/dist/src/tools/pullCollectionChanges.js +1 -1
- package/dist/src/tools/putCollection.js +1 -1
- package/dist/src/tools/putEnvironment.js +1 -1
- package/dist/src/tools/resolveCommentThread.js +1 -1
- package/dist/src/tools/runMonitor.js +1 -1
- package/dist/src/tools/searchPostmanElements.js +38 -6
- package/dist/src/tools/syncCollectionWithSpec.js +1 -1
- package/dist/src/tools/syncSpecWithCollection.js +1 -1
- package/dist/src/tools/updateApiCollectionComment.js +1 -1
- package/dist/src/tools/updateCollectionComment.js +1 -1
- package/dist/src/tools/updateCollectionFolder.js +1 -1
- package/dist/src/tools/updateCollectionRequest.js +1 -1
- package/dist/src/tools/updateCollectionResponse.js +1 -1
- package/dist/src/tools/updateFolderComment.js +1 -1
- package/dist/src/tools/updateMock.js +1 -1
- package/dist/src/tools/updatePanElementOrFolder.js +1 -1
- package/dist/src/tools/updateRequestComment.js +1 -1
- package/dist/src/tools/updateResponseComment.js +1 -1
- package/dist/src/tools/updateSpecFile.js +1 -1
- package/dist/src/tools/updateWorkspace.js +1 -1
- package/dist/src/tools/utils/templateRenderer.js +23 -0
- package/dist/src/views/getCollections.njk +12 -0
- package/dist/src/views/getWorkspaces.njk +6 -0
- 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
|
-
|
|
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.
|
|
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:**
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
219
|
+
codex mcp add postman --remote-url https://mcp.postman.com/mcp
|
|
137
220
|
```
|
|
138
221
|
|
|
139
|
-
|
|
222
|
+
**API key**
|
|
140
223
|
|
|
141
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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:**
|
|
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
|
|
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) ...
|
|
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**
|
|
353
|
-
* **Full**
|
|
354
|
-
* **Code**
|
|
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
|
-
"
|
|
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": "
|
|
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
|
-
"
|
|
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
|
|
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.
|
|
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)
|
|
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
|
|
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)
|
|
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)
|
|
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)
|
|
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
|
|
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
|
|
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,
|