Skip to main content
Glama

Commit Helper MCP

by jolfr
unused-functionality-summary.md6.47 kB
# Unused Functionality Summary ## Analysis of pyproject.toml Dependencies for Git Commit Operations ### Question Answered **Original Question**: "Is there any unused functionality in the 'pyproject.toml' dependencies of the project to allow actual commits to be made, with user approval?" **Answer**: **YES** - There is significant unused functionality in the `commitizen>=3.0.0` dependency that can enable actual git commits with user approval. ### Current Dependencies Analysis From `pyproject.toml`: ```toml dependencies = [ "mcp[cli]>=1.10.0", "commitizen>=3.0.0", ] ``` #### MCP Dependency (`mcp[cli]>=1.10.0`) - **Currently Used**: MCP protocol implementation, FastMCP server framework - **Unused for Git**: No direct git functionality, but provides the communication layer for user approval workflows #### Commitizen Dependency (`commitizen>=3.0.0`) - **Currently Used**: ~30% of available functionality - Commit message generation and validation - Plugin system and adapters - Configuration management - **UNUSED for Git Operations**: ~70% of available functionality ### Unused Commitizen Functionality #### 1. Direct Git Integration APIs **Available but unused:** ```python from commitizen.git import ( GitCommit, # Execute actual git commits GitTag, # Create git tags is_git_project, # Repository validation get_staged_files_remotes, # Get staged files get_current_branch, # Branch information get_commits # Commit history ) ``` #### 2. Commit Execution Classes **Available but unused:** ```python from commitizen.commands.commit import Commit # Full commit workflow implementation with: # - Interactive message generation # - Git commit execution # - Hook integration # - Error handling ``` #### 3. Git-Specific Exception Handling **Available but unused:** ```python from commitizen.exceptions import ( GitCommandError, # Git operation failures NoStagedFilesError, # No files to commit NotAGitProjectError, # Invalid repository NoCommitsFoundError # Empty repository ) ``` ### What Can Be Implemented #### Core Git Operations 1. **Repository Status** - Check if directory is a git repository - Get staged files and their status - Validate repository state before operations 2. **Commit Preview (Dry-Run)** - Show what would be committed - Display affected files - Preview git command that would be executed 3. **Actual Commit Execution** - Execute `git commit` with generated messages - Support for staging options (`-a`, `--signoff`) - Handle git hooks and validation 4. **Safety Mechanisms** - Default to dry-run mode - Require explicit user approval - Comprehensive error handling ### Implementation Approach #### New MCP Tools That Could Be Added ```python # Repository status tools @mcp.tool() def get_repository_status() -> Dict[str, Any]: """Get git repository status and staged files.""" @mcp.tool() def get_staged_files() -> Dict[str, Any]: """List files currently staged for commit.""" # Commit preview tools @mcp.tool() def preview_commit(message: str, stage_all: bool = False) -> Dict[str, Any]: """Preview commit without executing (dry-run).""" # Commit execution tools @mcp.tool() def execute_commit( message: str, stage_all: bool = False, force_execute: bool = False ) -> Dict[str, Any]: """Execute actual git commit with safety checks.""" # Combined workflow tools @mcp.tool() def stage_and_commit( type: str, subject: str, dry_run: bool = True ) -> Dict[str, Any]: """Generate message and commit in one step.""" ``` #### User Approval Workflow 1. **Generate Message** → Use existing MCP tools 2. **Preview Commit** → New tool shows files, command, safety checks 3. **Request Approval** → AI assistant presents preview to user 4. **Execute Commit** → Only after explicit user confirmation ### Safety Features Available #### Built-in Commitizen Safety - Repository validation before operations - Staged files checking - Git hook integration - Proper error handling and rollback #### Additional Safety Measures - Default `dry_run=True` for all operations - Explicit `force_execute=True` required for actual commits - Comprehensive preview before execution - User approval required through MCP protocol ### Benefits of Implementation 1. **Leverages Existing Dependencies**: No new dependencies required 2. **Consistent with Commitizen**: Uses same APIs as Commitizen CLI 3. **Safe by Default**: Multiple safety checks and approval mechanisms 4. **MCP Integration**: Perfect for AI assistant workflows 5. **User Control**: Explicit approval required for all git operations ### Example Usage Flow ```python # 1. Generate commit message (existing functionality) message_result = use_mcp_tool( server_name="commitizen-mcp-connector", tool_name="generate_commit_message", arguments={ "type": "feat", "subject": "add git commit functionality" } ) # 2. Preview commit (new functionality) preview_result = use_mcp_tool( server_name="commitizen-mcp-connector", tool_name="preview_commit", arguments={ "message": message_result["message"], "stage_all": True } ) # 3. Show preview to user and request approval # AI Assistant: "This will commit 3 files with message 'feat: add git commit functionality'. Proceed?" # 4. Execute after user approval (new functionality) if user_approves: commit_result = use_mcp_tool( server_name="commitizen-mcp-connector", tool_name="execute_commit", arguments={ "message": message_result["message"], "stage_all": True, "force_execute": True # Required for actual execution } ) ``` ### Conclusion **YES**, there is substantial unused functionality in the existing `commitizen>=3.0.0` dependency that can enable actual git commits with user approval. The implementation would: - **Use existing dependencies** (no new requirements) - **Maintain safety** through multiple approval mechanisms - **Integrate seamlessly** with current MCP tools - **Provide full git workflow** from message generation to commit execution - **Respect user control** through explicit approval requirements The functionality is already available in the dependencies - it just needs to be exposed through new MCP tools with appropriate safety measures and user approval workflows.

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