Skip to main content
Glama
startmenu.py1.23 kB
from fastmcp import FastMCP import os from winrt.windows.foundation import Uri from winrt.windows.system import Launcher from winrt.windows.storage import StorageFile mcp: FastMCP = FastMCP( name="startmenu", ) @mcp.tool("open_file") async def open_file(path: str) -> str: """Open a file or folder in the default application.""" path = os.path.expanduser(path) path = os.path.expandvars(path) path = os.path.abspath(path) if not os.path.exists(path): return f"Path does not exist: {path}" file = await StorageFile.get_file_from_path_async(path) success = await Launcher.launch_file_async(file) if success: return "Opened file" # Fallback to os.startfile if the above fails os.startfile(path) return "Opened file" @mcp.tool("open_url") async def open_url(url: str) -> str: """Open a URL in the default browser.""" try: uri = Uri(url) success = await Launcher.launch_uri_async(uri) if success: return "Opened URL" except Exception: pass # Fallback to webbrowser if the above fails import webbrowser webbrowser.open(url) return "Opened URL"

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/SecretiveShell/mcp-windows'

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