Grafana · Capability

Grafana — Search

Grafana — Search. 13 operations. Lead operation: Grafana Search Result. Self-contained Naftiko capability covering one Grafana business surface.

Run with Naftiko GrafanaSearch

What You Can Do

POST
Searchresult — Grafana Search Result
/v1/access-control/assignments/search
GET
Searchdevices — Grafana Search Devices
/v1/anonymous/search
GET
Searchdashboardsnapshots — Grafana Search Dashboard Snapshots
/v1/dashboard/snapshots
GET
Searchorganizations — Grafana Search Organizations
/v1/orgs
GET
Searchorgusers — Grafana Search Org Users
/v1/orgs/{org-id}/users/search
GET
Searchplaylists — Grafana Search Playlists
/v1/playlists
GET
Searchqueries — Grafana Search Queries
/v1/query-history
GET
Search — Grafana Search
/v1/search
GET
Searchorgserviceaccountswithpaging — Grafana Search Org Service Accounts With Paging
/v1/serviceaccounts/search
GET
Searchteams — Grafana Search Teams
/v1/teams/search
GET
Searchteamgroups — Grafana Search Team Groups
/v1/teams/{teamid}/groups/search
GET
Searchusers — Grafana Search Users
/v1/users
GET
Searchuserswithpaging — Grafana Search Users With Paging
/v1/users/search

MCP Tools

grafana-search-result

Grafana Search Result

read-only
grafana-search-devices

Grafana Search Devices

read-only idempotent
grafana-search-dashboard-snapshots

Grafana Search Dashboard Snapshots

read-only idempotent
grafana-search-organizations

Grafana Search Organizations

read-only idempotent
grafana-search-org-users

Grafana Search Org Users

read-only idempotent
grafana-search-playlists

Grafana Search Playlists

read-only idempotent
grafana-search-queries

Grafana Search Queries

read-only idempotent
grafana-search

Grafana Search

read-only idempotent
grafana-search-org-service-accounts

Grafana Search Org Service Accounts With Paging

read-only idempotent
grafana-search-teams

Grafana Search Teams

read-only idempotent
grafana-search-team-groups

Grafana Search Team Groups

read-only idempotent
grafana-search-users

Grafana Search Users

read-only idempotent
grafana-search-users-paging

Grafana Search Users With Paging

read-only idempotent

Capability Spec

grafana-search.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Grafana — Search
  description: 'Grafana — Search. 13 operations. Lead operation: Grafana Search Result. Self-contained Naftiko capability
    covering one Grafana business surface.'
  tags:
  - Grafana
  - Search
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GRAFANA_API_KEY: GRAFANA_API_KEY
capability:
  consumes:
  - type: http
    namespace: grafana-search
    baseUri: http://{defaultHost}
    description: Grafana — Search business capability. Self-contained, no shared references.
    resources:
    - name: access-control-assignments-search
      path: /access-control/assignments/search
      operations:
      - name: searchresult
        method: POST
        description: Grafana Search Result
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: anonymous-search
      path: /anonymous/search
      operations:
      - name: searchdevices
        method: GET
        description: Grafana Search Devices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dashboard-snapshots
      path: /dashboard/snapshots
      operations:
      - name: searchdashboardsnapshots
        method: GET
        description: Grafana Search Dashboard Snapshots
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
          description: Search Query
        - name: limit
          in: query
          type: integer
          description: Limit the number of returned results
    - name: orgs
      path: /orgs
      operations:
      - name: searchorganizations
        method: GET
        description: Grafana Search Organizations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
          description: Number of items per page
        - name: name
          in: query
          type: string
        - name: query
          in: query
          type: string
          description: If set it will return results where the query value is contained in the name field. Query values with
            spaces need to be URL encoded.
    - name: orgs-org_id-users-search
      path: /orgs/{org_id}/users/search
      operations:
      - name: searchorgusers
        method: GET
        description: Grafana Search Org Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: org_id
          in: path
          type: integer
          required: true
    - name: playlists
      path: /playlists
      operations:
      - name: searchplaylists
        method: GET
        description: Grafana Search Playlists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: in:limit
    - name: query-history
      path: /query-history
      operations:
      - name: searchqueries
        method: GET
        description: Grafana Search Queries
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: datasourceUid
          in: query
          type: array
          description: List of data source UIDs to search for
        - name: searchString
          in: query
          type: string
          description: Text inside query or comments that is searched for
        - name: onlyStarred
          in: query
          type: boolean
          description: Flag indicating if only starred queries should be returned
        - name: sort
          in: query
          type: string
          description: Sort method
        - name: page
          in: query
          type: integer
          description: Use this parameter to access hits beyond limit. Numbering starts at 1. limit param acts as page size.
        - name: limit
          in: query
          type: integer
          description: Limit the number of returned results
        - name: from
          in: query
          type: integer
          description: From range for the query history search
        - name: to
          in: query
          type: integer
          description: To range for the query history search
    - name: search
      path: /search
      operations:
      - name: search
        method: GET
        description: Grafana Search
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
          description: Search Query
        - name: tag
          in: query
          type: array
          description: List of tags to search for
        - name: type
          in: query
          type: string
          description: Type to search for, dash-folder or dash-db
        - name: dashboardIds
          in: query
          type: array
          description: List of dashboard id’s to search for
        - name: dashboardUIDs
          in: query
          type: array
          description: List of dashboard uid’s to search for
        - name: folderIds
          in: query
          type: array
          description: List of folder id’s to search in for dashboards
        - name: folderUIDs
          in: query
          type: array
          description: List of folder UID’s to search in for dashboards
        - name: starred
          in: query
          type: boolean
          description: Flag indicating if only starred Dashboards should be returned
        - name: limit
          in: query
          type: integer
          description: Limit the number of returned results (max 5000)
        - name: page
          in: query
          type: integer
          description: Use this parameter to access hits beyond limit. Numbering starts at 1. limit param acts as page size.
            Only available in Grafana v6.2+.
        - name: permission
          in: query
          type: string
          description: Set to `Edit` to return dashboards/folders that the user can edit
        - name: sort
          in: query
          type: string
          description: Sort method; for listing all the possible sort methods use the search sorting endpoint.
        - name: deleted
          in: query
          type: boolean
          description: Flag indicating if only soft deleted Dashboards should be returned
    - name: serviceaccounts-search
      path: /serviceaccounts/search
      operations:
      - name: searchorgserviceaccountswithpaging
        method: GET
        description: Grafana Search Org Service Accounts With Paging
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Disabled
          in: query
          type: boolean
        - name: expiredTokens
          in: query
          type: boolean
        - name: query
          in: query
          type: string
          description: It will return results where the query value is contained in one of the name.
        - name: perpage
          in: query
          type: integer
          description: The default value is 1000.
        - name: page
          in: query
          type: integer
          description: The default value is 1.
    - name: teams-search
      path: /teams/search
      operations:
      - name: searchteams
        method: GET
        description: Grafana Search Teams
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
          description: Number of items per page
        - name: name
          in: query
          type: string
        - name: query
          in: query
          type: string
          description: If set it will return results where the query value is contained in the name field. Query values with
            spaces need to be URL encoded.
        - name: accesscontrol
          in: query
          type: boolean
        - name: sort
          in: query
          type: string
    - name: teams-teamId-groups-search
      path: /teams/{teamId}/groups/search
      operations:
      - name: searchteamgroups
        method: GET
        description: Grafana Search Team Groups
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: teamId
          in: path
          type: integer
          required: true
        - name: page
          in: query
          type: integer
        - name: perpage
          in: query
          type: integer
          description: Number of items per page
        - name: query
          in: query
          type: string
          description: If set it will return results where the query value is contained in the name field. Query values with
            spaces need to be URL encoded.
        - name: name
          in: query
          type: string
          description: Filter by exact name match
    - name: users
      path: /users
      operations:
      - name: searchusers
        method: GET
        description: Grafana Search Users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: perpage
          in: query
          type: integer
          description: Limit the maximum number of users to return per page
        - name: page
          in: query
          type: integer
          description: Page index for starting fetching users
    - name: users-search
      path: /users/search
      operations:
      - name: searchuserswithpaging
        method: GET
        description: Grafana Search Users With Paging
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: apikey
      key: Authorization
      value: '{{env.GRAFANA_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: grafana-search-rest
    port: 8080
    description: REST adapter for Grafana — Search. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/access-control/assignments/search
      name: access-control-assignments-search
      description: REST surface for access-control-assignments-search.
      operations:
      - method: POST
        name: searchresult
        description: Grafana Search Result
        call: grafana-search.searchresult
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/anonymous/search
      name: anonymous-search
      description: REST surface for anonymous-search.
      operations:
      - method: GET
        name: searchdevices
        description: Grafana Search Devices
        call: grafana-search.searchdevices
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dashboard/snapshots
      name: dashboard-snapshots
      description: REST surface for dashboard-snapshots.
      operations:
      - method: GET
        name: searchdashboardsnapshots
        description: Grafana Search Dashboard Snapshots
        call: grafana-search.searchdashboardsnapshots
        with:
          query: rest.query
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/orgs
      name: orgs
      description: REST surface for orgs.
      operations:
      - method: GET
        name: searchorganizations
        description: Grafana Search Organizations
        call: grafana-search.searchorganizations
        with:
          page: rest.page
          perpage: rest.perpage
          name: rest.name
          query: rest.query
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/orgs/{org-id}/users/search
      name: orgs-org-id-users-search
      description: REST surface for orgs-org_id-users-search.
      operations:
      - method: GET
        name: searchorgusers
        description: Grafana Search Org Users
        call: grafana-search.searchorgusers
        with:
          org_id: rest.org_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/playlists
      name: playlists
      description: REST surface for playlists.
      operations:
      - method: GET
        name: searchplaylists
        description: Grafana Search Playlists
        call: grafana-search.searchplaylists
        with:
          query: rest.query
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/query-history
      name: query-history
      description: REST surface for query-history.
      operations:
      - method: GET
        name: searchqueries
        description: Grafana Search Queries
        call: grafana-search.searchqueries
        with:
          datasourceUid: rest.datasourceUid
          searchString: rest.searchString
          onlyStarred: rest.onlyStarred
          sort: rest.sort
          page: rest.page
          limit: rest.limit
          from: rest.from
          to: rest.to
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/search
      name: search
      description: REST surface for search.
      operations:
      - method: GET
        name: search
        description: Grafana Search
        call: grafana-search.search
        with:
          query: rest.query
          tag: rest.tag
          type: rest.type
          dashboardIds: rest.dashboardIds
          dashboardUIDs: rest.dashboardUIDs
          folderIds: rest.folderIds
          folderUIDs: rest.folderUIDs
          starred: rest.starred
          limit: rest.limit
          page: rest.page
          permission: rest.permission
          sort: rest.sort
          deleted: rest.deleted
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/serviceaccounts/search
      name: serviceaccounts-search
      description: REST surface for serviceaccounts-search.
      operations:
      - method: GET
        name: searchorgserviceaccountswithpaging
        description: Grafana Search Org Service Accounts With Paging
        call: grafana-search.searchorgserviceaccountswithpaging
        with:
          Disabled: rest.Disabled
          expiredTokens: rest.expiredTokens
          query: rest.query
          perpage: rest.perpage
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/teams/search
      name: teams-search
      description: REST surface for teams-search.
      operations:
      - method: GET
        name: searchteams
        description: Grafana Search Teams
        call: grafana-search.searchteams
        with:
          page: rest.page
          perpage: rest.perpage
          name: rest.name
          query: rest.query
          accesscontrol: rest.accesscontrol
          sort: rest.sort
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/teams/{teamid}/groups/search
      name: teams-teamid-groups-search
      description: REST surface for teams-teamId-groups-search.
      operations:
      - method: GET
        name: searchteamgroups
        description: Grafana Search Team Groups
        call: grafana-search.searchteamgroups
        with:
          teamId: rest.teamId
          page: rest.page
          perpage: rest.perpage
          query: rest.query
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users
      name: users
      description: REST surface for users.
      operations:
      - method: GET
        name: searchusers
        description: Grafana Search Users
        call: grafana-search.searchusers
        with:
          perpage: rest.perpage
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/search
      name: users-search
      description: REST surface for users-search.
      operations:
      - method: GET
        name: searchuserswithpaging
        description: Grafana Search Users With Paging
        call: grafana-search.searchuserswithpaging
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: grafana-search-mcp
    port: 9090
    transport: http
    description: MCP adapter for Grafana — Search. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: grafana-search-result
      description: Grafana Search Result
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: grafana-search.searchresult
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-devices
      description: Grafana Search Devices
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchdevices
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-dashboard-snapshots
      description: Grafana Search Dashboard Snapshots
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchdashboardsnapshots
      with:
        query: tools.query
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-organizations
      description: Grafana Search Organizations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchorganizations
      with:
        page: tools.page
        perpage: tools.perpage
        name: tools.name
        query: tools.query
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-org-users
      description: Grafana Search Org Users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchorgusers
      with:
        org_id: tools.org_id
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-playlists
      description: Grafana Search Playlists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchplaylists
      with:
        query: tools.query
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-queries
      description: Grafana Search Queries
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchqueries
      with:
        datasourceUid: tools.datasourceUid
        searchString: tools.searchString
        onlyStarred: tools.onlyStarred
        sort: tools.sort
        page: tools.page
        limit: tools.limit
        from: tools.from
        to: tools.to
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search
      description: Grafana Search
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.search
      with:
        query: tools.query
        tag: tools.tag
        type: tools.type
        dashboardIds: tools.dashboardIds
        dashboardUIDs: tools.dashboardUIDs
        folderIds: tools.folderIds
        folderUIDs: tools.folderUIDs
        starred: tools.starred
        limit: tools.limit
        page: tools.page
        permission: tools.permission
        sort: tools.sort
        deleted: tools.deleted
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-org-service-accounts
      description: Grafana Search Org Service Accounts With Paging
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchorgserviceaccountswithpaging
      with:
        Disabled: tools.Disabled
        expiredTokens: tools.expiredTokens
        query: tools.query
        perpage: tools.perpage
        page: tools.page
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-teams
      description: Grafana Search Teams
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchteams
      with:
        page: tools.page
        perpage: tools.perpage
        name: tools.name
        query: tools.query
        accesscontrol: tools.accesscontrol
        sort: tools.sort
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-team-groups
      description: Grafana Search Team Groups
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchteamgroups
      with:
        teamId: tools.teamId
        page: tools.page
        perpage: tools.perpage
        query: tools.query
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-users
      description: Grafana Search Users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchusers
      with:
        perpage: tools.perpage
        page: tools.page
      outputParameters:
      - type: object
        mapping: $.
    - name: grafana-search-users-paging
      description: Grafana Search Users With Paging
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: grafana-search.searchuserswithpaging
      outputParameters:
      - type: object
        mapping: $.