Skip to main content
Glama
jolfr

Commit Helper MCP

by jolfr

get_branch_analysis

Analyze Git repository branches to assess local and remote branches, merging status, commit counts, and recent activity using GitPython for detailed insights.

Instructions

Get comprehensive branch analysis using GitPython.

Provides information about:

  • All local and remote branches

  • Branch relationships and merging status

  • Commit counts per branch

  • Last activity per branch

Args: repo_path: Path to git repository

Returns: Dict containing branch analysis

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repo_pathYes

Implementation Reference

  • The primary handler function for the 'get_branch_analysis' MCP tool. Decorated with @mcp.tool(), it initializes CommitzenService, analyzes local and remote branches using GitPython (commit counts, last commits, etc.), and returns structured analysis.
    @mcp.tool() @handle_errors(log_errors=True) def get_branch_analysis(repo_path: str) -> Dict[str, Any]: """ Get comprehensive branch analysis using GitPython. Provides information about: - All local and remote branches - Branch relationships and merging status - Commit counts per branch - Last activity per branch Args: repo_path: Path to git repository Returns: Dict containing branch analysis """ # Initialize service for the specified repository try: target_service = CommitzenService(repo_path=repo_path) except Exception as e: raise RepositoryError( f"Failed to initialize service for repository '{repo_path}'", repo_path=repo_path, cause=e ) if not target_service.git_enabled: # For backward compatibility with tests return { "success": False, "error": "Branch analysis requires GitPython", "repository_path": repo_path } try: repo = target_service.git_service.repo # Analyze local branches local_branches = [] for branch in repo.branches: try: last_commit = branch.commit commit_count = sum(1 for _ in repo.iter_commits(branch)) local_branches.append({ "name": branch.name, "is_current": branch == repo.active_branch, "last_commit": { "sha": last_commit.hexsha[:8], "message": last_commit.summary, "author": last_commit.author.name, "date": last_commit.committed_datetime.isoformat() }, "commit_count": commit_count }) except Exception as e: logger.warning(f"Could not analyze branch {branch.name}: {e}") # Analyze remote branches remote_branches = [] try: for remote in repo.remotes: for ref in remote.refs: if ref.name.endswith('/HEAD'): continue try: last_commit = ref.commit remote_branches.append({ "name": ref.name, "remote": remote.name, "last_commit": { "sha": last_commit.hexsha[:8], "message": last_commit.summary, "author": last_commit.author.name, "date": last_commit.committed_datetime.isoformat() } }) except Exception as e: logger.warning(f"Could not analyze remote branch {ref.name}: {e}") except Exception as e: logger.warning(f"Could not analyze remote branches: {e}") return create_success_response({ "repository_path": repo_path, "implementation": target_service.git_implementation, "branch_analysis": { "current_branch": repo.active_branch.name if repo.active_branch else "HEAD (detached)", "local_branches": { "branches": local_branches, "count": len(local_branches) }, "remote_branches": { "branches": remote_branches, "count": len(remote_branches) }, "summary": { "total_branches": len(local_branches) + len(remote_branches), "local_count": len(local_branches), "remote_count": len(remote_branches) } } }) except Exception as e: logger.error(f"Failed to get branch analysis: {e}") raise ServiceError( f"Failed to get branch analysis: {e}", service_name="get_branch_analysis", cause=e )
  • Import of enhanced_tools module in the main MCP server file, which registers the get_branch_analysis tool via its @mcp.tool() decorator when the module is imported.
    from .server.enhanced_tools import ( analyze_repository_health, get_detailed_diff_analysis, get_branch_analysis, smart_commit_suggestion, batch_commit_analysis, )

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/jolfr/commit-helper-mcp'

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