search_repositoriesLABSCO SUMMARY
A fixed GitLab server with the whole change flow in it.
It carries the ordinary GitLab operations — read, commit, branch, issue, merge request — and repairs the schema validation bug that made repository search fail in the standard implementation.
What it is
A GitLab client covering search, file reads and the write path through to merge requests. It is a corrected implementation: the schema validation that broke search_repositories in the standard GitLab server is fixed here.
What you get
- GitLab projects searched by name
- File or directory contents read out of a repository
- A single file created or updated, or several files pushed in one commit
- New projects created and existing ones forked
- Branches created
- Issues and merge requests opened
Requirements
Node.js v14 or higher and a GitLab personal access token scoped to what you need — api for full access, or read_api, read_repository and write_repository for narrower ones. The token and the GitLab API base URL both go in your client config, so self-hosted instances work.
Setup effort
Build from source — git clone https://github.com/chris-miaskowski/custom-gitlab-mcp-server
USE CASES
Making a change and opening it for review
Branch, push the files in one commit, then raise the merge request — three tools, one exchange.
Reading code you do not have checked out
Fetch a file or a directory listing straight from the project rather than cloning it first.
Filing what you just found
Open the issue while the detail is still in the conversation, instead of after a context switch.
Starting from someone else's project
Fork it, branch, and commit into your own copy.
Setting up a new repository
Create the project and put the first files into it in the same pass.
9 tools
Listed in project docs. Your client may show a different list.
get_file_contentscreate_or_update_filepush_filescreate_repositorycreate_issuecreate_merge_requestfork_repositorycreate_branchBEFORE YOU INSTALL
What to know first
Tools you get
9 tools named in the project's documentation.
Requires
- Node.js v14 or higher
- A GitLab personal access token
- GITLAB_PERSONAL_ACCESS_TOKEN in your environment
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/chris-miaskowski/custom-gitlab-mcp-server
cd custom-gitlab-mcp-server
npm installMCP Clients
Claude Desktop
{
"mcpServers": {
"github.com/modelcontextprotocol/servers/tree/main/src/gitlab": {
"command": "node",
"args": [
"<YOUR_PATH_TO_CUSTOM_GITLAB_MCP_SERVER>/index.js"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>",
"GITLAB_API_URL": "https://<YOUR_GITLAB_INSTANCE>/api/v4"
}
}
}
}<YOUR_PATH_TO_CUSTOM_GITLAB_MCP_SERVER> is the full path of the folder the clone created (index.js sits at its top level), and <YOUR_GITLAB_PERSONAL_ACCESS_TOKEN> is a GitLab personal access token (api, or read_api plus read_repository and write_repository), and <YOUR_GITLAB_INSTANCE> is your GitLab host, e.g. gitlab.com.