Skip to main content
Glama

ms-sentinel-mcp-server

by dstreefkerk
wrapper.py2.79 kB
#!/usr/bin/env python """ This wrapper exists to enable Claude Desktop and other MCP Clients that do not natively handle Python virtual environments (venv-unaware) to properly load and run server.py. - It automatically activates the local .venv if present. - It ensures the correct import path for server.py and its dependencies. - This allows seamless launching via MCP CLI, Claude Desktop, or other tools, without requiring the user to manually activate the virtual environment or adjust sys.path. - For most workflows, use this file as the entrypoint (python wrapper.py, mcp run wrapper.py, or mcp dev wrapper.py). """ import os import sys from pathlib import Path # Find the current script's directory current_dir = Path(__file__).parent.absolute() # Look for the virtual environment relative to current directory venv_dir = current_dir / ".venv" # Modern venv handling: if not already in venv, re-invoke using venv's python venv_python = venv_dir / "Scripts" / "python.exe" if venv_dir.exists() and venv_python.exists(): if sys.prefix != str(venv_dir): print(f"[wrapper] Not running inside venv, re-invoking with {venv_python}") os.execv(str(venv_python), [str(venv_python)] + sys.argv) else: print(f"[wrapper] Running inside venv at {venv_dir}") else: print( f"[wrapper] No venv found at {venv_dir}, running with current Python: {sys.executable}" ) # Add the current directory to the path so we can import server.py sys.path.insert(0, str(current_dir)) # Import the server module try: from server import mcp print(f"Successfully imported server module using Python at {sys.executable}") except ImportError as e: print(f"Error importing server: {e}") sys.exit(1) # The wrapper will be called by MCP CLI if __name__ == "__main__": import argparse parser = argparse.ArgumentParser( description="Microsoft Sentinel MCP Server Wrapper" ) parser.add_argument( "--sse", action="store_true", help="Run server in SSE (HTTP) mode instead of STDIO", ) parser.add_argument( "--port", "-p", type=int, default=8000, help="Port for SSE server (default: 8000)", ) args = parser.parse_args() print("Starting MCP server...") if args.sse: print(f"Launching in SSE mode on port {args.port}") try: import uvicorn except ImportError: print( "[wrapper] Uvicorn is required for SSE mode. " "Please install with: pip install uvicorn" ) sys.exit(1) uvicorn.run(mcp.sse_app(), host="0.0.0.0", port=args.port, log_level="info") else: print("Launching in STDIO (JSON-RPC) mode") mcp.run()

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/dstreefkerk/ms-sentinel-mcp-server'

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