Gremlin · Capability

Gremlin API — users

Gremlin API — users. 13 operations. Lead operation: Get all users.. Self-contained Naftiko capability covering one Gremlin business surface.

Run with Naftiko Gremlinusers

What You Can Do

GET
All4 — Get all users.
/v1/users
POST
Addusertoteam — Add an existing user to the target team
/v1/users
GET
Active4 — Get all active users.
/v1/users/active
GET
Activepaginated — Get all active users paginated.
/v1/users/active/paged
POST
Invite1 — Invite a user.
/v1/users/invite
DELETE
Revokeinvite — Revoke a pending user invite.
/v1/users/invite/{email}
GET
Allpaginated — Get all users paginated.
/v1/users/paged
POST
Rbacauthrenew — Renew authorization.
/v1/users/renew/rbac
GET
Getself — Get information about the authenticated user
/v1/users/self
PATCH
Rbacupdateself — Update an existing users info.
/v1/users/self
GET
Refreshsessions — Returns the updated user sessions list for the currently authenticated user.
/v1/users/sessions
PUT
Update2 — Update an existing user.
/v1/users/{email}
DELETE
Revokeorremovefromteam — Deactivate a user.
/v1/users/{email}

MCP Tools

get-all-users

Get all users.

read-only idempotent
add-existing-user-target-team

Add an existing user to the target team

read-only
get-all-active-users

Get all active users.

read-only idempotent
get-all-active-users-paginated

Get all active users paginated.

read-only idempotent
invite-user

Invite a user.

revoke-pending-user-invite

Revoke a pending user invite.

idempotent
get-all-users-paginated

Get all users paginated.

read-only idempotent
renew-authorization

Renew authorization.

get-information-about-authenticated-user

Get information about the authenticated user

read-only idempotent
update-existing-users-info

Update an existing users info.

idempotent
returns-updated-user-sessions-list

Returns the updated user sessions list for the currently authenticated user.

read-only idempotent
update-existing-user

Update an existing user.

idempotent
deactivate-user

Deactivate a user.

idempotent

Capability Spec

gremlin-users.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Gremlin API — users
  description: 'Gremlin API — users. 13 operations. Lead operation: Get all users.. Self-contained Naftiko capability covering
    one Gremlin business surface.'
  tags:
  - Gremlin
  - users
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GREMLIN_API_KEY: GREMLIN_API_KEY
capability:
  consumes:
  - type: http
    namespace: gremlin-users
    baseUri: https://api.gremlin.com/v1
    description: Gremlin API — users business capability. Self-contained, no shared references.
    resources:
    - name: users
      path: /users
      operations:
      - name: all4
        method: GET
        description: Get all users.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
      - name: addusertoteam
        method: POST
        description: Add an existing user to the target team
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-active
      path: /users/active
      operations:
      - name: active4
        method: GET
        description: Get all active users.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
    - name: users-active-paged
      path: /users/active/paged
      operations:
      - name: activepaginated
        method: GET
        description: Get all active users paginated.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: pageSize
          in: query
          type: integer
          description: This value determines how many results will be returned per call.
        - name: pageToken
          in: query
          type: string
          description: Token corresponding to the last page of active company users for team retrieved. Pass the pageToken
            to get the next page of active company users for team
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
    - name: users-invite
      path: /users/invite
      operations:
      - name: invite1
        method: POST
        description: Invite a user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: users-invite-email
      path: /users/invite/{email}
      operations:
      - name: revokeinvite
        method: DELETE
        description: Revoke a pending user invite.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
    - name: users-paged
      path: /users/paged
      operations:
      - name: allpaginated
        method: GET
        description: Get all users paginated.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: pageSize
          in: query
          type: integer
          description: This value determines how many results will be returned per call.
        - name: pageToken
          in: query
          type: string
          description: Token corresponding to the last page of company users for team retrieved. Pass the pageToken to get
            the next page of company users for team
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
    - name: users-renew-rbac
      path: /users/renew/rbac
      operations:
      - name: rbacauthrenew
        method: POST
        description: Renew authorization.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: users-self
      path: /users/self
      operations:
      - name: getself
        method: GET
        description: Get information about the authenticated user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: rbacupdateself
        method: PATCH
        description: Update an existing users info.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: users-sessions
      path: /users/sessions
      operations:
      - name: refreshsessions
        method: GET
        description: Returns the updated user sessions list for the currently authenticated user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: getCompanySession
          in: query
          type: boolean
    - name: users-email
      path: /users/{email}
      operations:
      - name: update2
        method: PUT
        description: Update an existing user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: revokeorremovefromteam
        method: DELETE
        description: Deactivate a user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: path
          type: string
          required: true
        - name: teamId
          in: query
          type: string
          description: Required when using company session token.
          required: true
  exposes:
  - type: rest
    namespace: gremlin-users-rest
    port: 8080
    description: REST adapter for Gremlin API — 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: all4
        description: Get all users.
        call: gremlin-users.all4
        with:
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: addusertoteam
        description: Add an existing user to the target team
        call: gremlin-users.addusertoteam
        with:
          teamId: rest.teamId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/active
      name: users-active
      description: REST surface for users-active.
      operations:
      - method: GET
        name: active4
        description: Get all active users.
        call: gremlin-users.active4
        with:
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/active/paged
      name: users-active-paged
      description: REST surface for users-active-paged.
      operations:
      - method: GET
        name: activepaginated
        description: Get all active users paginated.
        call: gremlin-users.activepaginated
        with:
          pageSize: rest.pageSize
          pageToken: rest.pageToken
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/invite
      name: users-invite
      description: REST surface for users-invite.
      operations:
      - method: POST
        name: invite1
        description: Invite a user.
        call: gremlin-users.invite1
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/invite/{email}
      name: users-invite-email
      description: REST surface for users-invite-email.
      operations:
      - method: DELETE
        name: revokeinvite
        description: Revoke a pending user invite.
        call: gremlin-users.revokeinvite
        with:
          email: rest.email
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/paged
      name: users-paged
      description: REST surface for users-paged.
      operations:
      - method: GET
        name: allpaginated
        description: Get all users paginated.
        call: gremlin-users.allpaginated
        with:
          pageSize: rest.pageSize
          pageToken: rest.pageToken
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/renew/rbac
      name: users-renew-rbac
      description: REST surface for users-renew-rbac.
      operations:
      - method: POST
        name: rbacauthrenew
        description: Renew authorization.
        call: gremlin-users.rbacauthrenew
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/self
      name: users-self
      description: REST surface for users-self.
      operations:
      - method: GET
        name: getself
        description: Get information about the authenticated user
        call: gremlin-users.getself
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: rbacupdateself
        description: Update an existing users info.
        call: gremlin-users.rbacupdateself
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/sessions
      name: users-sessions
      description: REST surface for users-sessions.
      operations:
      - method: GET
        name: refreshsessions
        description: Returns the updated user sessions list for the currently authenticated user.
        call: gremlin-users.refreshsessions
        with:
          getCompanySession: rest.getCompanySession
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{email}
      name: users-email
      description: REST surface for users-email.
      operations:
      - method: PUT
        name: update2
        description: Update an existing user.
        call: gremlin-users.update2
        with:
          email: rest.email
          teamId: rest.teamId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: revokeorremovefromteam
        description: Deactivate a user.
        call: gremlin-users.revokeorremovefromteam
        with:
          email: rest.email
          teamId: rest.teamId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: gremlin-users-mcp
    port: 9090
    transport: http
    description: MCP adapter for Gremlin API — 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: gremlin-users.all4
      with:
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.
    - name: add-existing-user-target-team
      description: Add an existing user to the target team
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: gremlin-users.addusertoteam
      with:
        teamId: tools.teamId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-all-active-users
      description: Get all active users.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-users.active4
      with:
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.
    - name: get-all-active-users-paginated
      description: Get all active users paginated.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-users.activepaginated
      with:
        pageSize: tools.pageSize
        pageToken: tools.pageToken
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.
    - name: invite-user
      description: Invite a user.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: gremlin-users.invite1
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: revoke-pending-user-invite
      description: Revoke a pending user invite.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: gremlin-users.revokeinvite
      with:
        email: tools.email
      outputParameters:
      - type: object
        mapping: $.
    - name: get-all-users-paginated
      description: Get all users paginated.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-users.allpaginated
      with:
        pageSize: tools.pageSize
        pageToken: tools.pageToken
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.
    - name: renew-authorization
      description: Renew authorization.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: gremlin-users.rbacauthrenew
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-information-about-authenticated-user
      description: Get information about the authenticated user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-users.getself
      outputParameters:
      - type: object
        mapping: $.
    - name: update-existing-users-info
      description: Update an existing users info.
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: gremlin-users.rbacupdateself
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: returns-updated-user-sessions-list
      description: Returns the updated user sessions list for the currently authenticated user.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: gremlin-users.refreshsessions
      with:
        getCompanySession: tools.getCompanySession
      outputParameters:
      - type: object
        mapping: $.
    - name: update-existing-user
      description: Update an existing user.
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: gremlin-users.update2
      with:
        email: tools.email
        teamId: tools.teamId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: deactivate-user
      description: Deactivate a user.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: gremlin-users.revokeorremovefromteam
      with:
        email: tools.email
        teamId: tools.teamId
      outputParameters:
      - type: object
        mapping: $.