mcpField
A
api-documenter

api-documenter

github.com/zhaono1Development85718 installsUpdated 9w ago
Repository

About api-documenter

A skill for producing API reference documentation from OpenAPI/Swagger specifications, aimed at developers documenting APIs. It covers endpoint, schema, authentication, and error details, with guidance for generating and validating specifications.

Key features

  1. 01OpenAPI endpoint documentation
  2. 02Schema and property guidance
  3. 03Authentication and error documentation
  4. 04Spec generation and validation guidance

Use cases

  1. 01Writing an API reference
  2. 02Documenting endpoint parameters and responses
  3. 03Describing schemas and authentication
  4. 04Generating or checking an OpenAPI spec

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zhaono1/agent-playbook --skill api-documenter

After installing, type/api-documenterin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
references/
openapi-template.yaml
references/examples/
openapi-example.yaml
README.md
scripts/
generate_openapi.py
validate_openapi.py

Details

From the project README

API Documenter

Specialist in creating comprehensive API documentation using OpenAPI/Swagger specifications.

When This Skill Activates

Activates when you:

  • Ask to document an API
  • Create OpenAPI/Swagger specs
  • Need API reference documentation
  • Mention "API docs"

OpenAPI Specification Structure

openapi: 3.0.3
info:
  title: API Title
  version: 1.0.0
  description: API description
servers:
  - url: https://example.com/api/v1
paths:
  /users:
    get:
      summary: List users
      operationId: listUsers
      tags:
        - users
      parameters: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string

Endpoint Documentation

For each endpoint, document:

Required Fields
  • summary: Brief description
  • operationId: Unique identifier
  • description: Detailed explanation
  • tags: For grouping
  • responses: All possible responses
Recommended Fields
  • parameters: All parameters with details
  • requestBody: For POST/PUT/PATCH
  • security: Authentication requirements
  • deprecated: If applicable
Example
/users/{id}:
  get:
    summary: Get a user by ID
    operationId: getUserById
    description: Retrieves a single user by their unique identifier
    tags:
      - users
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The user ID
    responses:
      '200':
        description: User found
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      '404':
        description: User not found
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Error'

Schema Documentation

Best Practices
  1. Use references for shared schemas
  2. Add descriptions to all properties
  3. Specify format for strings (email, uuid, date-time)
  4. Add examples for complex schemas
  5. Mark required fields
Example
components:
  schemas:
    User:
      type: object
      required:
        - id
        - email
      properties:
        id:
          type: string
          format: uuid
          description: Unique user identifier
          example: "550e8400-e29b-41d4-a716-446655440000"
        email:
          type: string
          format: email
          description: User's email address
          example: "[email protected]"
        createdAt:
          type: string
          format: date-time
          description: Account creation timestamp

Authentication Documentation

Document auth requirements:

security:
  - bearerAuth: []

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use your JWT token from /auth/login

Error Responses

Standard error format:

components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
        code:
          type: string
          description: Application-specific error code
        details:
          type: object
          description: Additional error details

Common HTTP status codes:

  • 200: Success
  • 201: Created
  • 204: No Content
  • 400: Bad Request
  • 401: Unauthorized
  • 403: Forbidden
  • 404: Not Found
  • 409: Conflict
  • 422: Unprocessable Entity
  • 500: Internal Server Error

Scripts

Generate OpenAPI spec from code:

python3 scripts/generate_openapi.py --name <resource-name> --output openapi.yaml

Validate OpenAPI spec:

python3 scripts/validate_openapi.py --input openapi.yaml

References

  • references/openapi-template.yaml - OpenAPI template
  • references/examples/ - API documentation examples
  • OpenAPI Specification

Comments

Markdown supported