naftiko: 1.0.0-alpha2 info: label: Trello REST API — Cards description: 'Trello REST API — Cards. 16 operations. Lead operation: Create a Card. Self-contained Naftiko capability covering one Trello business surface.' tags: - Trello - Cards created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TRELLO_API_KEY: TRELLO_API_KEY capability: consumes: - type: http namespace: rest-cards baseUri: https://api.trello.com/1 description: Trello REST API — Cards business capability. Self-contained, no shared references. resources: - name: cards path: /cards operations: - name: createcard method: POST description: Create a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: The name for the card. - name: desc in: query type: string description: The description for the card. - name: pos in: query type: string description: The position of the card in the list. - name: due in: query type: string description: The due date for the card. - name: start in: query type: string description: The start date for the card. - name: dueComplete in: query type: boolean description: Whether the due date is complete. - name: idList in: query type: string description: The ID of the list the card should be created in. required: true - name: idMembers in: query type: string description: Comma-separated list of member IDs to add to the card. - name: idLabels in: query type: string description: Comma-separated list of label IDs to add to the card. - name: urlSource in: query type: string description: A URL to attach to the card. - name: idCardSource in: query type: string description: The ID of a card to copy into the new card. - name: cards-id path: /cards/{id} operations: - name: getcard method: GET description: Get a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fields in: query type: string description: A comma-separated list of card fields to return. - name: actions in: query type: string description: A comma-separated list of action types to include. - name: attachments in: query type: string description: Whether to include attachments. - name: members in: query type: boolean description: Whether to include members. - name: checkItemStates in: query type: boolean description: Whether to include check item states. - name: checklists in: query type: string description: Whether to include checklists. - name: updatecard method: PUT description: Update a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: The new name for the card. - name: desc in: query type: string description: The new description for the card. - name: closed in: query type: boolean description: Whether the card is archived. - name: idMembers in: query type: string description: Comma-separated list of member IDs. - name: idLabels in: query type: string description: Comma-separated list of label IDs. - name: idList in: query type: string description: The ID of the list to move the card to. - name: idBoard in: query type: string description: The ID of the board to move the card to. - name: pos in: query type: string description: The new position of the card. - name: due in: query type: string description: The new due date for the card. - name: start in: query type: string description: The start date for the card. - name: dueComplete in: query type: boolean description: Whether the due date is complete. - name: subscribed in: query type: boolean description: Whether the authenticated member is subscribed to the card. - name: cover in: query type: string description: JSON string for the card cover. - name: deletecard method: DELETE description: Delete a Card outputRawFormat: json outputParameters: - name: result type: object value: $. - name: cards-id-actions path: /cards/{id}/actions operations: - name: getcardactions method: GET description: Get Actions on a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter in: query type: string description: A comma-separated list of action types to filter by. - name: cards-id-actions-comments path: /cards/{id}/actions/comments operations: - name: createcardcomment method: POST description: Add a Comment to a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: text in: query type: string description: The comment text. required: true - name: cards-id-attachments path: /cards/{id}/attachments operations: - name: getcardattachments method: GET description: Get Attachments on a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: fields in: query type: string description: A comma-separated list of attachment fields to return. - name: createcardattachment method: POST description: Create an Attachment on a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: The name for the attachment. - name: mimeType in: query type: string description: The MIME type of the attachment. - name: url in: query type: string description: A URL to attach to the card. - name: cards-id-checklists path: /cards/{id}/checklists operations: - name: getcardchecklists method: GET description: Get Checklists on a Card outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createcardchecklist method: POST description: Create a Checklist on a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: The name for the checklist. - name: idChecklistSource in: query type: string description: The ID of a checklist to copy into the new checklist. - name: pos in: query type: string description: The position of the checklist on the card. - name: cards-id-labels path: /cards/{id}/labels operations: - name: addcardlabel method: POST description: Add a Label to a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: value in: query type: string description: The ID of the label to add. required: true - name: cards-id-labels-idLabel path: /cards/{id}/labels/{idLabel} operations: - name: removecardlabel method: DELETE description: Remove a Label from a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: idLabel in: path type: string description: The ID of the label to remove. required: true - name: cards-id-members path: /cards/{id}/members operations: - name: addcardmember method: POST description: Add a Member to a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: value in: query type: string description: The ID of the member to add. required: true - name: cards-id-members-idMember path: /cards/{id}/members/{idMember} operations: - name: removecardmember method: DELETE description: Remove a Member from a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: idMember in: path type: string description: The ID of the member to remove. required: true - name: cards-id-stickers path: /cards/{id}/stickers operations: - name: getcardstickers method: GET description: Get Stickers on a Card outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addcardsticker method: POST description: Add a Sticker to a Card outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: image in: query type: string description: The sticker image identifier. required: true - name: top in: query type: number description: The top position of the sticker as a percentage. required: true - name: left in: query type: number description: The left position of the sticker as a percentage. required: true - name: zIndex in: query type: integer description: The z-index of the sticker. required: true - name: rotate in: query type: number description: The rotation of the sticker in degrees. authentication: type: apikey key: key value: '{{env.TRELLO_API_KEY}}' placement: query exposes: - type: rest namespace: rest-cards-rest port: 8080 description: REST adapter for Trello REST API — Cards. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/cards name: cards description: REST surface for cards. operations: - method: POST name: createcard description: Create a Card call: rest-cards.createcard with: name: rest.name desc: rest.desc pos: rest.pos due: rest.due start: rest.start dueComplete: rest.dueComplete idList: rest.idList idMembers: rest.idMembers idLabels: rest.idLabels urlSource: rest.urlSource idCardSource: rest.idCardSource outputParameters: - type: object mapping: $. - path: /v1/cards/{id} name: cards-id description: REST surface for cards-id. operations: - method: GET name: getcard description: Get a Card call: rest-cards.getcard with: fields: rest.fields actions: rest.actions attachments: rest.attachments members: rest.members checkItemStates: rest.checkItemStates checklists: rest.checklists outputParameters: - type: object mapping: $. - method: PUT name: updatecard description: Update a Card call: rest-cards.updatecard with: name: rest.name desc: rest.desc closed: rest.closed idMembers: rest.idMembers idLabels: rest.idLabels idList: rest.idList idBoard: rest.idBoard pos: rest.pos due: rest.due start: rest.start dueComplete: rest.dueComplete subscribed: rest.subscribed cover: rest.cover outputParameters: - type: object mapping: $. - method: DELETE name: deletecard description: Delete a Card call: rest-cards.deletecard outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/actions name: cards-id-actions description: REST surface for cards-id-actions. operations: - method: GET name: getcardactions description: Get Actions on a Card call: rest-cards.getcardactions with: filter: rest.filter outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/actions/comments name: cards-id-actions-comments description: REST surface for cards-id-actions-comments. operations: - method: POST name: createcardcomment description: Add a Comment to a Card call: rest-cards.createcardcomment with: text: rest.text outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/attachments name: cards-id-attachments description: REST surface for cards-id-attachments. operations: - method: GET name: getcardattachments description: Get Attachments on a Card call: rest-cards.getcardattachments with: fields: rest.fields outputParameters: - type: object mapping: $. - method: POST name: createcardattachment description: Create an Attachment on a Card call: rest-cards.createcardattachment with: name: rest.name mimeType: rest.mimeType url: rest.url outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/checklists name: cards-id-checklists description: REST surface for cards-id-checklists. operations: - method: GET name: getcardchecklists description: Get Checklists on a Card call: rest-cards.getcardchecklists outputParameters: - type: object mapping: $. - method: POST name: createcardchecklist description: Create a Checklist on a Card call: rest-cards.createcardchecklist with: name: rest.name idChecklistSource: rest.idChecklistSource pos: rest.pos outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/labels name: cards-id-labels description: REST surface for cards-id-labels. operations: - method: POST name: addcardlabel description: Add a Label to a Card call: rest-cards.addcardlabel with: value: rest.value outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/labels/{idlabel} name: cards-id-labels-idlabel description: REST surface for cards-id-labels-idLabel. operations: - method: DELETE name: removecardlabel description: Remove a Label from a Card call: rest-cards.removecardlabel with: idLabel: rest.idLabel outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/members name: cards-id-members description: REST surface for cards-id-members. operations: - method: POST name: addcardmember description: Add a Member to a Card call: rest-cards.addcardmember with: value: rest.value outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/members/{idmember} name: cards-id-members-idmember description: REST surface for cards-id-members-idMember. operations: - method: DELETE name: removecardmember description: Remove a Member from a Card call: rest-cards.removecardmember with: idMember: rest.idMember outputParameters: - type: object mapping: $. - path: /v1/cards/{id}/stickers name: cards-id-stickers description: REST surface for cards-id-stickers. operations: - method: GET name: getcardstickers description: Get Stickers on a Card call: rest-cards.getcardstickers outputParameters: - type: object mapping: $. - method: POST name: addcardsticker description: Add a Sticker to a Card call: rest-cards.addcardsticker with: image: rest.image top: rest.top left: rest.left zIndex: rest.zIndex rotate: rest.rotate outputParameters: - type: object mapping: $. - type: mcp namespace: rest-cards-mcp port: 9090 transport: http description: MCP adapter for Trello REST API — Cards. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-card description: Create a Card hints: readOnly: false destructive: false idempotent: false call: rest-cards.createcard with: name: tools.name desc: tools.desc pos: tools.pos due: tools.due start: tools.start dueComplete: tools.dueComplete idList: tools.idList idMembers: tools.idMembers idLabels: tools.idLabels urlSource: tools.urlSource idCardSource: tools.idCardSource outputParameters: - type: object mapping: $. - name: get-card description: Get a Card hints: readOnly: true destructive: false idempotent: true call: rest-cards.getcard with: fields: tools.fields actions: tools.actions attachments: tools.attachments members: tools.members checkItemStates: tools.checkItemStates checklists: tools.checklists outputParameters: - type: object mapping: $. - name: update-card description: Update a Card hints: readOnly: false destructive: false idempotent: true call: rest-cards.updatecard with: name: tools.name desc: tools.desc closed: tools.closed idMembers: tools.idMembers idLabels: tools.idLabels idList: tools.idList idBoard: tools.idBoard pos: tools.pos due: tools.due start: tools.start dueComplete: tools.dueComplete subscribed: tools.subscribed cover: tools.cover outputParameters: - type: object mapping: $. - name: delete-card description: Delete a Card hints: readOnly: false destructive: true idempotent: true call: rest-cards.deletecard outputParameters: - type: object mapping: $. - name: get-actions-card description: Get Actions on a Card hints: readOnly: true destructive: false idempotent: true call: rest-cards.getcardactions with: filter: tools.filter outputParameters: - type: object mapping: $. - name: add-comment-card description: Add a Comment to a Card hints: readOnly: false destructive: false idempotent: false call: rest-cards.createcardcomment with: text: tools.text outputParameters: - type: object mapping: $. - name: get-attachments-card description: Get Attachments on a Card hints: readOnly: true destructive: false idempotent: true call: rest-cards.getcardattachments with: fields: tools.fields outputParameters: - type: object mapping: $. - name: create-attachment-card description: Create an Attachment on a Card hints: readOnly: false destructive: false idempotent: false call: rest-cards.createcardattachment with: name: tools.name mimeType: tools.mimeType url: tools.url outputParameters: - type: object mapping: $. - name: get-checklists-card description: Get Checklists on a Card hints: readOnly: true destructive: false idempotent: true call: rest-cards.getcardchecklists outputParameters: - type: object mapping: $. - name: create-checklist-card description: Create a Checklist on a Card hints: readOnly: true destructive: false idempotent: false call: rest-cards.createcardchecklist with: name: tools.name idChecklistSource: tools.idChecklistSource pos: tools.pos outputParameters: - type: object mapping: $. - name: add-label-card description: Add a Label to a Card hints: readOnly: false destructive: false idempotent: false call: rest-cards.addcardlabel with: value: tools.value outputParameters: - type: object mapping: $. - name: remove-label-card description: Remove a Label from a Card hints: readOnly: false destructive: true idempotent: true call: rest-cards.removecardlabel with: idLabel: tools.idLabel outputParameters: - type: object mapping: $. - name: add-member-card description: Add a Member to a Card hints: readOnly: false destructive: false idempotent: false call: rest-cards.addcardmember with: value: tools.value outputParameters: - type: object mapping: $. - name: remove-member-card description: Remove a Member from a Card hints: readOnly: false destructive: true idempotent: true call: rest-cards.removecardmember with: idMember: tools.idMember outputParameters: - type: object mapping: $. - name: get-stickers-card description: Get Stickers on a Card hints: readOnly: true destructive: false idempotent: true call: rest-cards.getcardstickers outputParameters: - type: object mapping: $. - name: add-sticker-card description: Add a Sticker to a Card hints: readOnly: false destructive: false idempotent: false call: rest-cards.addcardsticker with: image: tools.image top: tools.top left: tools.left zIndex: tools.zIndex rotate: tools.rotate outputParameters: - type: object mapping: $.