naftiko: "1.0.0-alpha2" info: label: "Letta API — Pipelines" description: >- Pipelines — composable agent pipelines. 10 operations. Lead operation: Create Pipeline. Self-contained Naftiko capability covering one Letta business surface. tags: - Letta - Stateful Agents - Pipelines created: "2026-05-08" modified: "2026-05-22" binds: - namespace: env keys: LETTA_API_KEY: LETTA_API_KEY capability: consumes: - type: http namespace: "letta-pipelines" baseUri: "https://api.letta.com" description: "Letta API — Pipelines business capability. Self-contained, no shared references." authentication: type: bearer token: "{{env.LETTA_API_KEY}}" resources: - name: "pipelines" path: "/v1/pipelines" operations: - name: "pipelines_createpipeline" method: POST description: "Create Pipeline" inputParameters: - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines_listpipelines" method: GET description: "List Pipelines" inputParameters: - name: "search" in: query type: string required: false description: "search parameter" - name: "integration_type" in: query type: string required: false description: "integration_type parameter" - name: "integration_id" in: query type: string required: false description: "integration_id parameter" - name: "offset" in: query type: string required: false description: "offset parameter" - name: "limit" in: query type: string required: false description: "limit parameter" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines-count" path: "/v1/pipelines/count" operations: - name: "pipelines_countpipelines" method: GET description: "Count Pipelines" inputParameters: - name: "search" in: query type: string required: false description: "search parameter" - name: "integration_type" in: query type: string required: false description: "integration_type parameter" - name: "integration_id" in: query type: string required: false description: "integration_id parameter" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines-by-id" path: "/v1/pipelines/{pipeline_id}" operations: - name: "pipelines_getpipeline" method: GET description: "Get Pipeline" inputParameters: - name: "pipeline_id" in: path type: string required: true description: "pipeline_id parameter" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines_updatepipeline" method: PATCH description: "Update Pipeline" inputParameters: - name: "pipeline_id" in: path type: string required: true description: "pipeline_id parameter" - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines_deletepipeline" method: DELETE description: "Delete Pipeline" inputParameters: - name: "pipeline_id" in: path type: string required: true description: "pipeline_id parameter" - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines-by-id-config" path: "/v1/pipelines/{pipeline_id}/config" operations: - name: "pipelines_updatepipelineproducerconfig" method: PATCH description: "Update Pipeline Producer Config" inputParameters: - name: "pipeline_id" in: path type: string required: true description: "pipeline_id parameter" - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines-preview" path: "/v1/pipelines/preview" operations: - name: "pipelines_previewpipeline" method: POST description: "Preview Pipeline" inputParameters: - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines-by-id-sync" path: "/v1/pipelines/{pipeline_id}/sync" operations: - name: "pipelines_syncpipeline" method: POST description: "Sync Pipeline" inputParameters: - name: "pipeline_id" in: path type: string required: true description: "pipeline_id parameter" - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "pipelines-by-id-sync-history" path: "/v1/pipelines/{pipeline_id}/sync/history" operations: - name: "pipelines_listpipelinesynchistory" method: GET description: "List Pipeline Sync History" inputParameters: - name: "pipeline_id" in: path type: string required: true description: "pipeline_id parameter" outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "letta-pipelines-rest" port: 8080 description: "REST adapter for Letta API — Pipelines. One Spectral-compliant resource per consumed operation." resources: - path: "/v1/pipelines" name: "pipelines" description: "REST surface for pipelines." operations: - method: POST name: "pipelines_createpipeline" description: "Create Pipeline" call: "letta-pipelines.pipelines_createpipeline" with: "body": "rest.body" outputParameters: - type: object mapping: "$." - method: GET name: "pipelines_listpipelines" description: "List Pipelines" call: "letta-pipelines.pipelines_listpipelines" with: "search": "rest.search" "integration_type": "rest.integration_type" "integration_id": "rest.integration_id" "offset": "rest.offset" "limit": "rest.limit" outputParameters: - type: object mapping: "$." - path: "/v1/pipelines/count" name: "pipelines-count" description: "REST surface for pipelines-count." operations: - method: GET name: "pipelines_countpipelines" description: "Count Pipelines" call: "letta-pipelines.pipelines_countpipelines" with: "search": "rest.search" "integration_type": "rest.integration_type" "integration_id": "rest.integration_id" outputParameters: - type: object mapping: "$." - path: "/v1/pipelines/{pipeline-id}" name: "pipelines-by-id" description: "REST surface for pipelines-by-id." operations: - method: GET name: "pipelines_getpipeline" description: "Get Pipeline" call: "letta-pipelines.pipelines_getpipeline" with: "pipeline_id": "rest.pipeline_id" outputParameters: - type: object mapping: "$." - method: PATCH name: "pipelines_updatepipeline" description: "Update Pipeline" call: "letta-pipelines.pipelines_updatepipeline" with: "pipeline_id": "rest.pipeline_id" "body": "rest.body" outputParameters: - type: object mapping: "$." - method: DELETE name: "pipelines_deletepipeline" description: "Delete Pipeline" call: "letta-pipelines.pipelines_deletepipeline" with: "pipeline_id": "rest.pipeline_id" "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/pipelines/{pipeline-id}/config" name: "pipelines-by-id-config" description: "REST surface for pipelines-by-id-config." operations: - method: PATCH name: "pipelines_updatepipelineproducerconfig" description: "Update Pipeline Producer Config" call: "letta-pipelines.pipelines_updatepipelineproducerconfig" with: "pipeline_id": "rest.pipeline_id" "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/pipelines/preview" name: "pipelines-preview" description: "REST surface for pipelines-preview." operations: - method: POST name: "pipelines_previewpipeline" description: "Preview Pipeline" call: "letta-pipelines.pipelines_previewpipeline" with: "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/pipelines/{pipeline-id}/sync" name: "pipelines-by-id-sync" description: "REST surface for pipelines-by-id-sync." operations: - method: POST name: "pipelines_syncpipeline" description: "Sync Pipeline" call: "letta-pipelines.pipelines_syncpipeline" with: "pipeline_id": "rest.pipeline_id" "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/pipelines/{pipeline-id}/sync/history" name: "pipelines-by-id-sync-history" description: "REST surface for pipelines-by-id-sync-history." operations: - method: GET name: "pipelines_listpipelinesynchistory" description: "List Pipeline Sync History" call: "letta-pipelines.pipelines_listpipelinesynchistory" with: "pipeline_id": "rest.pipeline_id" outputParameters: - type: object mapping: "$." - type: mcp namespace: "letta-pipelines-mcp" port: 9090 transport: http description: "MCP adapter for Letta API — Pipelines. One verb-noun tool per consumed operation." tools: - name: "create-pipeline" description: "Create Pipeline" hints: readOnly: false destructive: false idempotent: false call: "letta-pipelines.pipelines_createpipeline" with: "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "list-pipelines" description: "List Pipelines" hints: readOnly: true destructive: false idempotent: true call: "letta-pipelines.pipelines_listpipelines" with: "search": "tools.search" "integration_type": "tools.integration_type" "integration_id": "tools.integration_id" "offset": "tools.offset" "limit": "tools.limit" outputParameters: - type: object mapping: "$." - name: "count-pipelines" description: "Count Pipelines" hints: readOnly: true destructive: false idempotent: true call: "letta-pipelines.pipelines_countpipelines" with: "search": "tools.search" "integration_type": "tools.integration_type" "integration_id": "tools.integration_id" outputParameters: - type: object mapping: "$." - name: "get-pipeline" description: "Get Pipeline" hints: readOnly: true destructive: false idempotent: true call: "letta-pipelines.pipelines_getpipeline" with: "pipeline_id": "tools.pipeline_id" outputParameters: - type: object mapping: "$." - name: "update-pipeline" description: "Update Pipeline" hints: readOnly: false destructive: false idempotent: true call: "letta-pipelines.pipelines_updatepipeline" with: "pipeline_id": "tools.pipeline_id" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "delete-pipeline" description: "Delete Pipeline" hints: readOnly: false destructive: true idempotent: true call: "letta-pipelines.pipelines_deletepipeline" with: "pipeline_id": "tools.pipeline_id" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "update-pipeline-producer-config" description: "Update Pipeline Producer Config" hints: readOnly: false destructive: false idempotent: true call: "letta-pipelines.pipelines_updatepipelineproducerconfig" with: "pipeline_id": "tools.pipeline_id" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "preview-pipeline" description: "Preview Pipeline" hints: readOnly: false destructive: false idempotent: false call: "letta-pipelines.pipelines_previewpipeline" with: "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "sync-pipeline" description: "Sync Pipeline" hints: readOnly: false destructive: false idempotent: false call: "letta-pipelines.pipelines_syncpipeline" with: "pipeline_id": "tools.pipeline_id" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "list-pipeline-sync-history" description: "List Pipeline Sync History" hints: readOnly: true destructive: false idempotent: true call: "letta-pipelines.pipelines_listpipelinesynchistory" with: "pipeline_id": "tools.pipeline_id" outputParameters: - type: object mapping: "$."