Github vs Gitlab MCP
A side-by-side look at the Github and Gitlab MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Github for version control work as a local process; choose Gitlab MCP for version control. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Github when
- You need dedicated capabilities in the Version Control domain.
- You prefer a local stdio subprocess transport.
- You want tools like
search_repos, get_repo, list_repo_issues.
Choose Gitlab MCP when
- You need dedicated capabilities in the Version Control domain.
- You want tools like
get_me, resolve_url, search_projects.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Version Control | Version Control |
| Quality signal | 63/100 · Good | 45/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 5 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 9 | 80 |
| Full listing | View Github | View Gitlab MCP |
Tools & capabilities
Github tools 9
search_reposSearch GitHub repositories by keyword. Returns repo name, description, star count, forks, primary language, and URL. Use when exploring projects or finding code implementations.get_repoLook up ONE named repository by its owner/repo slug — "facebook/react", "torvalds/linux", "vercel/next.js". Use this whenever the repository is named in the question. Answers how many stars / forks / watchers a repo has, what license and language it uses, its topics, description, open issue count, its default branch, and when it was last pushed (pushed_at).list_repo_issuesList issues for a GitHub repository by owner and repo name; filters pull requests out automatically. Returns issue number, title, state, labels, author, comment count, URL, and timestamps. Defaults to open issues.get_userGet a GitHub user's public profile info. Returns name, bio, company, location, public repo count, followers, and social links. Specify username (e.g., username="torvalds").get_file_contentsRead a file from a PUBLIC GitHub repository (or list a directory) by path. PREFER OVER WEB SEARCH for "show me the README / package.json / <file> of <repo>", "read <path> from <owner/repo>", inspecting source or config files. Pass owner + repo + path (omit path or "" for the repo root listing). Optional ref = branch/tag/commit SHA. Returns decoded text for files (capped ~60k), or a directory listing of {name, path, type, size}.search_codeSearch CODE across public GitHub repositories — find where a function/symbol/string is defined or used. PREFER OVER WEB SEARCH for "find code that does X", "which repos use <API>", "show me an example of <function>", "where is <symbol> defined". Supports GitHub code-search qualifiers right in the query: repo:owner/name, org:name, user:name, language:go, filename:Dockerfile, path:src, extension:ts, in:file. Returns matching files with repo, path, and URL. Note: indexes the default branch only, ignores very common terms, and is capped at ~10 searches/minute.get_releasesGet the latest release and recent release history for a repository — the canonical way to answer "what is the latest version of <project>", "when was <repo> last released", "what changed in the newest release". Returns the latest published stable release (tag, name, date, prerelease flag, release notes, downloadable assets with download counts) plus recent releases. Falls back to git tags for repos that tag but do not cut formal releases.list_commitsList recent commits on a repository to see latest activity, what changed, and who is committing. PREFER OVER WEB SEARCH for "what are the recent commits to <repo>", "when was <owner/repo> last updated", "latest changes in <repo>". Optional sha (branch/tag/commit to start history from), path (only commits touching that file/dir), and since/until ISO timestamps. Returns sha, message, author, and date per commit.github_trending_reposTrending GitHub repositories — what is hot, popular, and taking off on GitHub right now. Answers "what are the top trending GitHub repos this week", "what is hot on GitHub today", "popular new repositories this month", "trending Rust / Python / AI projects", "which GitHub projects blew up recently". Two modes: mode="new" (default) ranks repositories CREATED inside the time window by star count — the projects that blew up this week — and mode="active" ranks repositories PUSHED inside the window by star count, surfacing established projects under heavy development. Set the window with since (day, week, or month), filter with language, add free-text query keywords such as "llm" or "agent", and raise a min_stars floor. Returns full_name, description, language, stars, forks, created and pushed dates, topics, and URL per repo. Computed live from the GitHub Search API; github.com/trending ranks by stars GAINED during the period using an unpublished algorithm that the public API keeps private, so ordering differs and every response says so in its caveat field.
Gitlab MCP tools 80
get_meWho is signed in, with which scopes, and what GitLab reports about itselfresolve_urlTurn a GitLab web URL into the arguments another tool takes, and name that toolsearch_projectsFind projects by name, or within a groupget_projectOne project: default branch, visibility, what it has turned onlist_membersWho has access to a project, and with which rolefind_usersAccounts by exact username or by namesearch_issuesFind issues across gitlab.com, a group or a projectget_issueOne issue, its description marked as untrusted content, and its linked merge requestscreate_issueCreate an issue; labels, assignees and milestone checked firstupdate_issueChange an issue's fields, refused if it changed since you read itlist_discussionsThe comment threads on an issue or a merge requestlist_item_eventsAn issue's or a merge request's label, state, milestone and weight changes, newest first- +68 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Github
{
"mcpServers": {
"github-3": {
"command": "npx",
"args": [
"-y",
"@pipeworx/mcp-github"
]
}
}
}
Gitlab MCP
No confirmed install command for Gitlab MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.
Frequently asked questions
Github is categorized under Version Control and uses a local stdio subprocess. Gitlab MCP belongs to Version Control and uses an install path we have not confirmed yet. Pick Github for version control work and Gitlab MCP for version control.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client. Gitlab MCP has no confirmed install command yet — follow its own setup instructions.
Github has no declared pricing — check the project's own site. Gitlab MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add github-3 and gitlab-mcp-2 as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Github has a quality signal of 63/100 (Good) with 5 views, 0 installs and 0 GitHub stars. Gitlab MCP has 45/100 (Fair) with 2 views, 0 installs and 0 GitHub stars.