Bluesky · Capability

Bluesky Social API — Identity

Bluesky Social API — Identity. 6 operations. Lead operation: Bluesky Describe the credentials that should be included in the DID doc of an account that is migrating t.... Self-contained Naftiko capability covering one Bluesky business surface.

Run with Naftiko BlueskyIdentity

What You Can Do

GET
Identitygetrecommendeddidcredentials — Bluesky Describe the credentials that should be included in the DID doc of an account that is migrating t...
/v1/xrpc/com-atproto-identity-getrecommendeddidcredentials
POST
Identityrequestplcoperationsignature — Bluesky Request an email with a code to in order to request a signed PLC operation.
/v1/xrpc/com-atproto-identity-requestplcoperationsignature
GET
Identityresolvehandle — Bluesky Resolves a handle (domain name) to a DID.
/v1/xrpc/com-atproto-identity-resolvehandle
POST
Identitysignplcoperation — Bluesky Signs a PLC operation to update some value(s) in the requesting DID's document.
/v1/xrpc/com-atproto-identity-signplcoperation
POST
Identitysubmitplcoperation — Bluesky Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the id...
/v1/xrpc/com-atproto-identity-submitplcoperation
POST
Identityupdatehandle — Bluesky Updates the current account's handle.
/v1/xrpc/com-atproto-identity-updatehandle

MCP Tools

bluesky-describe-credentials-that-should

Bluesky Describe the credentials that should be included in the DID doc of an account that is migrating t...

read-only idempotent
bluesky-request-email-code-order

Bluesky Request an email with a code to in order to request a signed PLC operation.

bluesky-resolves-handle-domain-name

Bluesky Resolves a handle (domain name) to a DID.

read-only idempotent
bluesky-signs-plc-operation-update

Bluesky Signs a PLC operation to update some value(s) in the requesting DID's document.

bluesky-validates-plc-operation-ensure

Bluesky Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the id...

read-only
bluesky-updates-current-account-s-handle

Bluesky Updates the current account's handle.

Capability Spec

bluesky-identity.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Bluesky Social API — Identity
  description: 'Bluesky Social API — Identity. 6 operations. Lead operation: Bluesky Describe the credentials that should
    be included in the DID doc of an account that is migrating t.... Self-contained Naftiko capability covering one Bluesky
    business surface.'
  tags:
  - Bluesky
  - Identity
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    BLUESKY_API_KEY: BLUESKY_API_KEY
capability:
  consumes:
  - type: http
    namespace: bluesky-identity
    baseUri: https://bsky.social/xrpc
    description: Bluesky Social API — Identity business capability. Self-contained, no shared references.
    resources:
    - name: xrpc-com.atproto.identity.getRecommendedDidCredentials
      path: /xrpc/com.atproto.identity.getRecommendedDidCredentials
      operations:
      - name: identitygetrecommendeddidcredentials
        method: GET
        description: Bluesky Describe the credentials that should be included in the DID doc of an account that is migrating
          t...
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: xrpc-com.atproto.identity.requestPlcOperationSignature
      path: /xrpc/com.atproto.identity.requestPlcOperationSignature
      operations:
      - name: identityrequestplcoperationsignature
        method: POST
        description: Bluesky Request an email with a code to in order to request a signed PLC operation.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: xrpc-com.atproto.identity.resolveHandle
      path: /xrpc/com.atproto.identity.resolveHandle
      operations:
      - name: identityresolvehandle
        method: GET
        description: Bluesky Resolves a handle (domain name) to a DID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: handle
          in: query
          type: string
          description: The handle to resolve.
          required: true
    - name: xrpc-com.atproto.identity.signPlcOperation
      path: /xrpc/com.atproto.identity.signPlcOperation
      operations:
      - name: identitysignplcoperation
        method: POST
        description: Bluesky Signs a PLC operation to update some value(s) in the requesting DID's document.
        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.identity.submitPlcOperation
      path: /xrpc/com.atproto.identity.submitPlcOperation
      operations:
      - name: identitysubmitplcoperation
        method: POST
        description: Bluesky Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the
          id...
        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.identity.updateHandle
      path: /xrpc/com.atproto.identity.updateHandle
      operations:
      - name: identityupdatehandle
        method: POST
        description: Bluesky Updates the current account's handle.
        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-identity-rest
    port: 8080
    description: REST adapter for Bluesky Social API — Identity. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/xrpc/com-atproto-identity-getrecommendeddidcredentials
      name: xrpc-com-atproto-identity-getrecommendeddidcredentials
      description: REST surface for xrpc-com.atproto.identity.getRecommendedDidCredentials.
      operations:
      - method: GET
        name: identitygetrecommendeddidcredentials
        description: Bluesky Describe the credentials that should be included in the DID doc of an account that is migrating
          t...
        call: bluesky-identity.identitygetrecommendeddidcredentials
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/com-atproto-identity-requestplcoperationsignature
      name: xrpc-com-atproto-identity-requestplcoperationsignature
      description: REST surface for xrpc-com.atproto.identity.requestPlcOperationSignature.
      operations:
      - method: POST
        name: identityrequestplcoperationsignature
        description: Bluesky Request an email with a code to in order to request a signed PLC operation.
        call: bluesky-identity.identityrequestplcoperationsignature
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/com-atproto-identity-resolvehandle
      name: xrpc-com-atproto-identity-resolvehandle
      description: REST surface for xrpc-com.atproto.identity.resolveHandle.
      operations:
      - method: GET
        name: identityresolvehandle
        description: Bluesky Resolves a handle (domain name) to a DID.
        call: bluesky-identity.identityresolvehandle
        with:
          handle: rest.handle
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/com-atproto-identity-signplcoperation
      name: xrpc-com-atproto-identity-signplcoperation
      description: REST surface for xrpc-com.atproto.identity.signPlcOperation.
      operations:
      - method: POST
        name: identitysignplcoperation
        description: Bluesky Signs a PLC operation to update some value(s) in the requesting DID's document.
        call: bluesky-identity.identitysignplcoperation
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/com-atproto-identity-submitplcoperation
      name: xrpc-com-atproto-identity-submitplcoperation
      description: REST surface for xrpc-com.atproto.identity.submitPlcOperation.
      operations:
      - method: POST
        name: identitysubmitplcoperation
        description: Bluesky Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the
          id...
        call: bluesky-identity.identitysubmitplcoperation
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/com-atproto-identity-updatehandle
      name: xrpc-com-atproto-identity-updatehandle
      description: REST surface for xrpc-com.atproto.identity.updateHandle.
      operations:
      - method: POST
        name: identityupdatehandle
        description: Bluesky Updates the current account's handle.
        call: bluesky-identity.identityupdatehandle
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: bluesky-identity-mcp
    port: 9090
    transport: http
    description: MCP adapter for Bluesky Social API — Identity. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: bluesky-describe-credentials-that-should
      description: Bluesky Describe the credentials that should be included in the DID doc of an account that is migrating
        t...
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-identity.identitygetrecommendeddidcredentials
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-request-email-code-order
      description: Bluesky Request an email with a code to in order to request a signed PLC operation.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluesky-identity.identityrequestplcoperationsignature
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-resolves-handle-domain-name
      description: Bluesky Resolves a handle (domain name) to a DID.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-identity.identityresolvehandle
      with:
        handle: tools.handle
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-signs-plc-operation-update
      description: Bluesky Signs a PLC operation to update some value(s) in the requesting DID's document.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluesky-identity.identitysignplcoperation
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-validates-plc-operation-ensure
      description: Bluesky Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the
        id...
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: bluesky-identity.identitysubmitplcoperation
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-updates-current-account-s-handle
      description: Bluesky Updates the current account's handle.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluesky-identity.identityupdatehandle
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.