Skip to main content
Glama

Get Project

get_project
Read-onlyIdempotent

Get 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 handles that internally. Returns name, description, stars, forks, default branch, topics, and last activity date.

Input Schema

NameRequiredDescriptionDefault
idYesProject numeric ID (e.g., "278964") or "namespace/project" path with a plain slash (e.g., "gitlab-org/gitlab"). Do not percent-encode the slash.

Output Schema

NameRequiredDescriptionDefault
idYesProject numeric ID
urlYesProject web URL
nameYesProject name
forksYesFork count
starsYesStar count
topicsYesProject topics/tags
archivedYesWhether the project is archived
full_pathYesProject path with namespace
namespaceYesProject namespace full path
created_atYesISO timestamp of creation
visibilityYesProject visibility (public, private, etc.)
descriptionYesProject description
open_issuesYesOpen issues count
last_activityYesISO timestamp of last activity
default_branchYesDefault branch name

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "id": "278964"
      -  },
      -  {
      -    "id": "gitlab-org%2Fgitlab"
      -  }
      -]New value: +[
      +  {
      +    "id": "278964"
      +  },
      +  {
      +    "id": "gitlab-org/gitlab"
      +  }
      +]
    • changedInput schema / properties / id / description
      Previous value: -"Project numeric ID or URL-encoded path (e.g., \"gitlab-org%2Fgitlab\")"New value: +"Project numeric ID (e.g., \"278964\") or \"namespace/project\" path with a plain slash (e.g., \"gitlab-org/gitlab\"). Do not percent-encode the slash."
  2. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "id": "278964"
      +  },
      +  {
      +    "id": "gitlab-org%2Fgitlab"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "archived": {
      +      "description": "Whether the project is archived",
      +      "type": "boolean"
      +    },
      +    "created_at": {
      +      "description": "ISO timestamp of creation",
      +      "type": "string"
      +    },
      +    "default_branch": {
      +      "description": "Default branch name",
      +      "type": "string"
      +    },
      +    "description": {
      +      "description": "Project description",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "forks": {
      +      "description": "Fork count",
      +      "type": "number"
      +    },
      +    "full_path": {
      +      "description": "Project path with namespace",
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "Project numeric ID",
      +      "type": "number"
      +    },
      +    "last_activity": {
      +      "description": "ISO timestamp of last activity",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Project name",
      +      "type": "string"
      +    },
      +    "namespace": {
      +      "description": "Project namespace full path",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "open_issues": {
      +      "description": "Open issues count",
      +      "type": "number"
      +    },
      +    "stars": {
      +      "description": "Star count",
      +      "type": "number"
      +    },
      +    "topics": {
      +      "description": "Project topics/tags",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "url": {
      +      "description": "Project web URL",
      +      "type": "string"
      +    },
      +    "visibility": {
      +      "description": "Project visibility (public, private, etc.)",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "name",
      +    "full_path",
      +    "description",
      +    "url",
      +    "stars",
      +    "forks",
      +    "open_issues",
      +    "default_branch",
      +    "visibility",
      +    "archived",
      +    "topics",
      +    "namespace",
      +    "created_at",
      +    "last_activity"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • removedInput schema / examples
      Removed value: -[
      -  {
      -    "id": "278964"
      -  },
      -  {
      -    "id": "gitlab-org%2Fgitlab"
      -  }
      -]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "archived": {
      -      "description": "Whether the project is archived",
      -      "type": "boolean"
      -    },
      -    "created_at": {
      -      "description": "ISO timestamp of creation",
      -      "type": "string"
      -    },
      -    "default_branch": {
      -      "description": "Default branch name",
      -      "type": "string"
      -    },
      -    "description": {
      -      "description": "Project description",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "forks": {
      -      "description": "Fork count",
      -      "type": "number"
      -    },
      -    "full_path": {
      -      "description": "Project path with namespace",
      -      "type": "string"
      -    },
      -    "id": {
      -      "description": "Project numeric ID",
      -      "type": "number"
      -    },
      -    "last_activity": {
      -      "description": "ISO timestamp of last activity",
      -      "type": "string"
      -    },
      -    "name": {
      -      "description": "Project name",
      -      "type": "string"
      -    },
      -    "namespace": {
      -      "description": "Project namespace full path",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "open_issues": {
      -      "description": "Open issues count",
      -      "type": "number"
      -    },
      -    "stars": {
      -      "description": "Star count",
      -      "type": "number"
      -    },
      -    "topics": {
      -      "description": "Project topics/tags",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "url": {
      -      "description": "Project web URL",
      -      "type": "string"
      -    },
      -    "visibility": {
      -      "description": "Project visibility (public, private, etc.)",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "id",
      -    "name",
      -    "full_path",
      -    "description",
      -    "url",
      -    "stars",
      -    "forks",
      -    "open_issues",
      -    "default_branch",
      -    "visibility",
      -    "archived",
      -    "topics",
      -    "namespace",
      -    "created_at",
      -    "last_activity"
      -  ],
      -  "type": "object"
      -}New value: +null
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "archived": {
      +      "description": "Whether the project is archived",
      +      "type": "boolean"
      +    },
      +    "created_at": {
      +      "description": "ISO timestamp of creation",
      +      "type": "string"
      +    },
      +    "default_branch": {
      +      "description": "Default branch name",
      +      "type": "string"
      +    },
      +    "description": {
      +      "description": "Project description",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "forks": {
      +      "description": "Fork count",
      +      "type": "number"
      +    },
      +    "full_path": {
      +      "description": "Project path with namespace",
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "Project numeric ID",
      +      "type": "number"
      +    },
      +    "last_activity": {
      +      "description": "ISO timestamp of last activity",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Project name",
      +      "type": "string"
      +    },
      +    "namespace": {
      +      "description": "Project namespace full path",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "open_issues": {
      +      "description": "Open issues count",
      +      "type": "number"
      +    },
      +    "stars": {
      +      "description": "Star count",
      +      "type": "number"
      +    },
      +    "topics": {
      +      "description": "Project topics/tags",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "url": {
      +      "description": "Project web URL",
      +      "type": "string"
      +    },
      +    "visibility": {
      +      "description": "Project visibility (public, private, etc.)",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "name",
      +    "full_path",
      +    "description",
      +    "url",
      +    "stars",
      +    "forks",
      +    "open_issues",
      +    "default_branch",
      +    "visibility",
      +    "archived",
      +    "topics",
      +    "namespace",
      +    "created_at",
      +    "last_activity"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "id": "278964"
      +  },
      +  {
      +    "id": "gitlab-org%2Fgitlab"
      +  }
      +]
  6. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, openWorld behavior, so the bar is low. The description adds two useful facts beyond them: only public projects are supported, and URL-encoding is handled internally rather than by the caller. It does not describe error behavior for private/nonexistent projects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences: identity/scope first, then the invocation caveat, then the return shape. All content is relevant, though the encoding caveat duplicates the schema description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be enumerated (the description's field list is a helpful bonus, not a requirement). With one 100%-documented parameter, full annotation coverage, and the public-project scope limitation stated, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'id' parameter, so the baseline is 3. The description restates the accepted formats and the no-percent-encoding rule, which the schema already states verbatim, so it adds little beyond the structured field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('Get full details for a public GitLab project') with the accepted identifier forms spelled out, so the agent knows exactly what it fetches. It does not name or contrast with siblings like search_projects, which is the one gap keeping it off a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the identifier requirement ('by numeric ID or namespace/project path'), and there is a useful invocation note about passing the slash unencoded. However, there is no when-not guidance or pointer to search_projects for the case where the agent only has a project name and no ID/path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.