Skip to main content
Glama
__main__.py3.23 kB
""" MCP Terminal Server - Main entry point. Run the server with: python -m mcp_terminal or mcp-terminal """ import argparse import io import logging import sys import uvicorn # Configure UTF-8 encoding for stdout/stderr on Windows if sys.stdout.encoding != "utf-8": sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace") if sys.stderr.encoding != "utf-8": sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace") def main(): """Main entry point for the MCP Terminal Server.""" parser = argparse.ArgumentParser( description="MCP Terminal Server - Interactive terminal sessions via MCP protocol", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Examples: # Start server on default port (8777) mcp-terminal # Start server on custom port mcp-terminal --port 9000 # Start with auto-reload for development mcp-terminal --reload # Custom host and port mcp-terminal --host 0.0.0.0 --port 8888 Documentation: https://github.com/yourusername/mcp-terminal """, ) parser.add_argument( "--host", type=str, default="127.0.0.1", help="Host to bind to (default: 127.0.0.1)", ) parser.add_argument( "--port", type=int, default=8777, help="Port to bind to (default: 8777)", ) parser.add_argument( "--reload", action="store_true", help="Enable auto-reload for development", ) parser.add_argument( "--log-level", type=str, default="info", choices=["debug", "info", "warning", "error", "critical"], help="Log level (default: info)", ) parser.add_argument( "--version", action="version", version="%(prog)s 0.1.0", ) args = parser.parse_args() # Configure logging log_level = getattr(logging, args.log_level.upper()) logging.basicConfig( level=log_level, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) logger = logging.getLogger(__name__) # Print startup banner print("=" * 60) print("🖥️ MCP Terminal Server") print("=" * 60) print(f"Version: 0.1.0") print(f"Host: {args.host}") print(f"Port: {args.port}") print(f"Log Level: {args.log_level}") print(f"Reload: {args.reload}") print("=" * 60) print(f"\n📡 Server starting at http://{args.host}:{args.port}") print(f"📚 API Docs: http://{args.host}:{args.port}/docs") print(f"🔧 MCP Endpoint: http://{args.host}:{args.port}/mcp") print("\nPress CTRL+C to stop the server\n") try: # Start uvicorn server uvicorn.run( "mcp_terminal.server:app", host=args.host, port=args.port, reload=args.reload, log_level=args.log_level, access_log=True, ) except KeyboardInterrupt: logger.info("\n👋 Shutting down gracefully...") sys.exit(0) except Exception as e: logger.error(f"❌ Server failed to start: {e}") 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/alejoair/mcp-terminal'

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