> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getprimo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the AI tools overview of the company

> Return the headline numbers of the AI tools on the company's devices as JSON: devices reporting, distinct tools, MCP servers and those reaching a host outside the device, devices with remote AI connections and with a high or critical finding; then counts per tool kind (`kinds.<kind>`), per severity (`findingsBySeverity.<severity>`) and per AI service (`aiConnectionsByService.<service>`), the rules with findings, the remote MCP hosts, the AI services and the 10 most installed tools. Use it for counts and rankings; to list tools use `getAiTools`, to list findings `getAiFindings`. AI tools are what Primo finds on Macs (assistant apps, coding agents, IDE plugins, browser extensions, MCP servers, AI connections, agent instruction files), as of the last report (`lastSyncedAt` of `getAiToolsOverview`, every 5 minutes), with Primo's severities, less the findings the company's AI tools settings ignore. They are not the software catalog (`getSoftwares`, `getDeviceSoftware`), the company's own AI agents (`listAgents`) nor AI credits (`getAiUsage`). A company without AI tools monitoring gets a 403, final.

<span className="badge-read">Key: Read</span><span className="badge-company">Scope: Company</span>


## OpenAPI

````yaml https://api.getprimo.com/openapi.json get /ai-tools/overview
openapi: 3.1.1
info:
  title: Public API - BETA
  description: Read docs on https://docs.getprimo.com/
  version: '1.0'
  contact: {}
servers:
  - url: https://api.getprimo.com
security:
  - apikey: []
tags: []
paths:
  /ai-tools/overview:
    get:
      tags:
        - AiTools
      summary: Get the AI tools overview of the company
      description: >-
        Return the headline numbers of the AI tools on the company's devices as
        JSON: devices reporting, distinct tools, MCP servers and those reaching
        a host outside the device, devices with remote AI connections and with a
        high or critical finding; then counts per tool kind (`kinds.<kind>`),
        per severity (`findingsBySeverity.<severity>`) and per AI service
        (`aiConnectionsByService.<service>`), the rules with findings, the
        remote MCP hosts, the AI services and the 10 most installed tools. Use
        it for counts and rankings; to list tools use `getAiTools`, to list
        findings `getAiFindings`. AI tools are what Primo finds on Macs
        (assistant apps, coding agents, IDE plugins, browser extensions, MCP
        servers, AI connections, agent instruction files), as of the last report
        (`lastSyncedAt` of `getAiToolsOverview`, every 5 minutes), with Primo's
        severities, less the findings the company's AI tools settings ignore.
        They are not the software catalog (`getSoftwares`, `getDeviceSoftware`),
        the company's own AI agents (`listAgents`) nor AI credits
        (`getAiUsage`). A company without AI tools monitoring gets a 403, final.
      operationId: getAiToolsOverview
      parameters: []
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAiToolsOverviewResponse_Output'
components:
  schemas:
    GetAiToolsOverviewResponse_Output:
      type: object
      properties:
        lastSyncedAt:
          description: >-
            When Primo last read the devices' reports (ISO 8601); null before
            any
          anyOf:
            - type: string
            - type: 'null'
        reportingDeviceCount:
          type: integer
          description: Devices that reported an AI inventory to Primo
          minimum: -9007199254740991
          maximum: 9007199254740991
        devicesWithToolsCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        distinctToolCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        mcpServerCount:
          type: integer
          description: Distinct MCP servers
          minimum: -9007199254740991
          maximum: 9007199254740991
        remoteMcpServerCount:
          type: integer
          description: Distinct MCP servers reached on a host outside the device
          minimum: -9007199254740991
          maximum: 9007199254740991
        devicesWithRemoteAiConnectionsCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        devicesWithHighOrCriticalFindingsCount:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        kinds:
          type: object
          description: Counts per tool kind, every kind present
          propertyNames:
            description: >-
              assistant_app (Claude, ChatGPT desktop), coding_agent (Claude
              Code, Codex), ide_plugin, browser_extension or mcp_server
            type: string
            enum:
              - assistant_app
              - coding_agent
              - ide_plugin
              - browser_extension
              - mcp_server
          additionalProperties:
            type: object
            properties:
              toolCount:
                description: Distinct tools of the kind
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              deviceCount:
                description: Devices with at least one tool of the kind
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - toolCount
              - deviceCount
            additionalProperties: false
        findingsBySeverity:
          type: object
          description: Counts per severity, every severity present
          propertyNames:
            type: string
            enum:
              - critical
              - high
              - medium
              - low
          additionalProperties:
            type: object
            properties:
              findingCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              deviceCount:
                description: Devices with at least one finding of the severity
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - findingCount
              - deviceCount
            additionalProperties: false
        aiConnectionsByService:
          type: object
          description: >-
            Remote AI connections per service seen, e.g. `anthropic`, `openai`,
            `unclassified`
          propertyNames:
            type: string
          additionalProperties:
            type: object
            properties:
              deviceCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              connectionCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - deviceCount
              - connectionCount
            additionalProperties: false
        kindList:
          type: array
          items:
            type: object
            properties:
              toolCount:
                description: Distinct tools of the kind
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              deviceCount:
                description: Devices with at least one tool of the kind
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              kind:
                description: >-
                  assistant_app (Claude, ChatGPT desktop), coding_agent (Claude
                  Code, Codex), ide_plugin, browser_extension or mcp_server
                type: string
                enum:
                  - assistant_app
                  - coding_agent
                  - ide_plugin
                  - browser_extension
                  - mcp_server
            required:
              - toolCount
              - deviceCount
              - kind
            additionalProperties: false
        findingRules:
          type: array
          description: >-
            Every rule with a raised finding, worst first; the rules the
            company's settings ignore are left out
          items:
            type: object
            properties:
              rule:
                description: Primo's code of the risk, e.g. `plaintext_secret`
                type: string
              severity:
                description: Primo's severity of the rule
                type: string
                enum:
                  - critical
                  - high
                  - medium
                  - low
              severityLabel:
                description: The severity in words, e.g. `Critical`
                type: string
              title:
                description: >-
                  What the rule means in a few words; the code itself for a rule
                  Primo has not rated yet
                type: string
              description:
                description: One line on what the rule detects
                anyOf:
                  - type: string
                  - type: 'null'
              deviceCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              findingCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - rule
              - severity
              - severityLabel
              - title
              - description
              - deviceCount
              - findingCount
            additionalProperties: false
        remoteMcpEndpoints:
          type: array
          description: Hosts outside the device that MCP servers reach, most devices first
          items:
            type: object
            properties:
              host:
                type: string
              deviceCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              toolKeys:
                type: array
                items:
                  type: string
              toolNames:
                description: The MCP servers reaching the host, comma separated
                type: string
            required:
              - host
              - deviceCount
              - toolKeys
              - toolNames
            additionalProperties: false
        aiConnectionServices:
          type: array
          items:
            type: object
            properties:
              deviceCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              connectionCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              service:
                type: string
              processNames:
                description: The processes holding the connections, comma separated
                type: string
            required:
              - deviceCount
              - connectionCount
              - service
              - processNames
            additionalProperties: false
        topTools:
          type: array
          description: The 10 tools found on the most devices
          items:
            type: object
            properties:
              toolKey:
                description: >-
                  Identifier of the tool, to pass to `getAiTool` or
                  `getAiFindings`
                type: string
              kind:
                description: >-
                  assistant_app (Claude, ChatGPT desktop), coding_agent (Claude
                  Code, Codex), ide_plugin, browser_extension or mcp_server
                type: string
                enum:
                  - assistant_app
                  - coding_agent
                  - ide_plugin
                  - browser_extension
                  - mcp_server
              name:
                type: string
              vendor:
                anyOf:
                  - type: string
                  - type: 'null'
              deviceCount:
                description: Devices the tool was found on
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              runningDeviceCount:
                description: Devices the tool was running on at the last report
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
              topVersion:
                description: The version found on the most devices
                anyOf:
                  - type: string
                  - type: 'null'
              versions:
                type: array
                items:
                  type: object
                  properties:
                    version:
                      type: string
                    deviceCount:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                  required:
                    - version
                    - deviceCount
                  additionalProperties: false
              worstSeverity:
                description: Worst severity of its findings; null without finding
                anyOf:
                  - type: string
                    enum:
                      - critical
                      - high
                      - medium
                      - low
                  - type: 'null'
              worstSeverityLabel:
                anyOf:
                  - type: string
                  - type: 'null'
              findingCount:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
            required:
              - toolKey
              - kind
              - name
              - vendor
              - deviceCount
              - runningDeviceCount
              - topVersion
              - versions
              - worstSeverity
              - worstSeverityLabel
              - findingCount
            additionalProperties: false
      required:
        - lastSyncedAt
        - reportingDeviceCount
        - devicesWithToolsCount
        - distinctToolCount
        - mcpServerCount
        - remoteMcpServerCount
        - devicesWithRemoteAiConnectionsCount
        - devicesWithHighOrCriticalFindingsCount
        - kinds
        - findingsBySeverity
        - aiConnectionsByService
        - kindList
        - findingRules
        - remoteMcpEndpoints
        - aiConnectionServices
        - topTools
      additionalProperties: false
  securitySchemes:
    apikey:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: >-
        Use your Primo API key in the Authorization header as `Bearer
        <API_KEY>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.