Skip to main content
Glama

gitlab_get_file_content

Retrieve file content from GitLab repositories to read source code, configuration files, or documentation by specifying the file path and optional branch reference.

Instructions

Get file content from repository Returns: Raw file content as string Use when: Reading source code, configs, documentation Optional: Specify branch/tag/commit (defaults to default branch)

Example:

  • File: 'src/main.py' → Returns Python code

  • File: 'package.json' → Returns JSON content

  • File: 'README.md' → Returns Markdown

Related tools:

  • gitlab_list_repository_tree: Browse files

  • gitlab_create_commit: Modify files

  • gitlab_get_commit_diff: See file changes

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
file_pathYesFile path in repository Type: string Format: Relative path from repository root using forward slashes Required: Yes Examples: - 'README.md' (root file) - 'src/main.py' (nested file) - 'docs/api/endpoints.md' (deeply nested) - '.github/workflows/ci.yml' (hidden directory) Note: Always use forward slashes, even on Windows
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')

Implementation Reference

  • The main handler function that implements the gitlab_get_file_content tool. Extracts project_id, file_path, and optional ref from arguments, detects project if needed, and calls GitLabClient.get_file_content() to retrieve and return the file contents.
    def handle_get_file_content(client: GitLabClient, arguments: Optional[Dict[str, Any]]) -> Dict[str, Any]: """Handle getting file content""" project_id = require_project_id(client, arguments) file_path = require_argument(arguments, "file_path") ref = get_argument(arguments, "ref") return client.get_file_content(project_id, file_path, ref)
  • Defines the Tool schema including name, description, and inputSchema with properties for project_id (optional), required file_path, and optional ref.
    types.Tool( name=TOOL_GET_FILE_CONTENT, description=desc.DESC_GET_FILE_CONTENT, inputSchema={ "type": "object", "properties": { "project_id": {"type": "string", "description": desc.DESC_PROJECT_ID}, "file_path": {"type": "string", "description": desc.DESC_FILE_PATH}, "ref": {"type": "string", "description": desc.DESC_REF} }, "required": ["file_path"] } ),
  • Maps the tool name TOOL_GET_FILE_CONTENT to its handler function handle_get_file_content in the TOOL_HANDLERS dictionary, which is used by server.call_tool() to dispatch tool calls.
    TOOL_GET_FILE_CONTENT: handle_get_file_content, TOOL_GET_COMMIT: handle_get_commit,
  • Defines the constant TOOL_GET_FILE_CONTENT with the string name 'gitlab_get_file_content' used throughout for tool identification.
    TOOL_GET_FILE_CONTENT = "gitlab_get_file_content"

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