naftiko: 1.0.0-alpha2 info: label: JFrog Artifactory REST API — Security description: 'JFrog Artifactory REST API — Security. 13 operations. Lead operation: JFrog List Groups. Self-contained Naftiko capability covering one Jfrog business surface.' tags: - Jfrog - Security created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: JFROG_API_KEY: JFROG_API_KEY capability: consumes: - type: http namespace: artifactory-security baseUri: https://{server}.jfrog.io/artifactory description: JFrog Artifactory REST API — Security business capability. Self-contained, no shared references. resources: - name: api-security-groups path: /api/security/groups operations: - name: listgroups method: GET description: JFrog List Groups outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-groups-groupName path: /api/security/groups/{groupName} operations: - name: getgroup method: GET description: JFrog Get Group Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupName in: path type: string description: Group name required: true - name: createorreplacegroup method: PUT description: JFrog Create or Replace Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupName in: path type: string description: Group name required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletegroup method: DELETE description: JFrog Delete Group outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: groupName in: path type: string description: Group name required: true - name: api-security-permissions path: /api/security/permissions operations: - name: listpermissiontargets method: GET description: JFrog List Permission Targets outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-permissions-permissionTargetName path: /api/security/permissions/{permissionTargetName} operations: - name: getpermissiontarget method: GET description: JFrog Get Permission Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: permissionTargetName in: path type: string description: Permission target name required: true - name: createorreplacepermissiontarget method: PUT description: JFrog Create or Replace Permission Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: permissionTargetName in: path type: string description: Permission target name required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletepermissiontarget method: DELETE description: JFrog Delete Permission Target outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: permissionTargetName in: path type: string description: Permission target name required: true - name: api-security-token path: /api/security/token operations: - name: createtoken method: POST description: JFrog Create Access Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-security-users path: /api/security/users operations: - name: listusers method: GET description: JFrog List Users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-security-users-username path: /api/security/users/{username} operations: - name: getuser method: GET description: JFrog Get User Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: path type: string description: Username required: true - name: createorreplaceuser method: PUT description: JFrog Create or Replace User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: path type: string description: Username required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteuser method: DELETE description: JFrog Delete User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: path type: string description: Username required: true authentication: type: bearer token: '{{env.JFROG_API_KEY}}' exposes: - type: rest namespace: artifactory-security-rest port: 8080 description: REST adapter for JFrog Artifactory REST API — Security. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/security/groups name: api-security-groups description: REST surface for api-security-groups. operations: - method: GET name: listgroups description: JFrog List Groups call: artifactory-security.listgroups outputParameters: - type: object mapping: $. - path: /v1/api/security/groups/{groupname} name: api-security-groups-groupname description: REST surface for api-security-groups-groupName. operations: - method: GET name: getgroup description: JFrog Get Group Details call: artifactory-security.getgroup with: groupName: rest.groupName outputParameters: - type: object mapping: $. - method: PUT name: createorreplacegroup description: JFrog Create or Replace Group call: artifactory-security.createorreplacegroup with: groupName: rest.groupName body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletegroup description: JFrog Delete Group call: artifactory-security.deletegroup with: groupName: rest.groupName outputParameters: - type: object mapping: $. - path: /v1/api/security/permissions name: api-security-permissions description: REST surface for api-security-permissions. operations: - method: GET name: listpermissiontargets description: JFrog List Permission Targets call: artifactory-security.listpermissiontargets outputParameters: - type: object mapping: $. - path: /v1/api/security/permissions/{permissiontargetname} name: api-security-permissions-permissiontargetname description: REST surface for api-security-permissions-permissionTargetName. operations: - method: GET name: getpermissiontarget description: JFrog Get Permission Target call: artifactory-security.getpermissiontarget with: permissionTargetName: rest.permissionTargetName outputParameters: - type: object mapping: $. - method: PUT name: createorreplacepermissiontarget description: JFrog Create or Replace Permission Target call: artifactory-security.createorreplacepermissiontarget with: permissionTargetName: rest.permissionTargetName body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletepermissiontarget description: JFrog Delete Permission Target call: artifactory-security.deletepermissiontarget with: permissionTargetName: rest.permissionTargetName outputParameters: - type: object mapping: $. - path: /v1/api/security/token name: api-security-token description: REST surface for api-security-token. operations: - method: POST name: createtoken description: JFrog Create Access Token call: artifactory-security.createtoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/security/users name: api-security-users description: REST surface for api-security-users. operations: - method: GET name: listusers description: JFrog List Users call: artifactory-security.listusers outputParameters: - type: object mapping: $. - path: /v1/api/security/users/{username} name: api-security-users-username description: REST surface for api-security-users-username. operations: - method: GET name: getuser description: JFrog Get User Details call: artifactory-security.getuser with: username: rest.username outputParameters: - type: object mapping: $. - method: PUT name: createorreplaceuser description: JFrog Create or Replace User call: artifactory-security.createorreplaceuser with: username: rest.username body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteuser description: JFrog Delete User call: artifactory-security.deleteuser with: username: rest.username outputParameters: - type: object mapping: $. - type: mcp namespace: artifactory-security-mcp port: 9090 transport: http description: MCP adapter for JFrog Artifactory REST API — Security. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: jfrog-list-groups description: JFrog List Groups hints: readOnly: true destructive: false idempotent: true call: artifactory-security.listgroups outputParameters: - type: object mapping: $. - name: jfrog-get-group-details description: JFrog Get Group Details hints: readOnly: true destructive: false idempotent: true call: artifactory-security.getgroup with: groupName: tools.groupName outputParameters: - type: object mapping: $. - name: jfrog-create-replace-group description: JFrog Create or Replace Group hints: readOnly: false destructive: false idempotent: true call: artifactory-security.createorreplacegroup with: groupName: tools.groupName body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-delete-group description: JFrog Delete Group hints: readOnly: false destructive: true idempotent: true call: artifactory-security.deletegroup with: groupName: tools.groupName outputParameters: - type: object mapping: $. - name: jfrog-list-permission-targets description: JFrog List Permission Targets hints: readOnly: true destructive: false idempotent: true call: artifactory-security.listpermissiontargets outputParameters: - type: object mapping: $. - name: jfrog-get-permission-target description: JFrog Get Permission Target hints: readOnly: true destructive: false idempotent: true call: artifactory-security.getpermissiontarget with: permissionTargetName: tools.permissionTargetName outputParameters: - type: object mapping: $. - name: jfrog-create-replace-permission-target description: JFrog Create or Replace Permission Target hints: readOnly: false destructive: false idempotent: true call: artifactory-security.createorreplacepermissiontarget with: permissionTargetName: tools.permissionTargetName body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-delete-permission-target description: JFrog Delete Permission Target hints: readOnly: false destructive: true idempotent: true call: artifactory-security.deletepermissiontarget with: permissionTargetName: tools.permissionTargetName outputParameters: - type: object mapping: $. - name: jfrog-create-access-token description: JFrog Create Access Token hints: readOnly: false destructive: false idempotent: false call: artifactory-security.createtoken with: body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-list-users description: JFrog List Users hints: readOnly: true destructive: false idempotent: true call: artifactory-security.listusers outputParameters: - type: object mapping: $. - name: jfrog-get-user-details description: JFrog Get User Details hints: readOnly: true destructive: false idempotent: true call: artifactory-security.getuser with: username: tools.username outputParameters: - type: object mapping: $. - name: jfrog-create-replace-user description: JFrog Create or Replace User hints: readOnly: false destructive: false idempotent: true call: artifactory-security.createorreplaceuser with: username: tools.username body: tools.body outputParameters: - type: object mapping: $. - name: jfrog-delete-user description: JFrog Delete User hints: readOnly: false destructive: true idempotent: true call: artifactory-security.deleteuser with: username: tools.username outputParameters: - type: object mapping: $.