naftiko: 1.0.0-alpha2 info: label: crates.io Web API — Owners description: 'crates.io Web API — Owners. Self-contained Naftiko capability for listing, inviting, and removing crate owners.' tags: - Cratesio - Owners - Rust created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: CRATES_IO_TOKEN: CRATES_IO_TOKEN capability: consumes: - type: http namespace: crates-owners baseUri: https://crates.io description: crates.io Owners business capability. resources: - name: api-v1-crates-owners path: /api/v1/crates/{crate}/owners operations: - name: listowners method: GET description: List Crate Owners outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: crate in: path type: string required: true - name: addowner method: PUT description: Add Crate Owner outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: crate in: path type: string required: true - name: body in: body type: object description: '{ "users": ["login"] }' required: true - name: removeowner method: DELETE description: Remove Crate Owner outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: crate in: path type: string required: true - name: body in: body type: object description: '{ "users": ["login"] }' required: true authentication: type: apikey key: Authorization value: '{{env.CRATES_IO_TOKEN}}' placement: header exposes: - type: rest namespace: crates-owners-rest port: 8080 description: REST adapter for crates.io Owners. resources: - path: /v1/api/v1/crates/{crate}/owners name: owners description: REST surface for owners. operations: - method: GET name: listowners description: List Crate Owners call: crates-owners.listowners with: crate: rest.path.crate outputParameters: - type: object mapping: $. - method: PUT name: addowner description: Add Crate Owner call: crates-owners.addowner with: crate: rest.path.crate body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removeowner description: Remove Crate Owner call: crates-owners.removeowner with: crate: rest.path.crate body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: crates-owners-mcp port: 9090 transport: http description: MCP adapter for crates.io Owners. tools: - name: crates-list-owners description: List Crate Owners hints: readOnly: true destructive: false idempotent: true call: crates-owners.listowners with: crate: tools.crate outputParameters: - type: object mapping: $. - name: crates-add-owner description: Add Crate Owner hints: readOnly: false destructive: false idempotent: true call: crates-owners.addowner with: crate: tools.crate body: tools.body outputParameters: - type: object mapping: $. - name: crates-remove-owner description: Remove Crate Owner hints: readOnly: false destructive: true idempotent: true call: crates-owners.removeowner with: crate: tools.crate body: tools.body outputParameters: - type: object mapping: $.