naftiko: 1.0.0-alpha2 info: label: PostHog API — product_tours description: 'PostHog API — product_tours. 11 operations. Lead operation: product_tours. Self-contained Naftiko capability covering one Posthog business surface.' tags: - Posthog - product_tours created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: POSTHOG_API_KEY: POSTHOG_API_KEY capability: consumes: - type: http namespace: posthog-product-tours baseUri: '' description: PostHog API — product_tours business capability. Self-contained, no shared references. resources: - name: api-projects-project_id-product_tours path: /api/projects/{project_id}/product_tours/ operations: - name: producttourslist method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer description: Number of results to return per page. - name: offset in: query type: integer description: The initial index from which to return the results. - name: search in: query type: string description: A search term. - name: producttourscreate method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-projects-project_id-product_tours-id path: /api/projects/{project_id}/product_tours/{id}/ operations: - name: producttoursretrieve method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: producttoursupdate method: PUT description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: producttourspartialupdate method: PATCH description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: producttoursdestroy method: DELETE description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: api-projects-project_id-product_tours-id-discard_draft path: /api/projects/{project_id}/product_tours/{id}/discard_draft/ operations: - name: producttoursdiscarddraftdestroy method: DELETE description: Discard draft content. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: api-projects-project_id-product_tours-id-draft path: /api/projects/{project_id}/product_tours/{id}/draft/ operations: - name: producttoursdraftpartialupdate method: PATCH description: Save draft content (server-side merge). No side effects triggered. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-projects-project_id-product_tours-id-draft_status path: /api/projects/{project_id}/product_tours/{id}/draft_status/ operations: - name: producttoursdraftstatusretrieve method: GET description: Lightweight polling endpoint for draft change detection. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: api-projects-project_id-product_tours-id-generate path: /api/projects/{project_id}/product_tours/{id}/generate/ operations: - name: producttoursgeneratecreate method: POST description: Generate tour step content using AI. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-projects-project_id-product_tours-id-publish_draft path: /api/projects/{project_id}/product_tours/{id}/publish_draft/ operations: - name: producttourspublishdraftcreate method: POST description: Commit draft to live tour. Runs full validation and triggers side effects. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: A UUID string identifying this product tour. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.POSTHOG_API_KEY}}' exposes: - type: rest namespace: posthog-product-tours-rest port: 8080 description: REST adapter for PostHog API — product_tours. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/projects/{project-id}/product-tours name: api-projects-project-id-product-tours description: REST surface for api-projects-project_id-product_tours. operations: - method: GET name: producttourslist description: producttourslist call: posthog-product-tours.producttourslist with: limit: rest.limit offset: rest.offset search: rest.search outputParameters: - type: object mapping: $. - method: POST name: producttourscreate description: producttourscreate call: posthog-product-tours.producttourscreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/projects/{project-id}/product-tours/{id} name: api-projects-project-id-product-tours-id description: REST surface for api-projects-project_id-product_tours-id. operations: - method: GET name: producttoursretrieve description: producttoursretrieve call: posthog-product-tours.producttoursretrieve with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: producttoursupdate description: producttoursupdate call: posthog-product-tours.producttoursupdate with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: producttourspartialupdate description: producttourspartialupdate call: posthog-product-tours.producttourspartialupdate with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: producttoursdestroy description: producttoursdestroy call: posthog-product-tours.producttoursdestroy with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/projects/{project-id}/product-tours/{id}/discard-draft name: api-projects-project-id-product-tours-id-discard-draft description: REST surface for api-projects-project_id-product_tours-id-discard_draft. operations: - method: DELETE name: producttoursdiscarddraftdestroy description: Discard draft content. call: posthog-product-tours.producttoursdiscarddraftdestroy with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/projects/{project-id}/product-tours/{id}/draft name: api-projects-project-id-product-tours-id-draft description: REST surface for api-projects-project_id-product_tours-id-draft. operations: - method: PATCH name: producttoursdraftpartialupdate description: Save draft content (server-side merge). No side effects triggered. call: posthog-product-tours.producttoursdraftpartialupdate with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/projects/{project-id}/product-tours/{id}/draft-status name: api-projects-project-id-product-tours-id-draft-status description: REST surface for api-projects-project_id-product_tours-id-draft_status. operations: - method: GET name: producttoursdraftstatusretrieve description: Lightweight polling endpoint for draft change detection. call: posthog-product-tours.producttoursdraftstatusretrieve with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/projects/{project-id}/product-tours/{id}/generate name: api-projects-project-id-product-tours-id-generate description: REST surface for api-projects-project_id-product_tours-id-generate. operations: - method: POST name: producttoursgeneratecreate description: Generate tour step content using AI. call: posthog-product-tours.producttoursgeneratecreate with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/projects/{project-id}/product-tours/{id}/publish-draft name: api-projects-project-id-product-tours-id-publish-draft description: REST surface for api-projects-project_id-product_tours-id-publish_draft. operations: - method: POST name: producttourspublishdraftcreate description: Commit draft to live tour. Runs full validation and triggers side effects. call: posthog-product-tours.producttourspublishdraftcreate with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: posthog-product-tours-mcp port: 9090 transport: http description: MCP adapter for PostHog API — product_tours. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: producttourslist description: producttourslist hints: readOnly: true destructive: false idempotent: true call: posthog-product-tours.producttourslist with: limit: tools.limit offset: tools.offset search: tools.search outputParameters: - type: object mapping: $. - name: producttourscreate description: producttourscreate hints: readOnly: false destructive: false idempotent: false call: posthog-product-tours.producttourscreate with: body: tools.body outputParameters: - type: object mapping: $. - name: producttoursretrieve description: producttoursretrieve hints: readOnly: true destructive: false idempotent: true call: posthog-product-tours.producttoursretrieve with: id: tools.id outputParameters: - type: object mapping: $. - name: producttoursupdate description: producttoursupdate hints: readOnly: false destructive: false idempotent: true call: posthog-product-tours.producttoursupdate with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: producttourspartialupdate description: producttourspartialupdate hints: readOnly: false destructive: false idempotent: true call: posthog-product-tours.producttourspartialupdate with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: producttoursdestroy description: producttoursdestroy hints: readOnly: false destructive: true idempotent: true call: posthog-product-tours.producttoursdestroy with: id: tools.id outputParameters: - type: object mapping: $. - name: discard-draft-content description: Discard draft content. hints: readOnly: false destructive: true idempotent: true call: posthog-product-tours.producttoursdiscarddraftdestroy with: id: tools.id outputParameters: - type: object mapping: $. - name: save-draft-content-server-side description: Save draft content (server-side merge). No side effects triggered. hints: readOnly: false destructive: false idempotent: true call: posthog-product-tours.producttoursdraftpartialupdate with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: lightweight-polling-endpoint-draft-change description: Lightweight polling endpoint for draft change detection. hints: readOnly: true destructive: false idempotent: true call: posthog-product-tours.producttoursdraftstatusretrieve with: id: tools.id outputParameters: - type: object mapping: $. - name: generate-tour-step-content-using description: Generate tour step content using AI. hints: readOnly: false destructive: false idempotent: false call: posthog-product-tours.producttoursgeneratecreate with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: commit-draft-live-tour-runs description: Commit draft to live tour. Runs full validation and triggers side effects. hints: readOnly: false destructive: false idempotent: false call: posthog-product-tours.producttourspublishdraftcreate with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.