Skip to main content
Glama
cli.py4.64 kB
"""Command-line interface for the MCP merge request summarizer.""" import argparse import sys from .tools import GitTools def main() -> None: """Main function for command-line usage.""" parser = argparse.ArgumentParser( description="MCP Merge Request Summarizer - Git analysis tools and resources", prog="mcp-mr-summarizer", ) # Add subparsers for different commands subparsers = parser.add_subparsers(dest="command", help="Available commands") # Summary command summary_parser = subparsers.add_parser( "summary", help="Generate merge request summary" ) summary_parser.add_argument( "--base", default="master", help="Base branch (default: master)" ) summary_parser.add_argument( "--current", default="HEAD", help="Current branch (default: HEAD)" ) summary_parser.add_argument( "--repo", default=".", help="Repository path (default: current directory)" ) summary_parser.add_argument("--output", help="Output file for result") summary_parser.add_argument( "--format", choices=["json", "markdown"], default="markdown", help="Output format (default: markdown)", ) # Analyze command analyze_parser = subparsers.add_parser("analyze", help="Analyze git commits") analyze_parser.add_argument( "--base", default="master", help="Base branch (default: master)" ) analyze_parser.add_argument( "--current", default="HEAD", help="Current branch (default: HEAD)" ) analyze_parser.add_argument( "--repo", default=".", help="Repository path (default: current directory)" ) analyze_parser.add_argument("--output", help="Output file for result") # Status command status_parser = subparsers.add_parser("status", help="Get repository status") status_parser.add_argument( "--repo", default=".", help="Repository path (default: current directory)" ) status_parser.add_argument("--output", help="Output file for result") # Branches command branches_parser = subparsers.add_parser("branches", help="List all branches") branches_parser.add_argument( "--repo", default=".", help="Repository path (default: current directory)" ) branches_parser.add_argument("--output", help="Output file for result") # Commits command commits_parser = subparsers.add_parser("commits", help="Get commit history") commits_parser.add_argument( "--base", default="master", help="Base branch (default: master)" ) commits_parser.add_argument( "--current", default="HEAD", help="Current branch (default: HEAD)" ) commits_parser.add_argument( "--repo", default=".", help="Repository path (default: current directory)" ) commits_parser.add_argument("--output", help="Output file for result") # Files command files_parser = subparsers.add_parser("files", help="Get changed files") files_parser.add_argument( "--base", default="master", help="Base branch (default: master)" ) files_parser.add_argument( "--current", default="HEAD", help="Current branch (default: HEAD)" ) files_parser.add_argument( "--repo", default=".", help="Repository path (default: current directory)" ) files_parser.add_argument("--output", help="Output file for result") # Global arguments parser.add_argument("--version", action="version", version="%(prog)s 1.0.0") args = parser.parse_args() # If no command is specified, show help if not args.command: parser.print_help() return try: if args.command == "summary": tools = GitTools(args.repo) output = tools.generate_merge_request_summary( args.base, args.current, args.repo, args.format ) elif args.command == "analyze": tools = GitTools(args.repo) output = tools.analyze_git_commits(args.base, args.current, args.repo) else: print(f"Unknown command: {args.command}", file=sys.stderr) sys.exit(1) if hasattr(args, "output") and args.output: with open(args.output, "w", encoding="utf-8") as f: f.write(output) print(f"Output written to {args.output}") else: print(output) except Exception as e: print(f"Error: {e}", file=sys.stderr) sys.exit(1) if __name__ == "__main__": main()

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/sonicjoy/mcp_merge_request_summarizer'

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