GitLab ACTION
List Projects
List or search GitLab projects, optionally filtering by search term, membership, or ownership. Use this to discover projects (and their IDs) before acting on them with other GitLab actions. Supports ordering by
name, path, creation/update time, star count, last activity, or search similarity, plus pagination. The similarity order requires a Search term. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's GitLab account once, then configure and run List Projects from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "gitlab-list-projects",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
gitlab: { authProvisionId: "apn_xxxxxxx" },
search: "Search",
membership: true,
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "gitlab-list-projects",
"configured_props": {
"gitlab": { "authProvisionId": "apn_xxxxxxx" },
"search": "Search",
"membership": true
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "gitlab",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "gitlab-list-projects",
arguments: {
search: "Search",
membership: true,
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
search Search | string | Return the list of projects with a path, name, or description matching the search criteria (case-insensitive, substring match) Optional |
membership Membership | boolean | Limit by projects that the current user is a member of Optional |
owned Owned | boolean | Limit by projects explicitly owned by the current user Optional |
simple Simple | boolean | Return only limited fields for each project Optional |
orderBy Order By | string | Order projects by the given field. Default is created_at. Must be similarity only when Search is provided Optional |
sort Sort | string | Sort order. Default is desc. Must be one of: asc or desc Optional |
perPage Per Page | integer | Number of projects to return per page (max 100) Optional |
page Page | integer | The page of results to retrieve Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- gitlab-list-projects
- Version
- 0.0.3
- App
- GitLab
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗