naftiko: "1.0.0-alpha2" info: label: "Letta API — Projects" description: >- Projects — project-scoped containers for agents and resources. 3 operations. Lead operation: List Projects (Cloud-only). Self-contained Naftiko capability covering one Letta business surface. tags: - Letta - Stateful Agents - Projects created: "2026-05-08" modified: "2026-05-22" binds: - namespace: env keys: LETTA_API_KEY: LETTA_API_KEY capability: consumes: - type: http namespace: "letta-projects" baseUri: "https://api.letta.com" description: "Letta API — Projects business capability. Self-contained, no shared references." authentication: type: bearer token: "{{env.LETTA_API_KEY}}" resources: - name: "projects" path: "/v1/projects" operations: - name: "projects_listprojects" method: GET description: "List Projects (Cloud-only)" inputParameters: - name: "name" in: query type: string required: false description: "name 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: "projects_createproject" method: POST description: "Create Project (Cloud-only)" inputParameters: - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "projects-by-id" path: "/v1/projects/{projectId}" operations: - name: "projects_deleteproject" method: DELETE description: "Delete Project (Cloud-only)" inputParameters: - name: "projectId" in: path type: string required: true description: "projectId parameter" - name: "body" in: body type: object required: true description: "Body" outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "letta-projects-rest" port: 8080 description: "REST adapter for Letta API — Projects. One Spectral-compliant resource per consumed operation." resources: - path: "/v1/projects" name: "projects" description: "REST surface for projects." operations: - method: GET name: "projects_listprojects" description: "List Projects (Cloud-only)" call: "letta-projects.projects_listprojects" with: "name": "rest.name" "offset": "rest.offset" "limit": "rest.limit" outputParameters: - type: object mapping: "$." - method: POST name: "projects_createproject" description: "Create Project (Cloud-only)" call: "letta-projects.projects_createproject" with: "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/projects/{projectId}" name: "projects-by-id" description: "REST surface for projects-by-id." operations: - method: DELETE name: "projects_deleteproject" description: "Delete Project (Cloud-only)" call: "letta-projects.projects_deleteproject" with: "projectId": "rest.projectId" "body": "rest.body" outputParameters: - type: object mapping: "$." - type: mcp namespace: "letta-projects-mcp" port: 9090 transport: http description: "MCP adapter for Letta API — Projects. One verb-noun tool per consumed operation." tools: - name: "list-projects-cloud-only" description: "List Projects (Cloud-only)" hints: readOnly: true destructive: false idempotent: true call: "letta-projects.projects_listprojects" with: "name": "tools.name" "offset": "tools.offset" "limit": "tools.limit" outputParameters: - type: object mapping: "$." - name: "create-project-cloud-only" description: "Create Project (Cloud-only)" hints: readOnly: false destructive: false idempotent: false call: "letta-projects.projects_createproject" with: "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "delete-project-cloud-only" description: "Delete Project (Cloud-only)" hints: readOnly: false destructive: true idempotent: true call: "letta-projects.projects_deleteproject" with: "projectId": "tools.projectId" "body": "tools.body" outputParameters: - type: object mapping: "$."