GitLab Public
liveDeveloperTechnologySearch and explore public GitLab projects and issues without authentication
Tools
search_projectsrequired: querySearch public GitLab projects by keyword, sorted by popularity. Returns project ID, name, description, star count, fork count, open issues, and web URL.
queryreqstringSearch query stringlimitoptnumberNumber of results to return (default 10, max 100)Try it
get_projectrequired: idGet full details for a public GitLab project by numeric ID or "namespace/project" path (e.g., "gitlab-org/gitlab"). Pass the path as written, with a plain slash — do not URL-encode it, the tool handle
idreqstringProject numeric ID or URL-encoded path (e.g., "gitlab-org%2Fgitlab")Try it
search_issuesrequired: querySearch issues across public GitLab projects by keyword. Returns issue title, state, author, labels, project ID, and direct URL.
queryreqstringSearch query for issue titles and descriptionslimitoptnumberNumber of results to return (default 10, max 100)Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/gitlab-public/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/gitlab-public/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_projects","arguments":{"query": "hello"}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search_projects", {"query":"example"});// Or ask in plain English:
const answer = await px.ask("search and explore public gitlab projects and issues without authentication");