GitLab CI/CD · Capability
GitLab API — search
GitLab API — search. 3 operations. Lead operation: Search on GitLab within a group. Self-contained Naftiko capability covering one Gitlab Ci business surface.
What You Can Do
GET
Getapiv4groupsidsearch
— Search on GitLab within a group
/v1/api/v4/groups/{id}//search
GET
Getapiv4projectsidsearch
— Search on GitLab within a project
/v1/api/v4/projects/{id}//search
GET
Getapiv4search
— Search on GitLab
/v1/api/v4/search
MCP Tools
search-gitlab-within-group
Search on GitLab within a group
read-only
idempotent
search-gitlab-within-project
Search on GitLab within a project
read-only
idempotent
search-gitlab
Search on GitLab
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: GitLab API — search
description: 'GitLab API — search. 3 operations. Lead operation: Search on GitLab within a group. Self-contained Naftiko
capability covering one Gitlab Ci business surface.'
tags:
- Gitlab Ci
- search
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
GITLAB_CI_API_KEY: GITLAB_CI_API_KEY
capability:
consumes:
- type: http
namespace: gitlab-ci-search
baseUri: https://gitlab.com
description: GitLab API — search business capability. Self-contained, no shared references.
resources:
- name: api-v4-groups-id-(--)search
path: /api/v4/groups/{id}/(-/)search
operations:
- name: getapiv4groupsidsearch
method: GET
description: Search on GitLab within a group
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID or URL-encoded path of the group
required: true
- name: search
in: query
type: string
description: The expression it should be searched for
required: true
- name: scope
in: query
type: string
description: The scope of the search
required: true
- name: state
in: query
type: string
description: Filter results by state
- name: confidential
in: query
type: boolean
description: Filter results by confidentiality
- name: type
in: query
type: array
description: 'Filter work items by type. Only applies to work_items scope. Available types: issue, task, epic, incident,
test_case, requirement, objective, key_result, ticket'
- name: include_archived
in: query
type: boolean
description: Includes archived projects in the search. Introduced in GitLab 18.9.
- name: fields
in: query
type: array
description: Array of fields you wish to search. Available with advanced search.
- name: exclude_forks
in: query
type: boolean
description: Excludes forked projects in the search. Available with exact code search. Introduced in GitLab 18.9.
- name: num_context_lines
in: query
type: integer
description: Number of context lines around each match. Available with advanced and exact code search. Introduced
in GitLab 18.11.
- name: regex
in: query
type: boolean
description: Performs a regex code search. Available with exact code search. Introduced in GitLab 18.9
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: api-v4-projects-id-(--)search
path: /api/v4/projects/{id}/(-/)search
operations:
- name: getapiv4projectsidsearch
method: GET
description: Search on GitLab within a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID or URL-encoded path of the project
required: true
- name: search
in: query
type: string
description: The expression it should be searched for
required: true
- name: scope
in: query
type: string
description: The scope of the search
required: true
- name: ref
in: query
type: string
description: The name of a repository branch or tag. If not given, the default branch is used
- name: state
in: query
type: string
description: Filter results by state
- name: confidential
in: query
type: boolean
description: Filter results by confidentiality
- name: type
in: query
type: array
description: 'Filter work items by type. Only applies to work_items scope. Available types: issue, task, epic, incident,
test_case, requirement, objective, key_result, ticket'
- name: fields
in: query
type: array
description: Array of fields you wish to search. Available with advanced search.
- name: num_context_lines
in: query
type: integer
description: Number of context lines around each match. Available with advanced and exact code search. Introduced
in GitLab 18.11.
- name: regex
in: query
type: boolean
description: Performs a regex code search. Available with exact code search. Introduced in GitLab 18.9
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
- name: api-v4-search
path: /api/v4/search
operations:
- name: getapiv4search
method: GET
description: Search on GitLab
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: search
in: query
type: string
description: The expression it should be searched for
required: true
- name: scope
in: query
type: string
description: The scope of the search
required: true
- name: state
in: query
type: string
description: Filter results by state
- name: confidential
in: query
type: boolean
description: Filter results by confidentiality
- name: type
in: query
type: array
description: 'Filter work items by type. Only applies to work_items scope. Available types: issue, task, epic, incident,
test_case, requirement, objective, key_result, ticket'
- name: include_archived
in: query
type: boolean
description: Includes archived projects in the search. Introduced in GitLab 18.9.
- name: fields
in: query
type: array
description: Array of fields you wish to search. Available with advanced search.
- name: exclude_forks
in: query
type: boolean
description: Excludes forked projects in the search. Available with exact code search. Introduced in GitLab 18.9.
- name: num_context_lines
in: query
type: integer
description: Number of context lines around each match. Available with advanced and exact code search. Introduced
in GitLab 18.11.
- name: regex
in: query
type: boolean
description: Performs a regex code search. Available with exact code search. Introduced in GitLab 18.9
- name: page
in: query
type: integer
description: Current page number
- name: per_page
in: query
type: integer
description: Number of items per page
exposes:
- type: rest
namespace: gitlab-ci-search-rest
port: 8080
description: REST adapter for GitLab API — search. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/api/v4/groups/{id}//search
name: api-v4-groups-id-search
description: REST surface for api-v4-groups-id-(--)search.
operations:
- method: GET
name: getapiv4groupsidsearch
description: Search on GitLab within a group
call: gitlab-ci-search.getapiv4groupsidsearch
with:
id: rest.id
search: rest.search
scope: rest.scope
state: rest.state
confidential: rest.confidential
type: rest.type
include_archived: rest.include_archived
fields: rest.fields
exclude_forks: rest.exclude_forks
num_context_lines: rest.num_context_lines
regex: rest.regex
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v4/projects/{id}//search
name: api-v4-projects-id-search
description: REST surface for api-v4-projects-id-(--)search.
operations:
- method: GET
name: getapiv4projectsidsearch
description: Search on GitLab within a project
call: gitlab-ci-search.getapiv4projectsidsearch
with:
id: rest.id
search: rest.search
scope: rest.scope
ref: rest.ref
state: rest.state
confidential: rest.confidential
type: rest.type
fields: rest.fields
num_context_lines: rest.num_context_lines
regex: rest.regex
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- path: /v1/api/v4/search
name: api-v4-search
description: REST surface for api-v4-search.
operations:
- method: GET
name: getapiv4search
description: Search on GitLab
call: gitlab-ci-search.getapiv4search
with:
search: rest.search
scope: rest.scope
state: rest.state
confidential: rest.confidential
type: rest.type
include_archived: rest.include_archived
fields: rest.fields
exclude_forks: rest.exclude_forks
num_context_lines: rest.num_context_lines
regex: rest.regex
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: gitlab-ci-search-mcp
port: 9090
transport: http
description: MCP adapter for GitLab API — search. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: search-gitlab-within-group
description: Search on GitLab within a group
hints:
readOnly: true
destructive: false
idempotent: true
call: gitlab-ci-search.getapiv4groupsidsearch
with:
id: tools.id
search: tools.search
scope: tools.scope
state: tools.state
confidential: tools.confidential
type: tools.type
include_archived: tools.include_archived
fields: tools.fields
exclude_forks: tools.exclude_forks
num_context_lines: tools.num_context_lines
regex: tools.regex
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.
- name: search-gitlab-within-project
description: Search on GitLab within a project
hints:
readOnly: true
destructive: false
idempotent: true
call: gitlab-ci-search.getapiv4projectsidsearch
with:
id: tools.id
search: tools.search
scope: tools.scope
ref: tools.ref
state: tools.state
confidential: tools.confidential
type: tools.type
fields: tools.fields
num_context_lines: tools.num_context_lines
regex: tools.regex
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.
- name: search-gitlab
description: Search on GitLab
hints:
readOnly: true
destructive: false
idempotent: true
call: gitlab-ci-search.getapiv4search
with:
search: tools.search
scope: tools.scope
state: tools.state
confidential: tools.confidential
type: tools.type
include_archived: tools.include_archived
fields: tools.fields
exclude_forks: tools.exclude_forks
num_context_lines: tools.num_context_lines
regex: tools.regex
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.