mirror of
https://github.com/prowler-cloud/prowler.git
synced 2025-12-19 05:17:47 +00:00
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
import argparse
|
|
import os
|
|
import sys
|
|
|
|
from prowler_mcp_server.lib.logger import logger
|
|
|
|
|
|
def parse_arguments():
|
|
"""Parse command line arguments."""
|
|
parser = argparse.ArgumentParser(description="Prowler MCP Server")
|
|
parser.add_argument(
|
|
"--transport",
|
|
choices=["stdio", "http"],
|
|
default=None,
|
|
help="Transport method (default: stdio)",
|
|
)
|
|
parser.add_argument(
|
|
"--host",
|
|
default="127.0.0.1",
|
|
help="Host to bind to for HTTP transport (default: 127.0.0.1)",
|
|
)
|
|
parser.add_argument(
|
|
"--port",
|
|
type=int,
|
|
default=8000,
|
|
help="Port to bind to for HTTP transport (default: 8000)",
|
|
)
|
|
return parser.parse_args()
|
|
|
|
|
|
def main():
|
|
"""Main entry point for the MCP server."""
|
|
try:
|
|
args = parse_arguments()
|
|
|
|
if args.transport is None:
|
|
args.transport = os.getenv("PROWLER_MCP_TRANSPORT_MODE", "stdio")
|
|
else:
|
|
os.environ["PROWLER_MCP_TRANSPORT_MODE"] = args.transport
|
|
|
|
from prowler_mcp_server.server import prowler_mcp_server
|
|
|
|
if args.transport == "stdio":
|
|
prowler_mcp_server.run(transport=args.transport, show_banner=False)
|
|
elif args.transport == "http":
|
|
prowler_mcp_server.run(
|
|
transport=args.transport,
|
|
host=args.host,
|
|
port=args.port,
|
|
show_banner=False,
|
|
)
|
|
else:
|
|
logger.error(f"Invalid transport: {args.transport}")
|
|
|
|
except KeyboardInterrupt:
|
|
logger.info("Shutting down Prowler MCP server...")
|
|
sys.exit(0)
|
|
except Exception as e:
|
|
logger.error(f"Error starting server: {e}")
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|