Ir al contenido

Meta-herramientas

Las meta-herramientas son el modo de operación predeterminado de GitLab MCP Server. En lugar de exponer cada operación de la API de GitLab como una herramienta MCP separada, las meta-herramientas agrupan operaciones relacionadas bajo una única herramienta con un parámetro action que despacha al handler correcto.

Los LLMs tienen ventanas de contexto limitadas. Cuando un servidor MCP registra 1006 herramientas individuales, solo las descripciones de las herramientas consumen una gran porción de los tokens disponibles, dejando menos espacio para la conversación real.

ModoNº de herramientasOverhead de tokensFuncionalidad
Individual1006Muy altoCompleta
Meta (base)40BajoCompleta
Meta (enterprise)59BajoCompleta + Premium/Ultimate

Las meta-herramientas reducen el recuento de herramientas en un 96% mientras preservan el 100% de la funcionalidad. Cada operación de herramienta individual está disponible como una acción dentro de una de las meta-herramientas de dominio.

Cada meta-herramienta define un enum action que lista todas las operaciones disponibles. El servidor valida la acción y la despacha a la función handler correspondiente internamente.

flowchart LR
    A[LLM llama a gitlab_issue] --> B{parámetro action}
    B -->|list| C[Handler de listar issues]
    B -->|get| D[Handler de obtener issue]
    B -->|create| E[Handler de crear issue]
    B -->|update| F[Handler de actualizar issue]
    B -->|delete| G[Handler de eliminar issue]
    B -->|close| H[Handler de cerrar issue]

El parámetro action siempre es requerido y debe ser uno de los valores enumerados. Los parámetros adicionales dependen de la acción elegida.

{
"tool": "gitlab_issue",
"arguments": {
"action": "create",
"project": "my-group/my-project",
"title": "Update API documentation",
"description": "The REST API docs are missing the new v2 endpoints",
"labels": "documentation,api",
"assignee_ids": "42",
"milestone_id": 7
}
}
{
"tool": "gitlab_merge_request",
"arguments": {
"action": "list",
"project": "my-group/my-project",
"state": "opened",
"order_by": "updated_at",
"per_page": 20
}
}
{
"tool": "gitlab_search",
"arguments": {
"action": "code",
"search": "func handleWebhook",
"project": "my-group/my-project"
}
}

Gestiona el ciclo de vida y la configuración de proyectos.

Acciones: list, get, create, update, delete, archive, unarchive, fork, star, unstar, transfer, languages, users, forks, starrers, hooks, create_hook, update_hook, delete_hook

Gestión completa del ciclo de vida de issues incluyendo etiquetas, asignados y transiciones de estado.

Acciones: list, get, create, update, delete, close, reopen, subscribe, unsubscribe, move, clone, add_label, remove_label, set_assignees, add_time_spent, reset_time_spent, set_time_estimate, reset_time_estimate

Flujo de trabajo completo de merge requests desde la creación hasta el merge.

Acciones: list, get, create, update, merge, close, reopen, rebase, approve, unapprove, subscribe, unsubscribe, add_label, remove_label, set_assignees, set_reviewers, add_time_spent, reset_time_spent

Gestión y monitorización de pipelines.

Acciones: list, get, create, cancel, retry, delete, variables, test_report, bridges, wait

Gestión de jobs de CI/CD.

Acciones: list, get, play, cancel, retry, erase, trace, artifacts, download_artifact, delete_artifacts, delete_project_artifacts, wait

Operaciones con ramas.

Acciones: list, get, create, delete, merged

Operaciones con commits e historial.

Acciones: list, get, diff, refs, cherry_pick, revert, comments, create_comment, statuses, merge_requests

Gestión de tags.

Acciones: list, get, create, delete

Gestión del ciclo de vida de releases.

Acciones: list, get, create, update, delete, evidences

Gestión de etiquetas para proyectos y grupos.

Acciones: list, get, create, update, delete, subscribe, unsubscribe

Seguimiento de milestones.

Acciones: list, get, create, update, delete, issues, merge_requests

Membresía de proyectos y grupos.

Acciones: list, get, add, update, remove, all

Gestión de grupos y subgrupos.

Acciones: list, get, create, update, delete, projects, subgroups, members, labels, milestones, hooks

Búsqueda entre recursos en toda tu instancia de GitLab.

Acciones: code, issues, merge_requests, projects, users, commits, blobs, notes, milestones, wiki_blobs

Información y búsqueda de usuarios.

Acciones: get, current, list, status, activities

Gestión de páginas wiki.

Acciones: list, get, create, update, delete

Lista personal de tareas pendientes.

Acciones: list, mark_done, mark_all_done

Establecer GITLAB_ENTERPRISE=true habilita 15 meta-herramientas adicionales que exponen funciones de GitLab Premium y Ultimate. Además, se añaden 6 rutas de acción solo enterprise a las meta-herramientas base existentes:

  • Iterations → enrutadas a través de gitlab_issue
  • Project mirrors → enrutadas a través de gitlab_project
  • SSH certificates → enrutadas a través de gitlab_group
  • Security settings → divididas entre gitlab_project y gitlab_group
  • Group credentials → enrutadas a través de gitlab_group
  • Group analytics → enrutadas a través de gitlab_group
VariablePredeterminadoDescripción
META_TOOLStrueHabilitar modo meta-herramientas. Establecer a false para herramientas individuales.
GITLAB_ENTERPRISEfalseHabilitar meta-herramientas solo enterprise (requiere Premium/Ultimate).