From dev-toolkit
Generate a Postman Collection v2.1 JSON for the project's API endpoints. Detects framework automatically and extracts routes, methods, params, and body schemas.
npx claudepluginhub lucaspadularrosa/claude-plugins --plugin dev-toolkitThis skill is limited to using the following tools:
```
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Share bugs, ideas, or general feedback.
$ARGUMENTS
Parse optional flags:
--output <file> — output filename (default: postman-collection.json)--base-url <url> — base URL for requests (default: http://localhost:3000)--focus <module> — limit to a specific module or path prefix (optional)Read package.json, pyproject.toml, pom.xml, go.mod, or Gemfile to identify the framework.
| Framework | Route Pattern to Search |
|---|---|
| Express/Fastify (Node.js) | router.get(, app.post(, .route( |
| Spring Boot (Java) | @GetMapping, @PostMapping, @RequestMapping, @RestController |
| FastAPI (Python) | @app.get(, @router.post(, @app.route( |
| Django REST (Python) | path(, urlpatterns, @api_view |
| Rails (Ruby) | resources :, get ', post ' in routes.rb |
| Go (net/http / gin / echo) | http.HandleFunc(, r.GET(, e.GET( |
Use Grep to find route definitions across the codebase. For each route, extract:
/api/users/:id:id, {id}req.body, @RequestBody, request.json())If --focus <module> is set, only include routes matching the module name or path prefix.
Organize routes by the first path segment (e.g., /api/users → folder "users", /api/products → folder "products"). Routes without a clear grouping go into a "General" folder.
Construct the JSON with this structure:
{
"info": {
"name": "<project-name> API",
"_postman_id": "<generated-uuid>",
"description": "Generated by dev-toolkit:postman",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{ "key": "baseUrl", "value": "<base-url>", "type": "string" },
{ "key": "authToken", "value": "", "type": "string" }
],
"item": [
{
"name": "<folder-name>",
"item": [
{
"name": "<method> <path>",
"request": {
"method": "<METHOD>",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "Authorization", "value": "Bearer {{authToken}}" }
],
"url": {
"raw": "{{baseUrl}}<path>",
"host": ["{{baseUrl}}"],
"path": ["<path-segments>"],
"variable": [
{ "key": "<param>", "value": "<example-value>", "description": "" }
]
},
"body": {
"mode": "raw",
"raw": "<example-json-body>",
"options": { "raw": { "language": "json" } }
},
"description": "<route description>"
}
}
]
}
]
}
For routes without a body (GET, DELETE), omit the body field.
For path parameters, use the Postman {{variable}} syntax (e.g., /users/{{userId}}).
Write the collection JSON to the --output file (default: postman-collection.json).
Output:
dev-toolkit:postman — Postman Collection Generator
Usage:
/dev-toolkit:postman
/dev-toolkit:postman --output api.postman_collection.json
/dev-toolkit:postman --base-url https://api.myapp.com
/dev-toolkit:postman --focus users
Options:
--output <file> Output filename (default: postman-collection.json)
--base-url <url> Base URL for requests (default: http://localhost:3000)
--focus <module> Limit to routes matching this module/prefix
Import the generated file into Postman: File → Import → select the JSON file.