Skip to main content
Glama

gitlab_list_repository_tree

Browse and list files and directories in a GitLab repository to explore project structure, with options for recursive listing and specific paths.

Instructions

Browse repository directory structure Returns: Array of files and directories Use when: Exploring repo structure, listing files Optional: Recursive listing, specific path

Example response: [{ "name": "src", "type": "tree", "path": "src", "mode": "040000" }, { "name": "README.md", "type": "blob", "path": "README.md", "mode": "100644" }]

Related tools:

  • gitlab_get_file_content: Read file contents

  • gitlab_search_in_project: Search in files

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idNoProject identifier (auto-detected if not provided) Type: integer OR string Format: numeric ID or 'namespace/project' Optional: Yes - auto-detects from current git repository Examples: - 12345 (numeric ID) - 'gitlab-org/gitlab' (namespace/project path) - 'my-group/my-subgroup/my-project' (nested groups) Note: If in a git repo with GitLab remote, this can be omitted
pathNoDirectory path in repository Type: string Format: Relative path using forward slashes Default: '' (empty string for root) Examples: - '' (repository root) - 'src' (src directory) - 'src/components' (nested directory) - 'tests/unit/models' (deeply nested) Note: Don't include trailing slash
refNoGit reference Type: string Format: branch name, tag name, or commit SHA Optional: Yes - defaults to project's default branch Examples: - 'main' (branch) - 'feature/new-login' (feature branch) - 'v2.0.0' (tag) - 'abc1234' (short commit SHA) - 'e83c5163316f89bfbde7d9ab23ca2e25604af290' (full SHA) Default: Project's default branch (usually 'main' or 'master')
recursiveNoInclude subdirectories Type: boolean Default: false Options: - true: Include all subdirectories recursively - false: Only immediate children Use case: true for full directory tree, false for folder contents

Implementation Reference

  • The main handler function that implements the core logic for the 'gitlab_list_repository_tree' tool. Extracts parameters, resolves project ID (with git detection fallback), and delegates to GitLabClient.get_repository_tree().
    def handle_get_repository_tree(client: GitLabClient, arguments: Optional[Dict[str, Any]]) -> Dict[str, Any]:
        """Handle getting repository tree"""
        project_id = require_project_id(client, arguments)
        path = get_argument(arguments, "path", "")
        ref = get_argument(arguments, "ref")
        recursive = get_argument(arguments, "recursive", False)
        
        return client.get_repository_tree(project_id, path, ref, recursive)
  • MCP Tool schema definition including input validation schema, properties (project_id, path, ref, recursive), and description reference.
        name=TOOL_LIST_REPOSITORY_TREE,
        description=desc.DESC_LIST_TREE,
        inputSchema={
            "type": "object",
            "properties": {
                "project_id": {"type": "string", "description": desc.DESC_PROJECT_ID},
                "path": {"type": "string", "description": desc.DESC_TREE_PATH, "default": ""},
                "ref": {"type": "string", "description": desc.DESC_REF},
                "recursive": {"type": "boolean", "description": desc.DESC_RECURSIVE, "default": False}
            }
        }
    ),
  • Mapping of tool name constant to handler function in the TOOL_HANDLERS dictionary, used by server.call_tool() to dispatch executions.
    TOOL_LIST_REPOSITORY_TREE: handle_get_repository_tree,
  • Tool dispatch logic in MCP server.call_tool() that looks up handler by tool name from TOOL_HANDLERS and executes it.
    handler = TOOL_HANDLERS.get(name)
    if not handler:
        raise ValueError(f"Unknown tool: {name}")
  • Constant definition for the tool name string 'gitlab_list_repository_tree', imported and used across handler registration, schema, and dispatch.
    TOOL_LIST_REPOSITORY_TREE = "gitlab_list_repository_tree"

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vijay-Duke/mcp-gitlab'

If you have feedback or need assistance with the MCP directory API, please join our Discord server