Skip to main content
Glama
runninghare

REST-to-Postman MCP

by runninghare

REST 到 Postman MCP

铁匠徽章

一个模型上下文协议 (MCP) 服务器,用于将 REST API 代码(例如 NestJS 控制器、FastAPI/Flask 端点)转换为 Postman 集合和环境。此工具可帮助开发人员自动将其 REST API 端点和环境配置与 Postman 同步。

特征

  • 将 REST API 端点转换为 Postman 集合

  • 与 Postman 环境同步环境变量

  • 支持各种身份验证方法(例如 Bearer token)

  • 新端点与现有集合的智能合并

  • 自动处理敏感环境变量

  • 支持 stdio 和 SSE 传输模式

Related MCP server: Codebase Insights MCP Server

先决条件

  • Bun v1.2.2 或更高版本

  • Postman API 密钥

  • Postman 工作区 ID

安装和使用

这是一个模型上下文协议 (MCP) stdio 服务器,需要访问您的 Postman 工作区来创建/更新集合和环境。

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 REST-to-Postman MCP:

npx -y @smithery/cli install @runninghare/rest-to-postman-mcp --client claude

使用npx运行 MCP 服务器

要将 MCP 服务器与npx一起使用:

npx -y rest-to-postman@latest --postman-api-key your_api_key --postman-workspace-id your_workspace_id

或者使用环境变量:

export POSTMAN_API_KEY=your_api_key
export POSTMAN_ACTIVE_WORKSPACE_ID=your_workspace_id
npx -y rest-to-postman@latest 

您可以将此命令与支持 MCP 的各种 AI 代码编辑器集成:

  • 克劳德桌面

  • 光标

  • 风帆冲浪

  • Roo Cline 编辑

重要提示:服务器需要 Postman API 凭证才能运行。在启动服务器之前,请确保已准备好 API 密钥和工作区 ID。

工具描述

该服务器提供两个主要工具:

1. REST 到 Postman 环境( rest_to_postman_env )

使用应用程序的环境变量创建或更新 Postman 环境。

输入参数:

  • envName (字符串):Postman 环境的名称

  • envVars (对象):环境变量的键值对

示例输入:

{
    "envName": "REST Environment",
    "envVars": {
        "API_URL": "https://api.example.com",
        "API_TOKEN": "secret-token-1"
    }
}

2. REST 到 Postman 集合( rest_to_postman_collection )

使用您的 REST API 端点创建或更新 Postman 集合。

输入参数:

  • collectionRequest (对象):Postman 收集配置包含:

    • info :集合元数据

    • auth :身份验证设置

    • item :API 端点数组

示例输入:

{
    "info": {
        "name": "REST Collection",
        "description": "REST Collection", 
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "auth": {
        "type": "bearer",
        "bearer": [
            {   
                "key": "Authorization",
                "value": "Bearer {{API_TOKEN}}",
                "type": "string"
            }
        ]
    },  
    "item": [
        {
            "name": "Get Users",
            "request": {
                "method": "GET",    
                "url": {
                    "raw": "{{API_URL}}/users",
                    "protocol": "https",
                    "host": ["api", "example", "com"],
                    "path": ["users"]
                }   
            }
        }
    ]
}

响应格式

两种工具都会返回一条成功消息,确认 Postman 资源的创建/更新:

{
    "content": [{
        "type": "text",
        "text": "Successfully created/updated Postman environment: REST Environment"
    }]
}

在 Cursor 中使用此 MCP

您可以在 Cursor 中使用此 MCP 服务器。以下示例基于 Nest.js Typescript 控制器生成 Postman Collection。

迅速的:

Create a postman collection named "Campaign Endpoints" based on this next.js controller. The baseUrl is `http://localhost:7022`. The collection should have a Bear token which applies to all the endpoints

这是自动生成的 Postman Collection:

请注意, Campaign Controller 的所有端点都已生成,同时还生成了 Bear 令牌设置。

发展

本地设置

  1. 克隆存储库:

git clone https://github.com/runninghare/rest-to-postman.git
cd rest-to-postman
  1. 安装依赖项:

bun install
  1. 创建.env文件:

POSTMAN_API_KEY=your_api_key_here
POSTMAN_ACTIVE_WORKSPACE_ID=your_workspace_id_here

以开发模式运行

对于开发,您可以直接使用 Bun 运行服务器:

# Start in stdio mode (default)
bun run src/mcp.ts

# Start in SSE mode
bun run src/mcp.ts --sse

建筑

要构建项目:

bun run build

这将在dist目录中创建捆绑输出。

脚本

  • bun run build构建项目

  • bun run dev以开发模式运行服务器

  • bun run startSSE以 SSE 模式启动服务器

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

Available Tools

2 tools
rest_to_postman_collectionA

Creates or updates a Postman collection with the provided collection configuration. This tool helps synchronize your REST API endpoints with Postman. When updating an existing collection, it intelligently merges the new endpoints with existing ones, avoiding duplicates while preserving custom modifications made in Postman. Here's an example:

{ "info": { "name": "REST Collection", "description": "REST Collection", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "auth": { "type": "bearer", "bearer": [ {
"key": "Authorization", "value": "Bearer {{API_TOKEN}}", "type": "string" } ] },
"item": [ { "name": "Get Users", "request": { "method": "GET",
"url": { "raw": "{{API_URL}}/users", "protocol": "https", "host": ["api", "example", "com"], "path": ["users"] }
} }, { "name": "Create User", "request": { "method": "POST", "url": { "raw": "{{API_URL}}/users" }, "body": { "mode": "raw", "raw": "{"name":"John Doe","email":"john.doe@example.com"}" } }
} ] }

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionRequestYesThe Postman collection configuration containing info, items, and other collection details

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes key behaviors: it can create or update collections, intelligently merges endpoints to avoid duplicates, and preserves custom modifications. However, it lacks details on permissions, error handling, or rate limits, which are important for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but includes a lengthy example that may not be necessary for understanding the tool's function. While the example is helpful, it makes the description less concise, and some details could be moved to documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (1 parameter with nested objects, no annotations, no output schema), the description is moderately complete. It covers the tool's purpose and behavior but lacks information on return values, error cases, or prerequisites, which are important for a tool that mutates data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds minimal parameter semantics by mentioning 'collection configuration' and providing an example, but it does not explain parameter constraints or usage beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Creates or updates a Postman collection with the provided collection configuration.' It specifies the verb ('creates or updates'), the resource ('Postman collection'), and distinguishes it from sibling tools by mentioning synchronization with REST API endpoints, unlike the sibling 'rest_to_postman_env' which likely handles environments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage: 'This tool helps synchronize your REST API endpoints with Postman.' It explains when to use it (for creating or updating collections) and hints at the update behavior (intelligent merging). However, it does not explicitly state when not to use it or name specific alternatives beyond the sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rest_to_postman_envA

Creates or updates a Postman environment with the provided environment variables. This tool helps synchronize your REST application's environment configuration with Postman. It supports both creating new environments and updating existing ones in your Postman workspace. Environment variables related to sensitive data (containing 'token' in their names) are automatically marked as secrets. Here's an example:

{ "envName": "REST Environment", "envVars": { "API_URL": "https://api.example.com", "API_TOKEN": "secret-token-1" } }

ParametersJSON Schema
NameRequiredDescriptionDefault
envNameYesThe name of the Postman environment to create or update
envVarsYesA record of environment variables to be added to the Postman environment. Format: { [key: string]: string }

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals important behavioral traits: support for both create and update operations, automatic secret marking for variables containing 'token', and workspace context. However, it doesn't disclose authentication requirements, rate limits, error handling, or whether the operation is idempotent, leaving significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core functionality in the first sentence. The example is helpful but could be more concise. The text is well-structured with clear sentences, though the example takes up significant space relative to the explanatory content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description provides adequate basic information about what the tool does and includes a helpful example. However, it lacks important contextual details: no information about return values, error conditions, authentication requirements, or workspace selection logic. The example helps but doesn't compensate for these missing elements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds minimal value beyond the schema: it provides an example showing the expected JSON structure and mentions the secret-marking behavior for 'token' variables, but doesn't explain parameter semantics beyond what's in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('creates or updates') and resource ('Postman environment with environment variables'). It distinguishes from the sibling tool 'rest_to_postman_collection' by focusing on environments rather than collections, providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('helps synchronize your REST application's environment configuration with Postman') but doesn't explicitly state when to use this tool versus alternatives. No guidance is provided on prerequisites, error conditions, or specific scenarios where this tool is preferred over manual configuration or other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedrest_to_postman_collection
    • First observedrest_to_postman_env

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one handles Postman collections (API endpoint configurations), while the other handles Postman environments (environment variables). There is no overlap in functionality, making it impossible to confuse them.

Naming Consistency5/5

Both tools follow a perfect 'rest_to_postman_' prefix pattern with descriptive suffixes ('collection' and 'env'). The naming is completely consistent in style and structure throughout the set.

Tool Count2/5

With only 2 tools, this server feels severely under-scoped for a REST-to-Postman integration purpose. A complete synchronization system would typically need tools for operations like listing collections/environments, deleting resources, or handling authentication flows, not just create/update operations.

Completeness2/5

The toolset is significantly incomplete for REST-to-Postman synchronization. While create/update operations exist for collections and environments, there are no tools for reading existing resources, deleting them, managing workspaces, or handling more complex Postman features like monitors or mocks. This creates dead ends for agents trying to perform full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Automatically converts Postman API collections into MCP-compatible tools for AI assistants. Enables users to interact with any API through natural language by generating JavaScript tools from Postman requests.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Analyzes API codebases from GitHub and Bitbucket repositories to generate Postman collections, business reports, and detailed code insights. Supports multiple frameworks including FastAPI, Spring Boot, Flask, Express, and OpenAPI/Swagger specifications.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Integrates Postman with Cursor IDE to manage collections and requests through natural language. It features specialized tools for automatically migrating API endpoints and metadata directly from .NET controller code into Postman collections.
    8
    132 npm
    MIT