Postman to MCP: Turn a Collection Into MCP Server Tools
Many teams never wrote an OpenAPI spec, but they do have a Postman collection that holds every request they use. GetMCP’s Postman to MCP import reads a Collection v2.1 file, turns each saved request into a candidate MCP tool, and keeps your folders as tags, so the collection you test with becomes a server Claude, ChatGPT or Cursor can call.
This guide is for developers, QA teams and agencies who live in Postman. It explains what the importer reads from a collection, how it handles variables and hard-coded IDs, and the few things to fix by hand before your tools go live.
What is Postman import?
Postman import is one of GetMCP’s bulk importers, next to OpenAPI and Swagger. It reads the JSON file Postman produces when you export a collection in the Collection v2.1 format, walks every folder, and offers each request as a tool you can tick or untick.
On a server’s Tools tab, open Import Tools and choose From Postman collection, or click Add Tool and pick the From Postman collection card.
How Postman to MCP import works
- Export the collection as v2.1 from Postman. The importer checks
info.schemaand accepts 2.1.x collections only. - Give it to GetMCP. In the Import from Postman collection dialog, choose Paste text, Upload file (a
.jsonfile up to 10 MB) or Fetch from URL (a public share link or a raw JSON address). - Click Parse. The preview lists every request with its method, name and URL. Blue notes explain what the importer did for you, such as substituting variables; amber warnings list what needs attention.
- Choose what to import. Untick requests you do not want, then set On conflict (Skip existing or Create duplicate) and After import (Keep as draft or Activate now).
- Import, then finish the server. Add the API credential on the Authentication tab, review the tools, test them and activate.

What carries over from the collection
| In Postman | In the MCP tool |
|---|---|
| Request name | The tool name. “Create user” becomes create_user. |
| Request description | The tool description. |
| Folders (nested included) | Tags, one per folder level. |
:id path variables and url.variable entries | Required path parameters. A value saved on a path variable becomes its default. |
| Query parameters | Optional query parameters, with the saved value as the default. Disabled ones are skipped. |
| A raw JSON body | One body parameter per top-level field, typed from the sample (string, integer, number, boolean, array or object). A nested object stays a single object parameter. |
urlencoded and formdata bodies | String body parameters, one per enabled field. |
| Headers | Fixed headers on the tool, except disabled ones and credential headers. |
| Collection variables with a value | Substituted into the URL, so {{baseUrl}} becomes your real base URL. |
auth on the collection, folders or requests | Reported in the preview, for example “This collection uses bearer auth.” |
How variables are handled
Collection variables that have a value are written into each URL. A variable with no value that appears in a URL becomes a required parameter the AI client supplies at call time, and the preview names it. A variable with no value that never appears in a URL, typically one used in a body or header, is listed in a warning so you can wire it up by hand.
How hard-coded IDs are handled
Saved requests often carry a real ID from the last time someone ran them, such as /customers/cus_8Hx2Lk/orders. The importer spots ID-like path segments (UUIDs, prefixed tokens like cus_…, numbers of three or more digits and 24-character hex IDs) and turns them into parameters named after the segment before them, here {{customer_id}}. Each affected tool carries a warning so you can check the name.
How credentials are handled
Headers that carry credentials are not copied into the tool: Authorization, Proxy-Authorization, Cookie, X-API-Key, X-Auth-Token, Api-Key and Apikey. The auth types the collection uses are reported instead. You add the real credential once as the server-stored API credential, where it is stored encrypted.
Use cases
Reuse the QA team’s collection as an AI toolset
A QA team already keeps a tidy collection for Acme’s API, organised in Users, Projects and Billing folders. Importing it gives a server whose tools are tagged by those folders, and the Billing folder stays unticked.
Flow: Postman export → untick Billing → import as drafts → activate Users and Projects
Connect a partner API from a shared link
A logistics partner publishes its API as a public Postman collection. An e-commerce team fetches it by URL, keeps the tracking requests, and support staff ask Claude where a parcel is.
Flow: Share link → Fetch from URL → track_shipment → partner API
Turn a support team’s saved requests into tools
Support engineers keep a collection of lookups against the helpdesk and billing systems. Imported as tools, the same lookups run from the AI client, with saved customer IDs turned into parameters.
Flow: “Show Priya Sharma’s last three tickets” → list_customer_tickets → helpdesk API
Hand a client the requests you built for them
An agency built and tested Northwind’s integration in Postman. It imports the collection into a server for Northwind, so the client’s team gets the same requests in Cursor without learning Postman.
Flow: Agency collection → Northwind server → client team in Cursor
Give marketing access to campaign reporting
A growth engineer’s collection already pulls campaign stats from the ad and email platforms. Imported into one server, the marketing team asks for weekly numbers instead of waiting for a report.
Flow: “Clicks by campaign last week” → get_campaign_stats → reporting API
Prototype an internal AI assistant
An internal tools team imports its staging collection, activates five read-only requests, and tests the assistant in the Chat Playground before connecting anyone’s client.
Flow: Staging collection → five tools → Chat Playground → team rollout
Tips and gotchas
- Environments are not read. Only collection variables are substituted. If
{{baseUrl}}lives in a Postman environment, it stays a placeholder and becomes a required parameter. Move it into the collection’s variables before exporting, or fix the URL in each tool. - Saved values become defaults. Values saved in Postman for path variables, query parameters and body fields become schema defaults, which GetMCP sends whenever the model leaves the argument out. Open each tool and clear any default that should not go out on every call, such as a test customer ID or a sample email address.
- Form bodies are sent as JSON. Fields from
urlencodedandformdatabodies become body parameters, but the request goes out as JSON. Test endpoints that only accept form posts. - Non-JSON raw bodies produce no parameters. An XML or plain-text body is not mapped; add parameters by hand.
- Scripts do not run. Pre-request scripts and tests in the collection are ignored, so anything they computed, such as a signature or a token, has to come from the server’s credential settings instead.
- Re-importing adds, it does not sync. Existing tools are skipped or duplicated, never updated.
Related features
- OpenAPI import: if you also have a spec, it carries richer types and required flags.
- cURL import: Postman’s “Code” view gives a cURL command for any single request.
- Connection variables: keep per-account values such as a subdomain out of every tool URL.
- The Tool Editor: rename, describe and trim each imported tool.
FAQ
Which Postman collection versions can I import?
Collection format 2.1.x. Older 2.0 files are rejected with a message naming the schema found. Re-export the collection from Postman as v2.1 and import that file.
Does Postman to MCP import keep my folders?
Yes, as tags. A request inside Projects, then Tasks, gets both tags, which you can use to filter tools on the server’s Tools tab.
Are my Postman auth settings imported?
They are detected, not copied. The preview names the auth types the collection uses, and credential headers are left out of the tools. Enter the credential once on the server’s Authentication tab.
What happens to variables like {{baseUrl}}?
If the collection defines a value for it, the value is written into each URL. If it has no value, it becomes a required parameter the AI client must supply, and the preview says so.
See every import path on the GetMCP features page, then export your collection as v2.1 and import it as drafts.
Ship an MCP server for your product this week.
Install GetMCP on any PHP host, import your API and share one URL. Your users can call your tools from Claude tonight.