create_repository
Create a new Bitbucket repository with configurable privacy settings, project assignment, and description. Returns repository information including clone URLs for immediate use.
Instructions
Create a new Bitbucket repository.
Args:
repo_slug: Repository slug (lowercase, no spaces)
project_key: Project key to create repo under (optional)
is_private: Whether repository is private (default: True)
description: Repository description
Returns:
Created repository info with clone URLs
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo_slug | Yes | ||
| project_key | No | ||
| is_private | No | ||
| description | No |
Implementation Reference
- src/server.py:107-139 (handler)MCP tool handler function decorated with @mcp.tool(). Calls BitbucketClient.create_repository and returns formatted response with name, full_name, and clone URLs.@mcp.tool() @handle_bitbucket_error @formatted def create_repository( repo_slug: str, project_key: Optional[str] = None, is_private: bool = True, description: str = "", ) -> dict: """Create a new Bitbucket repository. Args: repo_slug: Repository slug (lowercase, no spaces) project_key: Project key to create repo under (optional) is_private: Whether repository is private (default: True) description: Repository description Returns: Created repository info with clone URLs """ client = get_client() result = client.create_repository( repo_slug=repo_slug, project_key=project_key, is_private=is_private, description=description, ) return { "name": result.get("name"), "full_name": result.get("full_name"), "clone_urls": client.extract_clone_urls(result), }
- src/bitbucket_client.py:300-328 (helper)BitbucketClient helper method that performs the actual POST request to Bitbucket API to create the repository.def create_repository( self, repo_slug: str, project_key: Optional[str] = None, is_private: bool = True, description: str = "", ) -> dict[str, Any]: """Create a new repository. Args: repo_slug: Repository slug project_key: Project key to create repo under is_private: Whether repo is private (default: True) description: Repository description Returns: Created repository info """ payload = { "scm": "git", "is_private": is_private, } if project_key: payload["project"] = {"key": project_key} if description: payload["description"] = description result = self._request("POST", self._repo_path(repo_slug), json=payload) return self._require_result(result, "create repository", repo_slug)