Magic Cloud
OFFICIAL SERVERMCP endpoint of a self-hosted Magic Cloud instance: your APIs, SQL, files, tasks and a headless browser
Python workflow engine whose browser, file, HTTP and data modules run as traced, replayable steps
By Flyto2 Python Local · stdio Browser automationDeveloper tools
53 popularity score ★ 483 ↓ 1.6k/mo
Opens the app, which asks before it adds the server.
pip install flyto-coreclaude mcp add flyto2-core -- python -m core.mcp_server{
"mcpServers": {
"flyto2-core": {
"command": "python",
"args": [
"-m",
"core.mcp_server"
]
}
}
}{
"mcpServers": {
"flyto2-core": {
"command": "python",
"args": [
"-m",
"core.mcp_server"
]
}
}
}{
"servers": {
"flyto2-core": {
"type": "stdio",
"command": "python",
"args": [
"-m",
"core.mcp_server"
]
}
}
}[mcp_servers.flyto2-core]
command = "python"
args = ["-m", "core.mcp_server"]gemini mcp add --scope user flyto2-core python -- -m core.mcp_serverFLYTO_SANDBOX_DIR |
Optional: Directory that all file paths are confined to; defaults to the working directory. |
|---|---|
FLYTO_ALLOWED_HOSTS |
Optional: Comma-separated hosts (wildcards allowed) let through the private-range check; unset by default. |
FLYTO_MCP_ALLOW_LOCALHOST |
Optional: Set to 1 to allow localhost and 127.0.0.1 when FLYTO_ALLOWED_HOSTS is unset. |
FLYTO_ALLOW_PRIVATE_NETWORK |
Optional: Allow targets in private or link-local ranges; false by default. |
FLYTO_ALLOW_ABSOLUTE_PATHS |
Optional: Whether absolute paths may be passed (still kept inside the sandbox). |
FLYTO_MODULE_DENYLIST |
Optional: Glob patterns of blocked modules; replaces the default list, empty string clears it. |
FLYTO_MODULE_ALLOWLIST |
Optional: Glob patterns of the only modules allowed to run. |
FLYTO_GRANTED_PERMISSIONS |
Optional: Grants permissions such as shell.execute or payment.process to the modules that need them. |
Flyto2 Core is a Python execution engine. It runs automation as a series of named steps (open a browser, load a page, run a script in it, write a file, call an API) and records the input, output and timing of each one. When a step fails, a run can be restarted from that step instead of from the start. The same engine is reachable from a CLI, YAML workflow files, a Python API, a local HTTP API and an MCP server.
The MCP server is a gateway to the module catalogue, not one tool per module. In v2.33.0, src/core/mcp_handler.py registers nine tools: an assistant searches or lists the catalogue (about 480 modules across browser, file, http, data, string, image, crypto, ai, docker, k8s, AWS and more), reads a module's parameter schema and examples, checks its parameters, and then runs it with execute_module or runs one of the bundled recipes. The README and docs page say every module shows up as its own tool, but the code at that tag does not do this.
Browser sessions stay open between calls in the stdio server. The server closes sessions left idle and shuts down any remaining Chromium processes when the client disconnects.
| Runtime | Python 3.10+ |
|---|
Python 3.10 or later and `pip install flyto-core` into the Python the client starts. Browser modules need `pip install flyto-core[browser]` and then `playwright install chromium`. Other module groups need their own extras (ai, image, crypto, dns, telegram, vector; `[all]` brings every one). The api.* and ai.* modules need credentials for the services they call (OpenAI, Anthropic, Slack and others). The Streamable HTTP transport needs `pip install flyto-core[api]` and `flyto serve`, which listens on 127.0.0.1:8333 with MCP at /mcp.
The MCP docs give `flyto-core mcp` as the stdio command, but the v2.33.0 pyproject.toml installs only `flyto`, `flyto-serve` and `flyto-verification`. Use `python -m core.mcp_server` as the README does. Some module groups are blocked by default (shell.*, process.*, sandbox.*, database.*, git.*, k8s.*, ssh.*, docker.run/exec, file.delete, env.*, flow.invoke/subflow/batch) until an operator changes FLYTO_MODULE_DENYLIST or FLYTO_MODULE_ALLOWLIST. Modules that need shell, subprocess, payment, debugger or code-execution permission also need FLYTO_GRANTED_PERMISSIONS. Module counts differ between pages (482 README, 481 PyPI, 452 docs).
Suits developers who want an assistant to do multi-step browser and data work on their own machine (scraping, screenshots, site audits, format conversion) and keep a step-by-step record of each run. It is local and writes files, so it fits someone willing to set a sandbox directory and host allowlist. If you only need a browser driver, a dedicated browser server is simpler: this one adds a catalogue layer the assistant has to search before every action. Its shell, database and container modules are off by default, so it does not suit people who want those without editing the policy settings.
list_modulessearch_modulesget_module_infoget_capability_manifestget_module_examplesexecute_modulevalidate_paramslist_recipesrun_recipe