""" Branch listing tool. """ from typing import List, Dict from mcp.server.fastmcp import Context from pmcp.mcp_server.github_server.services.branches import BranchService from pmcp.mcp_server.github_server.github import github_client service = BranchService(github_client) async def list_branches(ctx: Context, owner: str, repo: str) -> Dict[str, List[str]]: """ Gets the list of branches. Args: ctx: FastMCP request context (handles errors). owner (str): Repository owner. repo (str): Repository name. Returns: {"branches": ["main", "dev", …]} """ try: branches = await service.list_branches(owner, repo) names = [b["name"] for b in branches] return {"branches": names} except Exception as exc: error_msg = f"Error while getting the list of branches for repository {repo}. Error: {str(exc)}" await ctx.error(str(exc)) raise