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.

Github logoGithubVersion Control · Local subprocess (stdio)GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)63GoodAuth: not declaredGitlab MCP logoGitlab MCPVersion ControlGitLab over MCP from your own account: issues, merge requests, reviews, the repository and CI.45FairAuth: not declared

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?

Github logoChoose 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.
Explore Github

Gitlab MCP logoChoose Gitlab MCP when

  • You need dedicated capabilities in the Version Control domain.
  • You want tools like get_me, resolve_url, search_projects.
Explore Gitlab MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecGithub logoGithubGitlab MCP logoGitlab MCP
CategoryVersion ControlVersion Control
Quality signal63/100 · Good45/100 · Fair
Install commandConfirmedNot confirmed yet
TransportLocal subprocess (stdio)—
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars00
Directory activity 5 views 0 installs 0 upvotes 2 views 0 installs 0 upvotes
Tools980

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 itself
  • resolve_urlTurn a GitLab web URL into the arguments another tool takes, and name that tool
  • search_projectsFind projects by name, or within a group
  • get_projectOne project: default branch, visibility, what it has turned on
  • list_membersWho has access to a project, and with which role
  • find_usersAccounts by exact username or by name
  • search_issuesFind issues across gitlab.com, a group or a project
  • get_issueOne issue, its description marked as untrusted content, and its linked merge requests
  • create_issueCreate an issue; labels, assignees and milestone checked first
  • update_issueChange an issue's fields, refused if it changed since you read it
  • list_discussionsThe comment threads on an issue or a merge request
  • list_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 (Claude Desktop / Cursor)
{
  "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.