postman-mcp-server
The Postman MCP Server is a TypeScript-based server that integrates with the Postman API, allowing comprehensive management of Postman resources. Key capabilities include:
Workspace Management: List, retrieve, filter workspaces by type or creator, update roles and tags
Collection Management: CRUD operations, version control, manage forks, access keys, roles, and transfer items between collections
Environment Management: Create, update, delete, fork, and merge environments with variable support
API Management: CRUD operations, schema management, versioning, comments, and tags
Mock Servers: Create and manage mock servers, retrieve call logs, publish/unpublish, and customize server responses
Monitors: Schedule, run, and manage monitors for collection testing
Private API Network: Add, update, and remove elements and folders
Webhooks: Create webhooks to trigger collections with custom payloads
Authentication & Authorization: Secure access with API keys and role management
Utility Functions: Access user information, billing details, invoices, async task status, and resolve comment threads
Provides access to the Postman API, enabling comprehensive management of Postman collections, environments, APIs, and other Postman resources, with features like CRUD operations for collections, folder management, request management, environment management, API management, schema support, and authentication capabilities
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@postman-mcp-server list my Postman collections"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Postman MCP Server
Version: v0.2.0
An MCP server that provides access to the Postman API. Functionality is based on the official OpenAPI specification. For more information, see the Postman API documentation.
This project is part of the Model Context Protocol (MCP) initiative from Anthropic. For more information, visit the MCP GitHub repository and the announcement on the Anthropic blog.
Skip ahead to install instructions
This project is currently under active development. Please use with caution and expect breaking changes.
AI Generated Code. I used Cline v2.2.2 with Claude 3.5 Sonnet (2024-10-22). See docs/README.md for prompts and details about how this code was generated.
Overview
Postman MCP Server is a TypeScript-based MCP server that integrates with the Postman API, providing comprehensive management of Postman collections, environments, and APIs.
Related MCP server: Postman MCP Server
Features
Collections
CRUD Operations: Create, retrieve, update, and delete Postman collections.
Folder Management: Organize requests into folders within collections.
Request Management: Add, update, and delete requests within collections.
Response Management: Manage responses associated with requests.
Version Control: Fork, merge, and pull changes for collections.
Comments: Add and manage comments on collections.
Environments
Manage Environments: Create and retrieve environments for different setups.
CRUD Operations: Full support for creating, updating, and deleting environments.
APIs
API Management: Create, retrieve, update, and delete APIs.
Schema Support: Manage API schemas with multi-file support.
Tagging: Add and manage tags for APIs.
Comments: Add and manage comments on APIs.
Authentication & Authorization
API Key Authentication: Secure access using API keys.
Role-Based Access Control: Manage permissions at workspace and collection levels.
Workspace Permissions: Define permissions specific to workspaces.
Additional Features
Private API Network: Manage elements and folders within a private API network.
Webhooks: Create webhooks to trigger collections with custom payloads.
Enterprise Features: Advanced role controls and SCIM support for enterprise environments.
Installation
Installing via Smithery
To install Postman MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install postman-api-server --client claudePrerequisites
Node.js installed.
Steps
Clone the repository:
git clone https://github.com/delano/postman-api-server.git cd postman-api-serverInstall dependencies:
pnpm installBuild the server:
pnpm run buildRun in development mode with auto-rebuild:
pnpm run watch
Usage
Setting up API Keys
Generate your API Key
Visit Postman Account Settings
Click "Generate API Key"
Save the key securely - it won't be shown again
Configure the API Key
Add the key to your environment as
POSTMAN_API_KEYFor Claude Desktop or Cline, include it in your config file (see configuration examples below)
Never commit API keys to version control
Verify Access
The API key provides access to all Postman resources you have permissions for
Test access by running a simple query (e.g., list workspaces)
If you're using thePostman API collection directly, store your API key as a postman-api-key collection variable.
Using Claude Desktop
To use with Claude Desktop, add the server config:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
If you're updating this provider, Claude must be restarted to pick up API changes from the input schema (i.e. When the MCP server's ToolDefinition elements have changed). This is because Claude caches the tool definitions when it starts up.
Example configuration
{
"mcpServers": {
"postman": {
"command": "node",
"args": [
"/path/to/postman-api-server/build/index.js"
],
"env": {
"POSTMAN_API_KEY": "CHANGEME"
}
}
}
}Using Cline
Using the same example configuration, add the server config to your Cline MCP Servers configuration:
Example configuration
Same as Claude above.
Using Zed
I'm still trying to get this to work. From the Zed docs it looks like it needs to be an extension (also this issue #21455).
Documentation
The official Postman API documentation is available in the Postman Public Workspace.
Project Overview
Postman API References & Summaries
This project leverages the Claude model and Cline extension to convert the OpenAPI specification into TypeScript code, enhancing type safety and integration within the MCP server.
This GitHub project includes API References documentation that provides detailed guidance on utilizing the Postman platform programmatically. It covers both the Collection SDK for local development and the Postman API for cloud platform integration. Key topics include authentication mechanisms, rate limits, and in-depth documentation of all API endpoints, including workspaces, collections, environments, mock servers, monitors, and more. Additionally, the guide offers prerequisites and quick-start instructions to facilitate seamless API interactions.
The docs/api/summaries directory contains comprehensive Markdown summaries of the Postman API. These documents outline API endpoints, request/response formats, and implementation details essential for validating and ensuring the functionality of the MCP server. Refer to the API Summaries README for an overview of the documentation structure and implementation strategies.
Converting OpenAPI Spec to TypeScript Code with Claude
Building the MCP Server
Refer to the Handlers Documentation for detailed specifications on implementing MCP server handlers. This includes URI formats, prompt requirements, and resource handling patterns. This guide is crucial for developers working on integrating and enhancing the Postman API functionalities within the MCP server.
Rationale
The MCP wrapper for Postman tools makes sense primarily as an AI interaction layer for complex, multi-step operations where structure and safety are paramount. However, it may be overengineered for simple operations where direct CLI or API usage would suffice. The MCP wrapper provides most value when:
Complex Operations
Managing multiple collections
Coordinating environments
Generating comprehensive reports
AI-Driven Automation
Automated testing workflows
API documentation maintenance
Environment management
Error-Sensitive Operations
Critical API testing
Production deployments
Compliance checking
It provides less value for:
Simple Operations
Basic collection runs
Single API calls
Quick environment checks
Direct CLI Usage
Developer-driven operations
Local testing
Quick iterations
Development
Install dependencies:
pnpm installBuild the server:
pnpm run buildFor development with auto-rebuild:
pnpm run watchDebugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, available as a package script:
pnpm run inspectorThe Inspector will provide a URL to access debugging tools in your browser: http://localhost:5173. You will need to add the POSTMAN_API_KEY before connecting. Navigate to "Tools" to get started.
Other MCP Servers
License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
99 toolsadd_api_collectionC
Add a collection to an API
Inputs: apiId (required), operationType (required), data.
add_pan_elementB
Add element or folder to Private API Network
Inputs: name (required), type (required), summary, elementId, +2 more.
create_apiC
Create a new API
Inputs: name (required), workspaceId (required), summary, description.
create_api_commentB
Create a new comment on an API (max 10,000 characters)
Inputs: apiId (required), content (required), threadId.
create_api_schemaC
Create a schema for an API
Inputs: type (required), apiId (required), files (required).
create_api_versionB
Create a new version of an API
Inputs: name (required), apiId (required), schemas (required), collections (required), +2 more.
create_collectionB
Create a new collection in a workspace. Supports Postman Collection v2.1.0 format.
Inputs: collection (required), workspace.
create_collection_folderB
Create a new folder in a collection
Inputs: folder (required), collection_id (required).
create_collection_requestB
Create a new request in a collection
Inputs: request (required), collection_id (required), folder_id.
create_collection_responseC
Create a new response in a collection
Inputs: response (required), request_id (required), collection_id (required).
create_environmentB
Create a new environment in a workspace. Creates in "My Workspace" if workspace not specified.
Inputs: environment (required), workspace.
create_mockB
Create a new mock server. Creates in Personal workspace if workspace not specified.
Inputs: mock (required), workspace.
create_monitorA
Create a new monitor. Cannot create monitors for collections added to an API definition.
Inputs: monitor (required), workspace.
create_server_responseA
Create a server response. Only one server response can be active at a time.
Inputs: mockId (required), serverResponse (required).
create_update_schema_fileC
Create or update a schema file
Inputs: apiId (required), content (required), filePath (required), schemaId (required), +1 more.
create_webhookB
Creates webhook that triggers collection with custom payload
Inputs: webhook (required), workspace (required).
delete_apiB
Delete an API
Inputs: apiId (required).
delete_api_commentC
Delete an API comment
Inputs: apiId (required), commentId (required).
delete_api_versionC
Delete an API version
Inputs: apiId (required), versionId (required).
delete_collectionC
Delete a collection
Inputs: collection_id (required).
delete_collection_access_keyD
Delete a collection access key
Inputs: keyId (required).
delete_collection_folderC
Delete a folder from a collection
Inputs: folder_id (required), collection_id (required).
delete_collection_requestB
Delete a request from a collection
Inputs: request_id (required), collection_id (required).
delete_collection_responseB
Delete a response from a collection
Inputs: response_id (required), collection_id (required).
delete_environmentB
Delete an environment
Inputs: environmentId (required).
delete_mockB
Delete a mock server
Inputs: mockId (required).
delete_monitorC
Delete a monitor
Inputs: monitorId (required).
delete_schema_fileB
Delete a schema file
Inputs: apiId (required), filePath (required), schemaId (required).
delete_server_responseC
Delete a server response
Inputs: mockId (required), serverResponseId (required).
fork_collectionB
Fork a collection to a workspace
Inputs: label (required), workspace (required), collection_id (required).
fork_environmentB
Create a fork of an environment in a workspace
Inputs: label (required), workspace (required), environmentId (required).
get_accountsB
Gets Postman billing account details for the given team
Inputs: no named parameters.
get_apiC
Get details of a specific API
Inputs: apiId (required), include.
get_api_collectionC
Get a specific collection from an API
Inputs: apiId (required), collectionId (required), versionId.
get_api_commentsB
Get comments for an API
Inputs: apiId (required), limit, cursor.
get_api_schemaC
Get a specific schema from an API
Inputs: apiId (required), schemaId (required), bundled, versionId.
get_api_schema_filesC
Get files in an API schema
Inputs: apiId (required), schemaId (required), limit, cursor, +1 more.
get_api_tagsB
Get tags for an API
Inputs: apiId (required).
get_api_versionB
Get a specific version of an API
Inputs: apiId (required), versionId (required).
get_api_versionsC
Get all versions of an API
Inputs: apiId (required), limit, cursor.
get_authenticated_userB
Get authenticated user information
Inputs: no named parameters.
get_collectionC
Get details of a specific collection
Inputs: collection_id (required), model, access_key.
get_collection_folderC
Get details of a specific folder in a collection
Inputs: folder_id (required), collection_id (required), ids, uid, +1 more.
get_collection_forksB
Get a list of collection forks
Inputs: collection_id (required), sort, limit, cursor, +1 more.
get_collection_requestB
Get details of a specific request in a collection
Inputs: request_id (required), collection_id (required), ids, uid, +1 more.
get_collection_responseB
Get details of a specific response in a collection
Inputs: response_id (required), collection_id (required), ids, uid, +1 more.
get_collection_rolesC
Get roles for a collection
Inputs: collectionId (required).
get_environmentB
Get details of a specific environment
Inputs: environmentId (required).
get_environment_forksB
Get a list of environment forks
Inputs: environmentId (required), sort, limit, cursor, +1 more.
get_mockB
Get details of a specific mock server
Inputs: mockId (required).
get_mock_call_logsA
Get mock call logs. Maximum 6.5MB or 100 call logs per API call. Retention period based on Postman plan.
Inputs: mockId (required), sort, limit, since, +8 more.
get_monitorC
Get details of a specific monitor
Inputs: monitorId (required).
get_schema_file_contentsC
Get contents of a schema file
Inputs: apiId (required), filePath (required), schemaId (required), versionId.
get_server_responseB
Get a specific server response
Inputs: mockId (required), serverResponseId (required).
get_tagged_elementsC
Get elements by tag
Inputs: slug (required), limit, cursor, direction, +1 more.
get_task_statusC
Get status of an asynchronous task
Inputs: apiId (required), taskId (required).
get_user_infoB
Get information about the authenticated user
Inputs: no named parameters.
get_workspaceB
Get details of a specific workspace
Inputs: workspace (required), include.
get_workspace_rolesC
Get roles for a specific workspace
Inputs: workspaceId (required), includeScim.
get_workspace_tagsC
Get workspace tags
Inputs: workspaceId (required).
list_account_invoicesB
Gets all invoices for a Postman billing account filtered by status
Inputs: status (required), accountId (required).
list_apisC
List all APIs in a workspace
Inputs: workspaceId (required), limit, cursor, createdBy, +1 more.
list_collection_access_keysB
List collection access keys with optional filtering by collection ID
Inputs: cursor, collectionId.
list_collectionsA
List all collections in a workspace. Supports filtering and pagination.
Inputs: name, limit, offset, workspace.
list_environmentsB
List all environments in a workspace. If workspace not specified, lists environments in "My Workspace".
Inputs: workspace.
list_mocksB
List all mock servers
Inputs: teamId, workspace.
list_monitorsC
Get all monitors
Inputs: workspace.
list_pan_elementsC
Get all elements and folders in Private API Network
Inputs: name, sort, type, limit, +8 more.
list_server_responsesC
Get all server responses for a mock
Inputs: mockId (required).
list_workspace_rolesA
Get all available workspace roles based on team's plan
Inputs: no named parameters.
list_workspacesC
List all workspaces
Inputs: type, include, createdBy.
merge_collection_forkB
Merge a forked collection back into its parent
Inputs: source (required), strategy (required), destination (required).
merge_environment_forkB
Merge a forked environment back into its parent
Inputs: source (required), destination (required), environmentId (required), strategy.
patch_collectionA
Partially update a collection. Only updates provided fields.
Inputs: collection (required), collection_id (required).
publish_mockA
Publish mock server (sets Access Control to public)
Inputs: mockId (required).
pull_collection_changesB
Pull changes from parent collection into forked collection
Inputs: collection_id (required).
pull_environmentB
Pull changes from parent environment into forked environment
Inputs: source (required), destination (required), environmentId (required).
remove_pan_elementB
Remove element or folder from Private API Network
Inputs: elementId (required), elementType (required).
resolve_comment_threadB
Resolves a comment and any associated replies
Inputs: threadId (required).
run_monitorA
Run a monitor. For async=true, response won't include stats, executions, and failures. Use GET /monitors/{id} to get this information for async runs.
Inputs: monitorId (required), async.
sync_collection_with_schemaC
Sync a collection with its schema
Inputs: apiId (required), collectionId (required).
transfer_collection_itemsC
Transfer items between collections
Inputs: ids (required), mode (required), type (required), target (required), +1 more.
unpublish_mockB
Unpublish mock server (sets Access Control to private)
Inputs: mockId (required).
update_apiC
Update an existing API
Inputs: apiId (required), name, summary, description.
update_api_commentB
Update an existing API comment (max 10,000 characters)
Inputs: apiId (required), content (required), commentId (required).
update_api_tagsB
Update tags for an API
Inputs: tags (required), apiId (required).
update_api_versionC
Update an API version
Inputs: name (required), apiId (required), versionId (required), releaseNotes.
update_collectionA
Update an existing collection. Full collection replacement with maximum size of 20 MB.
Inputs: collection (required), collection_id (required).
update_collection_folderA
Update a folder in a collection. Acts like PATCH, only updates provided values.
Inputs: folder (required), folder_id (required), collection_id (required).
update_collection_requestA
Update a request in a collection. Cannot change request folder.
Inputs: request (required), request_id (required), collection_id (required).
update_collection_responseA
Update a response in a collection. Acts like PATCH, only updates provided values.
Inputs: response (required), response_id (required), collection_id (required).
update_collection_rolesB
Update collection roles (requires EDITOR role)
Inputs: operations (required), collectionId (required).
update_environmentA
Update an existing environment. Only include variables that need to be modified.
Inputs: environment (required), environmentId (required).
update_mockB
Update an existing mock server
Inputs: mock (required), mockId (required).
update_monitorC
Update an existing monitor
Inputs: monitor (required), monitorId (required).
update_pan_elementC
Update element or folder in Private API Network
Inputs: elementId (required), elementType (required), name, summary, +2 more.
update_server_responseC
Update a server response
Inputs: mockId (required), serverResponse (required), serverResponseId (required).
update_workspace_rolesB
Update workspace roles for users and groups (limited to 50 operations per call)
Inputs: operations (required), workspaceId (required), identifierType.
update_workspace_tagsD
Update workspace tags
Inputs: tags (required), workspaceId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 99 tools
With 99 tools, many CRUD operations for different entities (API, collection, environment, etc.) exist, but descriptions generally clarify their purpose. Some overlapping concepts like 'add_api_collection' vs 'create_collection' could cause confusion, but overall distinct.
Most tools follow a consistent 'verb_noun' pattern (e.g., create_api, delete_api), but a few deviations like 'add_pan_element', 'resolve_comment_thread', and 'sync_collection_with_schema' break the pattern.
99 tools is excessively high for a single server, even considering Postman's broad scope. Many tools could be consolidated (e.g., using parameters instead of separate tools), making it hard for agents to navigate.
The tool surface covers all major Postman resources (APIs, collections, environments, mocks, monitors, schemas, webhooks, etc.) with full CRUD, plus forks, merges, roles, tags, comments, and PAN management. No obvious gaps.
Maintenance
Related MCP Connectors
Publish, schedule, and manage social media posts across major platforms via the Postproxy API.
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
AI-callable tools for API mocking, testing, monitoring, security, and automation.
PostHog MCP — wraps PostHog Analytics API (app.posthog.com/api)
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables running Postman collections using Newman for conducting API tests and obtaining detailed result analysis via a standardized interface.143 npm84MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Postman workspaces, collections, requests, responses, and monitors through the Postman API. Allows users to manage API collections, create and update requests/responses, and execute monitors directly from chat.28 npmMIT
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that provides seamless integration with the Postman API, enabling AI assistants and applications to interact with Postman workspaces, collections, requests, environments, and folders programmatically.1928 npm31MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, manage, and interact with Postman collections, workspaces, environments, and API requests directly from conversations.75 npm5MIT