Skip to main content
Glama

gitlab_create_snippet

Create and share reusable code snippets in GitLab for saving solutions, documenting examples, and sharing code with customizable visibility settings.

Instructions

Create a new code snippet Creates: New snippet with specified content and metadata Use when: Saving reusable code, sharing solutions, documenting examples Required: title, file_name, content Optional: description, visibility

Example usage: { "title": "Docker Compose Template", "file_name": "docker-compose.yml", "content": "version: '3.8'\nservices:\n app:\n image: nginx", "description": "Basic Docker Compose setup", "visibility": "internal" }

Returns: Created snippet with ID and URLs

Related tools:

  • gitlab_update_snippet: Modify after creation

  • gitlab_list_snippets: View created snippets

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
titleYesSnippet title Type: string Format: Descriptive title for the snippet Example: 'Database migration script' Note: Required when creating snippets
file_nameYesSnippet file name Type: string Format: File name with extension Example: 'migration.sql', 'helper.py', 'config.yaml' Note: Used for syntax highlighting and display
contentYesSnippet content Type: string Format: Raw text content of the snippet Example: 'console.log("Hello World");' Note: Can be code, text, or any content type
descriptionNoSnippet description Type: string Format: Optional description of the snippet Example: 'Helper script for database migrations' Note: Provides context about the snippet's purpose
visibilityNoSnippet visibility Type: string Format: Visibility level for the snippet Options: 'private' | 'internal' | 'public' Default: 'private' Examples: - 'private' (only visible to author) - 'internal' (visible to authenticated users) - 'public' (visible to everyone)private

Implementation Reference

  • Handler function that implements the core logic for the gitlab_create_snippet tool. Extracts parameters using helper functions and delegates to GitLabClient.create_snippet()
    def handle_create_snippet(client: GitLabClient, arguments: Optional[Dict[str, Any]]) -> Dict[str, Any]: """Handle creating a snippet""" project_id = require_project_id(client, arguments) title = require_argument(arguments, "title") file_name = require_argument(arguments, "file_name") content = require_argument(arguments, "content") description = get_argument(arguments, "description") visibility = get_argument(arguments, "visibility", "private") return client.create_snippet( project_id=project_id, title=title, file_name=file_name, content=content, description=description, visibility=visibility )
  • MCP Tool definition including name, description, and input schema validation for gitlab_create_snippet
    types.Tool( name=TOOL_CREATE_SNIPPET, description=desc.DESC_CREATE_SNIPPET, inputSchema={ "type": "object", "properties": { "project_id": {"type": "string", "description": desc.DESC_PROJECT_ID}, "title": {"type": "string", "description": desc.DESC_SNIPPET_TITLE}, "file_name": {"type": "string", "description": desc.DESC_SNIPPET_FILE_NAME}, "content": {"type": "string", "description": desc.DESC_SNIPPET_CONTENT}, "description": {"type": "string", "description": desc.DESC_SNIPPET_DESCRIPTION}, "visibility": {"type": "string", "description": desc.DESC_SNIPPET_VISIBILITY, "enum": ["private", "internal", "public"], "default": "private"} }, "required": ["title", "file_name", "content"] } ),
  • Registration of the handler function in the TOOL_HANDLERS dictionary used by the MCP server to dispatch tool calls
    TOOL_CREATE_SNIPPET: handle_create_snippet,
  • Constant defining the tool name for consistent usage across the codebase
    TOOL_CREATE_SNIPPET = "gitlab_create_snippet"

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