Bluesky · Capability

Bluesky Social API — Ozone Moderation

Bluesky Social API — Ozone Moderation. 9 operations. Lead operation: Bluesky Take a moderation action on an actor.. Self-contained Naftiko capability covering one Bluesky business surface.

Run with Naftiko BlueskyOzone Moderation

What You Can Do

POST
Ozonemoderationemitevent — Bluesky Take a moderation action on an actor.
/v1/xrpc/tools-ozone-moderation-emitevent
GET
Ozonemoderationgetevent — Bluesky Get details about a moderation event.
/v1/xrpc/tools-ozone-moderation-getevent
GET
Ozonemoderationgetrecord — Bluesky Get details about a record.
/v1/xrpc/tools-ozone-moderation-getrecord
GET
Ozonemoderationgetrecords — Bluesky Get details about some records.
/v1/xrpc/tools-ozone-moderation-getrecords
GET
Ozonemoderationgetrepo — Bluesky Get details about a repository.
/v1/xrpc/tools-ozone-moderation-getrepo
GET
Ozonemoderationgetrepos — Bluesky Get details about some repositories.
/v1/xrpc/tools-ozone-moderation-getrepos
GET
Ozonemoderationqueryevents — Bluesky List moderation events related to a subject.
/v1/xrpc/tools-ozone-moderation-queryevents
GET
Ozonemoderationquerystatuses — Bluesky View moderation statuses of subjects (record or repo).
/v1/xrpc/tools-ozone-moderation-querystatuses
GET
Ozonemoderationsearchrepos — Bluesky Find repositories based on a search term.
/v1/xrpc/tools-ozone-moderation-searchrepos

MCP Tools

bluesky-take-moderation-action-actor

Bluesky Take a moderation action on an actor.

bluesky-get-details-about-moderation

Bluesky Get details about a moderation event.

read-only idempotent
bluesky-get-details-about-record

Bluesky Get details about a record.

read-only idempotent
bluesky-get-details-about-some

Bluesky Get details about some records.

read-only idempotent
bluesky-get-details-about-repository

Bluesky Get details about a repository.

read-only idempotent
bluesky-get-details-about-some-2

Bluesky Get details about some repositories.

read-only idempotent
bluesky-list-moderation-events-related

Bluesky List moderation events related to a subject.

read-only idempotent
bluesky-view-moderation-statuses-subjects

Bluesky View moderation statuses of subjects (record or repo).

read-only idempotent
bluesky-find-repositories-based-search

Bluesky Find repositories based on a search term.

read-only idempotent

Capability Spec

bluesky-ozone-moderation.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Bluesky Social API — Ozone Moderation
  description: 'Bluesky Social API — Ozone Moderation. 9 operations. Lead operation: Bluesky Take a moderation action on an
    actor.. Self-contained Naftiko capability covering one Bluesky business surface.'
  tags:
  - Bluesky
  - Ozone Moderation
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    BLUESKY_API_KEY: BLUESKY_API_KEY
capability:
  consumes:
  - type: http
    namespace: bluesky-ozone-moderation
    baseUri: https://bsky.social/xrpc
    description: Bluesky Social API — Ozone Moderation business capability. Self-contained, no shared references.
    resources:
    - name: xrpc-tools.ozone.moderation.emitEvent
      path: /xrpc/tools.ozone.moderation.emitEvent
      operations:
      - name: ozonemoderationemitevent
        method: POST
        description: Bluesky Take a moderation action on an actor.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: xrpc-tools.ozone.moderation.getEvent
      path: /xrpc/tools.ozone.moderation.getEvent
      operations:
      - name: ozonemoderationgetevent
        method: GET
        description: Bluesky Get details about a moderation event.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: query
          type: integer
          required: true
    - name: xrpc-tools.ozone.moderation.getRecord
      path: /xrpc/tools.ozone.moderation.getRecord
      operations:
      - name: ozonemoderationgetrecord
        method: GET
        description: Bluesky Get details about a record.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uri
          in: query
          type: string
          required: true
        - name: cid
          in: query
          type: string
    - name: xrpc-tools.ozone.moderation.getRecords
      path: /xrpc/tools.ozone.moderation.getRecords
      operations:
      - name: ozonemoderationgetrecords
        method: GET
        description: Bluesky Get details about some records.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uris
          in: query
          type: array
          required: true
    - name: xrpc-tools.ozone.moderation.getRepo
      path: /xrpc/tools.ozone.moderation.getRepo
      operations:
      - name: ozonemoderationgetrepo
        method: GET
        description: Bluesky Get details about a repository.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: did
          in: query
          type: string
          required: true
    - name: xrpc-tools.ozone.moderation.getRepos
      path: /xrpc/tools.ozone.moderation.getRepos
      operations:
      - name: ozonemoderationgetrepos
        method: GET
        description: Bluesky Get details about some repositories.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dids
          in: query
          type: array
          required: true
    - name: xrpc-tools.ozone.moderation.queryEvents
      path: /xrpc/tools.ozone.moderation.queryEvents
      operations:
      - name: ozonemoderationqueryevents
        method: GET
        description: Bluesky List moderation events related to a subject.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: types
          in: query
          type: array
          description: The types of events (fully qualified string in the format of tools.ozone.moderation.defs#modEvent<name>)
            to filter by. If not specified, all events are returned
        - name: createdBy
          in: query
          type: string
        - name: sortDirection
          in: query
          type: string
          description: Sort direction for the events. Defaults to descending order of created at timestamp.
        - name: createdAfter
          in: query
          type: string
          description: Retrieve events created after a given timestamp
        - name: createdBefore
          in: query
          type: string
          description: Retrieve events created before a given timestamp
        - name: subject
          in: query
          type: string
        - name: collections
          in: query
          type: array
          description: If specified, only events where the subject belongs to the given collections will be returned. When
            subjectType is set to 'account', this will be ignored.
        - name: subjectType
          in: query
          type: string
          description: If specified, only events where the subject is of the given type (account or record) will be returned.
            When this is set to 'account' the 'collections' parameter
        - name: includeAllUserRecords
          in: query
          type: boolean
          description: If true, events on all record types (posts, lists, profile etc.) or records from given 'collections'
            param, owned by the did are returned.
        - name: limit
          in: query
          type: integer
        - name: hasComment
          in: query
          type: boolean
          description: If true, only events with comments are returned
        - name: comment
          in: query
          type: string
          description: If specified, only events with comments containing the keyword are returned
        - name: addedLabels
          in: query
          type: array
          description: If specified, only events where all of these labels were added are returned
        - name: removedLabels
          in: query
          type: array
          description: If specified, only events where all of these labels were removed are returned
        - name: addedTags
          in: query
          type: array
          description: If specified, only events where all of these tags were added are returned
        - name: removedTags
          in: query
          type: array
          description: If specified, only events where all of these tags were removed are returned
        - name: reportTypes
          in: query
          type: array
        - name: cursor
          in: query
          type: string
    - name: xrpc-tools.ozone.moderation.queryStatuses
      path: /xrpc/tools.ozone.moderation.queryStatuses
      operations:
      - name: ozonemoderationquerystatuses
        method: GET
        description: Bluesky View moderation statuses of subjects (record or repo).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: includeAllUserRecords
          in: query
          type: boolean
          description: All subjects, or subjects from given 'collections' param, belonging to the account specified in the
            'subject' param will be returned.
        - name: subject
          in: query
          type: string
          description: The subject to get the status for.
        - name: comment
          in: query
          type: string
          description: Search subjects by keyword from comments
        - name: reportedAfter
          in: query
          type: string
          description: Search subjects reported after a given timestamp
        - name: reportedBefore
          in: query
          type: string
          description: Search subjects reported before a given timestamp
        - name: reviewedAfter
          in: query
          type: string
          description: Search subjects reviewed after a given timestamp
        - name: hostingDeletedAfter
          in: query
          type: string
          description: Search subjects where the associated record/account was deleted after a given timestamp
        - name: hostingDeletedBefore
          in: query
          type: string
          description: Search subjects where the associated record/account was deleted before a given timestamp
        - name: hostingUpdatedAfter
          in: query
          type: string
          description: Search subjects where the associated record/account was updated after a given timestamp
        - name: hostingUpdatedBefore
          in: query
          type: string
          description: Search subjects where the associated record/account was updated before a given timestamp
        - name: hostingStatuses
          in: query
          type: array
          description: Search subjects by the status of the associated record/account
        - name: reviewedBefore
          in: query
          type: string
          description: Search subjects reviewed before a given timestamp
        - name: includeMuted
          in: query
          type: boolean
          description: By default, we don't include muted subjects in the results. Set this to true to include them.
        - name: onlyMuted
          in: query
          type: boolean
          description: When set to true, only muted subjects and reporters will be returned.
        - name: reviewState
          in: query
          type: string
          description: Specify when fetching subjects in a certain state
        - name: ignoreSubjects
          in: query
          type: array
        - name: lastReviewedBy
          in: query
          type: string
          description: Get all subject statuses that were reviewed by a specific moderator
        - name: sortField
          in: query
          type: string
        - name: sortDirection
          in: query
          type: string
        - name: takendown
          in: query
          type: boolean
          description: Get subjects that were taken down
        - name: appealed
          in: query
          type: boolean
          description: Get subjects in unresolved appealed status
        - name: limit
          in: query
          type: integer
        - name: tags
          in: query
          type: array
        - name: excludeTags
          in: query
          type: array
        - name: cursor
          in: query
          type: string
        - name: collections
          in: query
          type: array
          description: If specified, subjects belonging to the given collections will be returned. When subjectType is set
            to 'account', this will be ignored.
        - name: subjectType
          in: query
          type: string
          description: If specified, subjects of the given type (account or record) will be returned. When this is set to
            'account' the 'collections' parameter will be ignored. When i
    - name: xrpc-tools.ozone.moderation.searchRepos
      path: /xrpc/tools.ozone.moderation.searchRepos
      operations:
      - name: ozonemoderationsearchrepos
        method: GET
        description: Bluesky Find repositories based on a search term.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: q
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        - name: cursor
          in: query
          type: string
    authentication:
      type: bearer
      token: '{{env.BLUESKY_API_KEY}}'
  exposes:
  - type: rest
    namespace: bluesky-ozone-moderation-rest
    port: 8080
    description: REST adapter for Bluesky Social API — Ozone Moderation. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/xrpc/tools-ozone-moderation-emitevent
      name: xrpc-tools-ozone-moderation-emitevent
      description: REST surface for xrpc-tools.ozone.moderation.emitEvent.
      operations:
      - method: POST
        name: ozonemoderationemitevent
        description: Bluesky Take a moderation action on an actor.
        call: bluesky-ozone-moderation.ozonemoderationemitevent
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-getevent
      name: xrpc-tools-ozone-moderation-getevent
      description: REST surface for xrpc-tools.ozone.moderation.getEvent.
      operations:
      - method: GET
        name: ozonemoderationgetevent
        description: Bluesky Get details about a moderation event.
        call: bluesky-ozone-moderation.ozonemoderationgetevent
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-getrecord
      name: xrpc-tools-ozone-moderation-getrecord
      description: REST surface for xrpc-tools.ozone.moderation.getRecord.
      operations:
      - method: GET
        name: ozonemoderationgetrecord
        description: Bluesky Get details about a record.
        call: bluesky-ozone-moderation.ozonemoderationgetrecord
        with:
          uri: rest.uri
          cid: rest.cid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-getrecords
      name: xrpc-tools-ozone-moderation-getrecords
      description: REST surface for xrpc-tools.ozone.moderation.getRecords.
      operations:
      - method: GET
        name: ozonemoderationgetrecords
        description: Bluesky Get details about some records.
        call: bluesky-ozone-moderation.ozonemoderationgetrecords
        with:
          uris: rest.uris
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-getrepo
      name: xrpc-tools-ozone-moderation-getrepo
      description: REST surface for xrpc-tools.ozone.moderation.getRepo.
      operations:
      - method: GET
        name: ozonemoderationgetrepo
        description: Bluesky Get details about a repository.
        call: bluesky-ozone-moderation.ozonemoderationgetrepo
        with:
          did: rest.did
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-getrepos
      name: xrpc-tools-ozone-moderation-getrepos
      description: REST surface for xrpc-tools.ozone.moderation.getRepos.
      operations:
      - method: GET
        name: ozonemoderationgetrepos
        description: Bluesky Get details about some repositories.
        call: bluesky-ozone-moderation.ozonemoderationgetrepos
        with:
          dids: rest.dids
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-queryevents
      name: xrpc-tools-ozone-moderation-queryevents
      description: REST surface for xrpc-tools.ozone.moderation.queryEvents.
      operations:
      - method: GET
        name: ozonemoderationqueryevents
        description: Bluesky List moderation events related to a subject.
        call: bluesky-ozone-moderation.ozonemoderationqueryevents
        with:
          types: rest.types
          createdBy: rest.createdBy
          sortDirection: rest.sortDirection
          createdAfter: rest.createdAfter
          createdBefore: rest.createdBefore
          subject: rest.subject
          collections: rest.collections
          subjectType: rest.subjectType
          includeAllUserRecords: rest.includeAllUserRecords
          limit: rest.limit
          hasComment: rest.hasComment
          comment: rest.comment
          addedLabels: rest.addedLabels
          removedLabels: rest.removedLabels
          addedTags: rest.addedTags
          removedTags: rest.removedTags
          reportTypes: rest.reportTypes
          cursor: rest.cursor
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-querystatuses
      name: xrpc-tools-ozone-moderation-querystatuses
      description: REST surface for xrpc-tools.ozone.moderation.queryStatuses.
      operations:
      - method: GET
        name: ozonemoderationquerystatuses
        description: Bluesky View moderation statuses of subjects (record or repo).
        call: bluesky-ozone-moderation.ozonemoderationquerystatuses
        with:
          includeAllUserRecords: rest.includeAllUserRecords
          subject: rest.subject
          comment: rest.comment
          reportedAfter: rest.reportedAfter
          reportedBefore: rest.reportedBefore
          reviewedAfter: rest.reviewedAfter
          hostingDeletedAfter: rest.hostingDeletedAfter
          hostingDeletedBefore: rest.hostingDeletedBefore
          hostingUpdatedAfter: rest.hostingUpdatedAfter
          hostingUpdatedBefore: rest.hostingUpdatedBefore
          hostingStatuses: rest.hostingStatuses
          reviewedBefore: rest.reviewedBefore
          includeMuted: rest.includeMuted
          onlyMuted: rest.onlyMuted
          reviewState: rest.reviewState
          ignoreSubjects: rest.ignoreSubjects
          lastReviewedBy: rest.lastReviewedBy
          sortField: rest.sortField
          sortDirection: rest.sortDirection
          takendown: rest.takendown
          appealed: rest.appealed
          limit: rest.limit
          tags: rest.tags
          excludeTags: rest.excludeTags
          cursor: rest.cursor
          collections: rest.collections
          subjectType: rest.subjectType
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/xrpc/tools-ozone-moderation-searchrepos
      name: xrpc-tools-ozone-moderation-searchrepos
      description: REST surface for xrpc-tools.ozone.moderation.searchRepos.
      operations:
      - method: GET
        name: ozonemoderationsearchrepos
        description: Bluesky Find repositories based on a search term.
        call: bluesky-ozone-moderation.ozonemoderationsearchrepos
        with:
          q: rest.q
          limit: rest.limit
          cursor: rest.cursor
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: bluesky-ozone-moderation-mcp
    port: 9090
    transport: http
    description: MCP adapter for Bluesky Social API — Ozone Moderation. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: bluesky-take-moderation-action-actor
      description: Bluesky Take a moderation action on an actor.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: bluesky-ozone-moderation.ozonemoderationemitevent
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-get-details-about-moderation
      description: Bluesky Get details about a moderation event.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationgetevent
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-get-details-about-record
      description: Bluesky Get details about a record.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationgetrecord
      with:
        uri: tools.uri
        cid: tools.cid
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-get-details-about-some
      description: Bluesky Get details about some records.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationgetrecords
      with:
        uris: tools.uris
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-get-details-about-repository
      description: Bluesky Get details about a repository.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationgetrepo
      with:
        did: tools.did
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-get-details-about-some-2
      description: Bluesky Get details about some repositories.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationgetrepos
      with:
        dids: tools.dids
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-list-moderation-events-related
      description: Bluesky List moderation events related to a subject.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationqueryevents
      with:
        types: tools.types
        createdBy: tools.createdBy
        sortDirection: tools.sortDirection
        createdAfter: tools.createdAfter
        createdBefore: tools.createdBefore
        subject: tools.subject
        collections: tools.collections
        subjectType: tools.subjectType
        includeAllUserRecords: tools.includeAllUserRecords
        limit: tools.limit
        hasComment: tools.hasComment
        comment: tools.comment
        addedLabels: tools.addedLabels
        removedLabels: tools.removedLabels
        addedTags: tools.addedTags
        removedTags: tools.removedTags
        reportTypes: tools.reportTypes
        cursor: tools.cursor
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-view-moderation-statuses-subjects
      description: Bluesky View moderation statuses of subjects (record or repo).
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationquerystatuses
      with:
        includeAllUserRecords: tools.includeAllUserRecords
        subject: tools.subject
        comment: tools.comment
        reportedAfter: tools.reportedAfter
        reportedBefore: tools.reportedBefore
        reviewedAfter: tools.reviewedAfter
        hostingDeletedAfter: tools.hostingDeletedAfter
        hostingDeletedBefore: tools.hostingDeletedBefore
        hostingUpdatedAfter: tools.hostingUpdatedAfter
        hostingUpdatedBefore: tools.hostingUpdatedBefore
        hostingStatuses: tools.hostingStatuses
        reviewedBefore: tools.reviewedBefore
        includeMuted: tools.includeMuted
        onlyMuted: tools.onlyMuted
        reviewState: tools.reviewState
        ignoreSubjects: tools.ignoreSubjects
        lastReviewedBy: tools.lastReviewedBy
        sortField: tools.sortField
        sortDirection: tools.sortDirection
        takendown: tools.takendown
        appealed: tools.appealed
        limit: tools.limit
        tags: tools.tags
        excludeTags: tools.excludeTags
        cursor: tools.cursor
        collections: tools.collections
        subjectType: tools.subjectType
      outputParameters:
      - type: object
        mapping: $.
    - name: bluesky-find-repositories-based-search
      description: Bluesky Find repositories based on a search term.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: bluesky-ozone-moderation.ozonemoderationsearchrepos
      with:
        q: tools.q
        limit: tools.limit
        cursor: tools.cursor
      outputParameters:
      - type: object
        mapping: $.