naftiko: 1.0.0-alpha2 info: label: Pipedrive API v1 — Users description: 'Pipedrive API v1 — Users. 10 operations. Lead operation: Get all users. Self-contained Naftiko capability covering one Pipedrive business surface.' tags: - Pipedrive - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PIPEDRIVE_API_KEY: PIPEDRIVE_API_KEY capability: consumes: - type: http namespace: v1-users baseUri: https://api.pipedrive.com/v1 description: Pipedrive API v1 — Users business capability. Self-contained, no shared references. resources: - name: users path: /users operations: - name: getusers method: GET description: Get all users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: adduser method: POST description: Add a new user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: users-find path: /users/find operations: - name: findusersbyname method: GET description: Find users by name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: term in: query type: string description: The search term to look for required: true - name: search_by_email in: query type: number description: 'When enabled, the term will only be matched against email addresses of users. Default: `false`.' - name: users-me path: /users/me operations: - name: getcurrentuser method: GET description: Get current user data outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-id path: /users/{id} operations: - name: getuser method: GET description: Get one user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the user required: true - name: updateuser method: PUT description: Update user details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the user required: true - name: body in: body type: object description: Request body (JSON). required: false - name: users-id-followers path: /users/{id}/followers operations: - name: getuserfollowers method: GET description: List followers of a user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the user required: true - name: users-id-permissions path: /users/{id}/permissions operations: - name: getuserpermissions method: GET description: List user permissions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the user required: true - name: users-id-roleAssignments path: /users/{id}/roleAssignments operations: - name: getuserroleassignments method: GET description: List role assignments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the user required: true - name: start in: query type: integer description: Pagination start - name: limit in: query type: integer description: Items shown per page - name: users-id-roleSettings path: /users/{id}/roleSettings operations: - name: getuserrolesettings method: GET description: List user role settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the user required: true authentication: type: bearer token: '{{env.PIPEDRIVE_API_KEY}}' exposes: - type: rest namespace: v1-users-rest port: 8080 description: REST adapter for Pipedrive API v1 — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users name: users description: REST surface for users. operations: - method: GET name: getusers description: Get all users call: v1-users.getusers outputParameters: - type: object mapping: $. - method: POST name: adduser description: Add a new user call: v1-users.adduser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/find name: users-find description: REST surface for users-find. operations: - method: GET name: findusersbyname description: Find users by name call: v1-users.findusersbyname with: term: rest.term search_by_email: rest.search_by_email outputParameters: - type: object mapping: $. - path: /v1/users/me name: users-me description: REST surface for users-me. operations: - method: GET name: getcurrentuser description: Get current user data call: v1-users.getcurrentuser outputParameters: - type: object mapping: $. - path: /v1/users/{id} name: users-id description: REST surface for users-id. operations: - method: GET name: getuser description: Get one user call: v1-users.getuser with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: updateuser description: Update user details call: v1-users.updateuser with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{id}/followers name: users-id-followers description: REST surface for users-id-followers. operations: - method: GET name: getuserfollowers description: List followers of a user call: v1-users.getuserfollowers with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/users/{id}/permissions name: users-id-permissions description: REST surface for users-id-permissions. operations: - method: GET name: getuserpermissions description: List user permissions call: v1-users.getuserpermissions with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/users/{id}/roleassignments name: users-id-roleassignments description: REST surface for users-id-roleAssignments. operations: - method: GET name: getuserroleassignments description: List role assignments call: v1-users.getuserroleassignments with: id: rest.id start: rest.start limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/users/{id}/rolesettings name: users-id-rolesettings description: REST surface for users-id-roleSettings. operations: - method: GET name: getuserrolesettings description: List user role settings call: v1-users.getuserrolesettings with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: v1-users-mcp port: 9090 transport: http description: MCP adapter for Pipedrive API v1 — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-all-users description: Get all users hints: readOnly: true destructive: false idempotent: true call: v1-users.getusers outputParameters: - type: object mapping: $. - name: add-new-user description: Add a new user hints: readOnly: false destructive: false idempotent: false call: v1-users.adduser with: body: tools.body outputParameters: - type: object mapping: $. - name: find-users-name description: Find users by name hints: readOnly: true destructive: false idempotent: true call: v1-users.findusersbyname with: term: tools.term search_by_email: tools.search_by_email outputParameters: - type: object mapping: $. - name: get-current-user-data description: Get current user data hints: readOnly: true destructive: false idempotent: true call: v1-users.getcurrentuser outputParameters: - type: object mapping: $. - name: get-one-user description: Get one user hints: readOnly: true destructive: false idempotent: true call: v1-users.getuser with: id: tools.id outputParameters: - type: object mapping: $. - name: update-user-details description: Update user details hints: readOnly: false destructive: false idempotent: true call: v1-users.updateuser with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: list-followers-user description: List followers of a user hints: readOnly: true destructive: false idempotent: true call: v1-users.getuserfollowers with: id: tools.id outputParameters: - type: object mapping: $. - name: list-user-permissions description: List user permissions hints: readOnly: true destructive: false idempotent: true call: v1-users.getuserpermissions with: id: tools.id outputParameters: - type: object mapping: $. - name: list-role-assignments description: List role assignments hints: readOnly: true destructive: false idempotent: true call: v1-users.getuserroleassignments with: id: tools.id start: tools.start limit: tools.limit outputParameters: - type: object mapping: $. - name: list-user-role-settings description: List user role settings hints: readOnly: true destructive: false idempotent: true call: v1-users.getuserrolesettings with: id: tools.id outputParameters: - type: object mapping: $.