naftiko: 1.0.0-alpha2 info: label: Bluesky Social API — Sync description: 'Bluesky Social API — Sync. 10 operations. Lead operation: Bluesky This endpoint is part of the atproto repository synchronization APIs.. Self-contained Naftiko capability covering one Bluesky business surface.' tags: - Bluesky - Sync created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: BLUESKY_API_KEY: BLUESKY_API_KEY capability: consumes: - type: http namespace: bluesky-sync baseUri: https://bsky.social/xrpc description: Bluesky Social API — Sync business capability. Self-contained, no shared references. resources: - name: xrpc-com.atproto.sync.getBlob path: /xrpc/com.atproto.sync.getBlob operations: - name: syncgetblob method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the account. required: true - name: cid in: query type: string description: The CID of the blob to fetch required: true - name: xrpc-com.atproto.sync.getBlocks path: /xrpc/com.atproto.sync.getBlocks operations: - name: syncgetblocks method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the repo. required: true - name: cids in: query type: array required: true - name: xrpc-com.atproto.sync.getLatestCommit path: /xrpc/com.atproto.sync.getLatestCommit operations: - name: syncgetlatestcommit method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the repo. required: true - name: xrpc-com.atproto.sync.getRecord path: /xrpc/com.atproto.sync.getRecord operations: - name: syncgetrecord method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the repo. required: true - name: collection in: query type: string required: true - name: rkey in: query type: string description: Record Key required: true - name: xrpc-com.atproto.sync.getRepo path: /xrpc/com.atproto.sync.getRepo operations: - name: syncgetrepo method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the repo. required: true - name: since in: query type: string description: The revision ('rev') of the repo to create a diff from. - name: xrpc-com.atproto.sync.getRepoStatus path: /xrpc/com.atproto.sync.getRepoStatus operations: - name: syncgetrepostatus method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the repo. required: true - name: xrpc-com.atproto.sync.listBlobs path: /xrpc/com.atproto.sync.listBlobs operations: - name: synclistblobs method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: did in: query type: string description: The DID of the repo. required: true - name: since in: query type: string description: Optional revision of the repo to list blobs since. - name: limit in: query type: integer - name: cursor in: query type: string - name: xrpc-com.atproto.sync.listRepos path: /xrpc/com.atproto.sync.listRepos operations: - name: synclistrepos method: GET description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer - name: cursor in: query type: string - name: xrpc-com.atproto.sync.notifyOfUpdate path: /xrpc/com.atproto.sync.notifyOfUpdate operations: - name: syncnotifyofupdate method: POST description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: xrpc-com.atproto.sync.requestCrawl path: /xrpc/com.atproto.sync.requestCrawl operations: - name: syncrequestcrawl method: POST description: Bluesky This endpoint is part of the atproto repository synchronization APIs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.BLUESKY_API_KEY}}' exposes: - type: rest namespace: bluesky-sync-rest port: 8080 description: REST adapter for Bluesky Social API — Sync. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/xrpc/com-atproto-sync-getblob name: xrpc-com-atproto-sync-getblob description: REST surface for xrpc-com.atproto.sync.getBlob. operations: - method: GET name: syncgetblob description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncgetblob with: did: rest.did cid: rest.cid outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-getblocks name: xrpc-com-atproto-sync-getblocks description: REST surface for xrpc-com.atproto.sync.getBlocks. operations: - method: GET name: syncgetblocks description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncgetblocks with: did: rest.did cids: rest.cids outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-getlatestcommit name: xrpc-com-atproto-sync-getlatestcommit description: REST surface for xrpc-com.atproto.sync.getLatestCommit. operations: - method: GET name: syncgetlatestcommit description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncgetlatestcommit with: did: rest.did outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-getrecord name: xrpc-com-atproto-sync-getrecord description: REST surface for xrpc-com.atproto.sync.getRecord. operations: - method: GET name: syncgetrecord description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncgetrecord with: did: rest.did collection: rest.collection rkey: rest.rkey outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-getrepo name: xrpc-com-atproto-sync-getrepo description: REST surface for xrpc-com.atproto.sync.getRepo. operations: - method: GET name: syncgetrepo description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncgetrepo with: did: rest.did since: rest.since outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-getrepostatus name: xrpc-com-atproto-sync-getrepostatus description: REST surface for xrpc-com.atproto.sync.getRepoStatus. operations: - method: GET name: syncgetrepostatus description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncgetrepostatus with: did: rest.did outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-listblobs name: xrpc-com-atproto-sync-listblobs description: REST surface for xrpc-com.atproto.sync.listBlobs. operations: - method: GET name: synclistblobs description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.synclistblobs with: did: rest.did since: rest.since limit: rest.limit cursor: rest.cursor outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-listrepos name: xrpc-com-atproto-sync-listrepos description: REST surface for xrpc-com.atproto.sync.listRepos. operations: - method: GET name: synclistrepos description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.synclistrepos with: limit: rest.limit cursor: rest.cursor outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-notifyofupdate name: xrpc-com-atproto-sync-notifyofupdate description: REST surface for xrpc-com.atproto.sync.notifyOfUpdate. operations: - method: POST name: syncnotifyofupdate description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncnotifyofupdate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/xrpc/com-atproto-sync-requestcrawl name: xrpc-com-atproto-sync-requestcrawl description: REST surface for xrpc-com.atproto.sync.requestCrawl. operations: - method: POST name: syncrequestcrawl description: Bluesky This endpoint is part of the atproto repository synchronization APIs. call: bluesky-sync.syncrequestcrawl with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: bluesky-sync-mcp port: 9090 transport: http description: MCP adapter for Bluesky Social API — Sync. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: bluesky-this-endpoint-is-part description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.syncgetblob with: did: tools.did cid: tools.cid outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-2 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.syncgetblocks with: did: tools.did cids: tools.cids outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-3 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.syncgetlatestcommit with: did: tools.did outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-4 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.syncgetrecord with: did: tools.did collection: tools.collection rkey: tools.rkey outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-5 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.syncgetrepo with: did: tools.did since: tools.since outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-6 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.syncgetrepostatus with: did: tools.did outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-7 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.synclistblobs with: did: tools.did since: tools.since limit: tools.limit cursor: tools.cursor outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-8 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: true destructive: false idempotent: true call: bluesky-sync.synclistrepos with: limit: tools.limit cursor: tools.cursor outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-9 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: false destructive: false idempotent: false call: bluesky-sync.syncnotifyofupdate with: body: tools.body outputParameters: - type: object mapping: $. - name: bluesky-this-endpoint-is-part-10 description: Bluesky This endpoint is part of the atproto repository synchronization APIs. hints: readOnly: false destructive: false idempotent: false call: bluesky-sync.syncrequestcrawl with: body: tools.body outputParameters: - type: object mapping: $.