get_git_status
Check Git repository status and view staged files to prepare for committing changes in the Commit Helper MCP server.
Instructions
Get current git repository status and staged files.
Args: repo_path: Path to git repository
Returns: Dict containing: - git_enabled: Whether git operations are available - staged_files: List of staged file paths - staged_count: Number of staged files - repository_path: Path to git repository - repository_status: Additional status information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | Yes |
Implementation Reference
- The main handler function for the 'get_git_status' MCP tool. It initializes a CommitzenService for the given repo_path, retrieves the repository status, and returns a formatted dictionary with git status information including staged files. Includes comprehensive error handling and backward compatibility fields.@mcp.tool() @handle_errors(log_errors=True) def get_git_status(repo_path: str) -> Dict[str, Any]: """ Get current git repository status and staged files. Args: repo_path: Path to git repository Returns: Dict containing: - git_enabled: Whether git operations are available - staged_files: List of staged file paths - staged_count: Number of staged files - repository_path: Path to git repository - repository_status: Additional status information """ # For backward compatibility with tests expecting git_enabled field try: # Initialize service for the specified repository try: target_service = CommitzenService(repo_path=repo_path) except Exception as e: return { "git_enabled": False, "error": f"Failed to initialize service for repository '{repo_path}': {e}", "staged_files": [], "staged_count": 0, "repository_path": repo_path, } if not target_service.git_enabled: return { "git_enabled": False, "error": "Git operations not available - not in a git repository", "staged_files": [], "staged_count": 0, "repository_path": repo_path, } status = target_service.get_repository_status() return { "git_enabled": True, "staged_files": status.get("staged_files", []), "staged_count": status.get("staged_files_count", 0), "repository_path": status.get("repository_path"), "staging_clean": status.get("staging_clean", True), "repository_status": status, "success": True, } except Exception as e: logger.error(f"Failed to get git status: {e}") return { "git_enabled": False, "error": str(e), "staged_files": [], "staged_count": 0, "repository_path": repo_path, "success": False, }
- src/commit_helper_mcp/mcp_server.py:13-17 (registration)Module imports that trigger registration of all MCP tools via @mcp.tool() decorators, including git_tools.py which contains get_git_status.from .server import message_tools from .server import git_tools from .server import workflow_tools from .server import enhanced_tools from .server import resources
- src/commit_helper_mcp/mcp_server.py:33-43 (registration)Explicit re-export of git tools including get_git_status for backward compatibility and module API.# Git tools from .server.git_tools import ( get_git_implementation_info, get_enhanced_git_status, get_git_status, preview_git_commit, execute_git_commit, generate_and_commit, validate_commit_readiness, stage_files_and_commit, )
- Docstring providing input/output schema description for the tool.""" Get current git repository status and staged files. Args: repo_path: Path to git repository Returns: Dict containing: - git_enabled: Whether git operations are available - staged_files: List of staged file paths - staged_count: Number of staged files - repository_path: Path to git repository - repository_status: Additional status information """