← Back to project

Research Decisions



Date: 2026-02-16

Decision 1: Build New Server (No Existing Solution)



Context: Need an MCP server for GitLab. Investigate existing open‑source options.

Chosen: Build from scratch.

Rationale:


Decision 2: Go Implementation



Context: Choose language for MCP server.

Chosen: Go.

Rationale:


Decision 3: Stdio Primary, Web Optional



Context: Transport layer for MCP.

Chosen: stdio as primary; add HTTP endpoint as secondary extension.

Rationale:


Decision 4: REST API over GraphQL



Context: Choose backend API to talk to GitLab.

Chosen: REST API (v4).

Rationale:


Decision 5: Personal Access Token (PAT) Auth



Context: How will server authenticate to GitLab?

Chosen: PAT via `PRIVATE-TOKEN` header.

Rationale:


Decision 6: Idempotent High‑Level Tools



Context: Tool granularity – raw vs opinionated.

Chosen: Opinionated, high‑level tools with idempotent behavior where practical (e.g., `upsert_file`, `create_issue` checks for existing by title if needed).

Rationale: