{
  "manifest_version": "1",
  "slug": "executor",
  "title": "Executor",
  "headline": "Self-host Executor, the open-source MCP gateway",
  "description": "Run Executor 2 on an exe.dev VM: add MCP servers and APIs once, keep their credentials on your server, and point Claude Code, Codex and Shelley at one private MCP URL.",
  "category": "ai-agents",
  "tags": [
    "executor",
    "mcp gateway",
    "self-hosted mcp gateway",
    "mcp server",
    "openapi to mcp",
    "graphql mcp",
    "claude code mcp",
    "codex mcp",
    "agent tools"
  ],
  "url": "https://exe.dev/deploy/executor",
  "markdown_url": "https://exe-staging.dev/deploy/executor.md",
  "upstream": {
    "website": "https://executor.sh",
    "source": "https://github.com/UsefulSoftwareCo/executor",
    "docs": "https://executor.sh/docs",
    "license": "MIT"
  },
  "example_vm_name": "my-executor",
  "time": "10 minutes",
  "stack": [
    {
      "name": "Executor 2 (beta)",
      "detail": "ghcr.io/usefulsoftwareco/executor-selfhost:2.0.0-beta.34 in Docker Compose: dashboard, MCP endpoint and app runtime",
      "port": 8000,
      "data": "~/executor/data"
    }
  ],
  "access": [
    {
      "url": "https://my-executor.exe.xyz/",
      "who": "private",
      "what": "the dashboard, behind your exe.dev login and your Executor account"
    },
    {
      "url": "https://my-executor.exe.xyz/mcp",
      "who": "private",
      "what": "the MCP endpoint; agents send an exe.dev VM token and an Executor token"
    }
  ],
  "delivers": [
    "Executor 2 at `https://my-executor.exe.xyz`, in Docker, restarted on failure and after a reboot.",
    "Its database, generated keys and your apps' code in `~/executor/data`.",
    "An owner account that only you can create, because the setup page is behind your exe.dev login.",
    "One MCP endpoint, `/mcp`, that Claude Code, Codex, Shelley and other agents share.",
    "A backup and update procedure for the data directory."
  ],
  "owner_runs_after": [
    "ssh exe.dev ssh-key generate-api-key --vm=my-executor --label=executor-agents --exp=90d"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe-staging.dev/new?prompt=Set%20up%20Executor%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe-staging.dev%2Fdeploy%2Fexecutor.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-executor.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-executor.%20Skip%20the%20step%20that%20creates%20the%20VM%3B%20you%20are%20on%20it.%0A%0AYou%20are%20done%20when%20all%20of%20these%20are%20true.%20Check%20each%20one%20yourself%3A%0A-%20Executor%202%20at%20%60https%3A%2F%2Fmy-executor.exe.xyz%60%2C%20in%20Docker%2C%20restarted%20on%20failure%20and%20after%20a%20reboot.%0A-%20Its%20database%2C%20generated%20keys%20and%20your%20apps%27%20code%20in%20%60~%2Fexecutor%2Fdata%60.%0A-%20An%20owner%20account%20that%20only%20you%20can%20create%2C%20because%20the%20setup%20page%20is%20behind%20your%20exe.dev%20login.%0A-%20One%20MCP%20endpoint%2C%20%60%2Fmcp%60%2C%20that%20Claude%20Code%2C%20Codex%2C%20Shelley%20and%20other%20agents%20share.%0A-%20A%20backup%20and%20update%20procedure%20for%20the%20data%20directory.%0A%0ARead%20the%20whole%20recipe%2C%20closed%20details%20included%2C%20and%20follow%20%22Set%20up%20by%0Ahand%22%20in%20order%2C%20skipping%20VM%20creation%3B%20the%20walkthrough%20above%20it%20is%20for%0Athe%20owner.%20Use%20the%20pinned%20image%20tag%20as%20written.%20Never%20make%20the%20VM%20public%3A%0Athe%20first%20person%20to%20finish%20Executor%27s%20setup%20page%20becomes%20its%20owner%2C%20and%0Athat%20must%20be%20the%20owner.%20Don%27t%20set%20EXECUTOR_APPS_ALLOW_PRIVATE_FETCH%20unless%0Athe%20owner%20asks.%20On%20an%20existing%20VM%2C%20ask%20before%20replacing%20anything%20on%20port%0A8000.%20The%20VM%20can%27t%20reach%20its%20own%20https%3A%2F%2F%3Cvm%3E.exe.xyz%2C%20so%20checks%20use%0Alocalhost.%20Finish%20by%20sending%20the%20owner%20to%20https%3A%2F%2F%3Cvm%3E.exe.xyz%2F%20to%20create%0Atheir%20account%2C%20then%20to%20%22Add%20your%20tools%22%20and%20%22Connect%20your%20agents%22%2C%20with%20the%0A%60ssh-key%20generate-api-key%60%20command%20to%20run%20on%20their%20computer.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open%20and%20these%20commands%2C%20which%20only%20I%20can%20run%2C%20from%20my%20own%20computer%20%28with%20this%20VM%27s%20name%20in%20them%29%3A%0A%20%20ssh%20exe.dev%20ssh-key%20generate-api-key%20--vm%3Dmy-executor%20--label%3Dexecutor-agents%20--exp%3D90d%0A",
    "terminal": "curl -fsSL https://exe-staging.dev/deploy/executor/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up Executor on this VM by following the exe.dev recipe at https://exe-staging.dev/deploy/executor.md from top to bottom.\n\nThe recipe's example VM name is my-executor. This VM's name is the output of `hostname`: use it wherever the recipe writes my-executor. Skip the step that creates the VM; you are on it.\n\nYou are done when all of these are true. Check each one yourself:\n- Executor 2 at `https://my-executor.exe.xyz`, in Docker, restarted on failure and after a reboot.\n- Its database, generated keys and your apps' code in `~/executor/data`.\n- An owner account that only you can create, because the setup page is behind your exe.dev login.\n- One MCP endpoint, `/mcp`, that Claude Code, Codex, Shelley and other agents share.\n- A backup and update procedure for the data directory.\n\nRead the whole recipe, closed details included, and follow \"Set up by\nhand\" in order, skipping VM creation; the walkthrough above it is for\nthe owner. Use the pinned image tag as written. Never make the VM public:\nthe first person to finish Executor's setup page becomes its owner, and\nthat must be the owner. Don't set EXECUTOR_APPS_ALLOW_PRIVATE_FETCH unless\nthe owner asks. On an existing VM, ask before replacing anything on port\n8000. The VM can't reach its own https://\u003cvm\u003e.exe.xyz, so checks use\nlocalhost. Finish by sending the owner to https://\u003cvm\u003e.exe.xyz/ to create\ntheir account, then to \"Add your tools\" and \"Connect your agents\", with the\n`ssh-key generate-api-key` command to run on their computer.\n\nFinish with the URLs I should open and these commands, which only I can run, from my own computer (with this VM's name in them):\n  ssh exe.dev ssh-key generate-api-key --vm=my-executor --label=executor-agents --exp=90d\n",
    "prompt_url": "https://exe-staging.dev/deploy/executor/prompt.txt"
  },
  "updated": "2026-10-31",
  "verified": "2026-10-31",
  "related": [
    "exe-mcp",
    "mcp-server",
    "gbrain",
    "claude-code",
    "codex",
    "openclaw"
  ],
  "alternatives": [
    "Composio",
    "Smithery",
    "Zapier MCP"
  ]
}
