mirror of
https://github.com/Postman-Devrel/postman-claude-code-plugin.git
synced 2026-04-16 10:29:58 +00:00
89 lines
3.4 KiB
Markdown
89 lines
3.4 KiB
Markdown
|
|
---
|
||
|
|
description: Generate, improve, and publish API documentation from Postman collections.
|
||
|
|
allowed-tools: Read, Glob, Grep, mcp__postman__*
|
||
|
|
---
|
||
|
|
|
||
|
|
# API Documentation
|
||
|
|
|
||
|
|
Analyze, improve, and publish API documentation from OpenAPI specs and Postman collections.
|
||
|
|
|
||
|
|
## Prerequisites
|
||
|
|
|
||
|
|
The Postman MCP Server must be connected for Postman operations. Local spec analysis works without MCP. If needed, tell the user: "Run `/postman:setup` to configure the Postman MCP Server."
|
||
|
|
|
||
|
|
## Workflow
|
||
|
|
|
||
|
|
### Step 1: Find the Source
|
||
|
|
|
||
|
|
Call `getWorkspaces` to get the user's workspace ID. If multiple workspaces exist, ask which to use.
|
||
|
|
|
||
|
|
Check for API definitions in this order:
|
||
|
|
|
||
|
|
**Local specs:**
|
||
|
|
- Search for `**/openapi.{json,yaml,yml}`, `**/swagger.{json,yaml,yml}`
|
||
|
|
|
||
|
|
**Postman specs:**
|
||
|
|
- Call `getAllSpecs` with the workspace ID to find specs in Postman
|
||
|
|
- Call `getSpecDefinition` to pull the full spec
|
||
|
|
|
||
|
|
**Postman collections:**
|
||
|
|
- Call `getCollections` with the `workspace` parameter
|
||
|
|
- Call `getCollection` for full detail
|
||
|
|
|
||
|
|
### Step 2: Analyze Documentation Completeness
|
||
|
|
|
||
|
|
Read the spec/collection and assess:
|
||
|
|
|
||
|
|
```
|
||
|
|
Documentation Coverage: 60%
|
||
|
|
Endpoints with descriptions: 8/15
|
||
|
|
Parameters with descriptions: 22/45
|
||
|
|
Endpoints with examples: 3/15
|
||
|
|
Error responses documented: 2/15
|
||
|
|
Authentication documented: Yes
|
||
|
|
Rate limits documented: No
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 3: Generate or Improve
|
||
|
|
|
||
|
|
**Sparse spec:** Generate documentation for each endpoint:
|
||
|
|
- Operation summary and description
|
||
|
|
- Parameter table (name, type, required, description)
|
||
|
|
- Request body schema with examples
|
||
|
|
- Response schemas with examples for each status code
|
||
|
|
- Error response documentation
|
||
|
|
- Authentication requirements per endpoint
|
||
|
|
|
||
|
|
**Partial spec:** Fill the gaps:
|
||
|
|
- Add missing descriptions (infer from naming and schemas)
|
||
|
|
- Generate realistic examples from schemas
|
||
|
|
- Add error responses
|
||
|
|
- Document authentication and rate limits
|
||
|
|
|
||
|
|
### Step 4: Apply Changes
|
||
|
|
|
||
|
|
Ask the user which output they want:
|
||
|
|
|
||
|
|
1. **Update the spec file** - Write improved docs back into the OpenAPI spec
|
||
|
|
2. **Update in Postman** - Use `updateCollectionRequest` to add descriptions and examples to each request
|
||
|
|
3. **Publish public docs** - Call `publishDocumentation` with:
|
||
|
|
- `collectionId`: the collection's unique ID
|
||
|
|
- `customColor` and `customization` for branding
|
||
|
|
- Returns a public URL for the docs
|
||
|
|
- To unpublish later, call `unpublishDocumentation` with the collection ID
|
||
|
|
4. **Generate markdown** - Create a `docs/api-reference.md` file for the project
|
||
|
|
|
||
|
|
### Step 5: Sync Spec and Collection
|
||
|
|
|
||
|
|
If both a spec and collection exist, keep them in sync:
|
||
|
|
- Call `syncCollectionWithSpec` to update collection from spec. **Async (HTTP 202).** Poll `getCollectionUpdatesTasks` for completion. Only supports OpenAPI 3.0.
|
||
|
|
- Or call `syncSpecWithCollection` to update spec from collection changes.
|
||
|
|
|
||
|
|
## Error Handling
|
||
|
|
|
||
|
|
- **MCP not configured:** Local markdown docs can be generated without MCP. For Postman publishing: "Run `/postman:setup` to configure the Postman MCP Server."
|
||
|
|
- **401 Unauthorized:** "Your Postman API key was rejected. Generate a new one at https://postman.postman.co/settings/me/api-keys and run `/postman:setup`."
|
||
|
|
- **Invalid spec:** Report parse errors and offer to fix common YAML/JSON syntax issues.
|
||
|
|
- **Plan limitations:** "Publishing documentation may require a paid Postman plan. Check https://www.postman.com/pricing/"
|
||
|
|
- **Too many results:** Ask the user to specify a collection by name.
|