naftiko: 1.0.0-alpha2 info: label: API Snap Content Generation description: >- Workflow that combines API Snap's visual and document generation endpoints (QR code, screenshot, image resize, PDF, Markdown, placeholder, URL metadata) for marketing, content management, and document automation pipelines. Used by content engineers, growth teams, and CMS platforms to produce link previews, visual assets, PDFs, and rendered HTML on demand. tags: - API Snap - Content Generation - QR Codes - Screenshots - Image Processing - PDF Generation - Markdown - URL Metadata created: '2026-05-06' modified: '2026-05-06' binds: - namespace: env keys: API_SNAP_API_KEY: API_SNAP_API_KEY capability: consumes: - import: api-snap location: ./shared/api-snap.yaml exposes: - type: rest port: 7081 namespace: content-generation-api description: Unified REST API for visual and document content generation. resources: - path: /v1/qr-codes name: qr-codes description: QR code generation operations: - method: POST name: createQrCode description: Generate a QR code call: api-snap.generateQrCode with: data: rest.data size: rest.size format: rest.format dark: rest.dark light: rest.light outputParameters: - type: object mapping: '$.' - path: /v1/screenshots name: screenshots description: Webpage screenshot capture operations: - method: POST name: createScreenshot description: Capture a webpage screenshot call: api-snap.captureScreenshot with: url: rest.url width: rest.width height: rest.height format: rest.format full_page: rest.full_page outputParameters: - type: object mapping: '$.' - path: /v1/images name: images description: Image resize and placeholder generation operations: - method: POST name: resizeImage description: Resize and convert an image call: api-snap.resizeImage with: image: rest.image url: rest.url width: rest.width height: rest.height format: rest.format quality: rest.quality fit: rest.fit outputParameters: - type: object mapping: '$.' - method: POST name: createPlaceholder description: Generate an SVG placeholder image call: api-snap.generatePlaceholderImage with: w: rest.w h: rest.h bg: rest.bg fg: rest.fg text: rest.text outputParameters: - type: object mapping: '$.' - path: /v1/documents name: documents description: PDF and Markdown rendering operations: - method: POST name: createPdf description: Render HTML as PDF call: api-snap.htmlToPdf with: html: rest.html title: rest.title outputParameters: - type: object mapping: '$.' - method: POST name: renderMarkdown description: Convert Markdown to HTML call: api-snap.markdownToHtml with: markdown: rest.markdown styled: rest.styled outputParameters: - type: object mapping: '$.' - path: /v1/url-metadata name: url-metadata description: URL metadata and Open Graph extraction operations: - method: GET name: getUrlMetadata description: Extract URL metadata call: api-snap.extractUrlMetadata with: url: rest.url outputParameters: - type: object mapping: '$.' - type: mcp port: 7082 namespace: content-generation-mcp transport: http description: MCP server for AI-assisted visual and document content generation. tools: - name: generate-qr-code description: Generate a QR code encoding the supplied text or URL. hints: readOnly: true openWorld: false call: api-snap.generateQrCode with: data: tools.data size: tools.size format: tools.format dark: tools.dark light: tools.light outputParameters: - type: object mapping: '$.' - name: capture-screenshot description: Capture a screenshot of a webpage. hints: readOnly: true openWorld: true call: api-snap.captureScreenshot with: url: tools.url width: tools.width height: tools.height format: tools.format full_page: tools.full_page outputParameters: - type: object mapping: '$.' - name: resize-image description: Resize and reformat an image. hints: readOnly: false openWorld: false call: api-snap.resizeImage with: image: tools.image url: tools.url width: tools.width height: tools.height format: tools.format quality: tools.quality fit: tools.fit outputParameters: - type: object mapping: '$.' - name: generate-placeholder description: Generate an SVG placeholder image. hints: readOnly: true openWorld: false call: api-snap.generatePlaceholderImage with: w: tools.w h: tools.h bg: tools.bg fg: tools.fg text: tools.text outputParameters: - type: object mapping: '$.' - name: html-to-pdf description: Render HTML content as a PDF document. hints: readOnly: false openWorld: false call: api-snap.htmlToPdf with: html: tools.html title: tools.title outputParameters: - type: object mapping: '$.' - name: markdown-to-html description: Convert Markdown content into HTML. hints: readOnly: true openWorld: false call: api-snap.markdownToHtml with: markdown: tools.markdown styled: tools.styled outputParameters: - type: object mapping: '$.' - name: get-url-metadata description: Extract Open Graph and metadata for a URL. hints: readOnly: true openWorld: true call: api-snap.extractUrlMetadata with: url: tools.url outputParameters: - type: object mapping: '$.'