Create a pipeline trigger token in the GitLab project under Settings > CI/CD > Pipeline triggers, noting the generated token value
Send POST to 'https://gitlab.example.com/api/v4/projects/{id}/trigger/pipeline' with form fields 'token=YOUR_TRIGGER_TOKEN' and 'ref=branch-or-tag'
Pass arbitrary variables by including additional form fields prefixed with 'variables[KEY]=value' in the request body
The response includes the pipeline 'id'; poll GET '/api/v4/projects/{id}/pipelines/{pipeline_id}' checking the 'status' field until it reaches 'success', 'failed', or 'canceled'
Retrieve job logs for failed jobs via GET '/api/v4/projects/{id}/jobs/{job_id}/trace' for debugging
Known gotchas
Pipeline trigger tokens are project-scoped and do not carry user permissions; jobs triggered this way run with CI/CD permissions, not the token creator's personal permissions
The 'ref' must exist in the repository at trigger time; triggering a non-existent branch returns a 400 or creates a pipeline that immediately fails depending on GitLab version
Variables passed via trigger tokens are visible in the pipeline UI by default; mark sensitive variables as masked in project CI/CD settings or avoid passing secrets this way
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp