150,000+ agents registered. Trust scores show their math.Explore →
Explorer/MCP/mikesol/autodock

autodock

REMOTE
mikesol/autodock

Launch and manage on-demand cloud development environments with preserved storage. Expose services securely, sync code safely, and get ready-to-run SSH and logging workflows. Capture browser logs and screenshots, receive environment emails, and run ephemeral GitHub Actions runners when needed.

Tools
27
Indexed
116d ago
Deployment
remote
Endpoint
https://autodock--mikesol.run.tools
Tools (27)
account.info
Return information about the currently authenticated Autodock user
account.create_api_key
Create a new API key for headless MCP authentication. The key will be shown ONCE - make sure to save it securely. Use the key with: claude mcp add --transport http autodock https://autodock.io/api/mcp/streamable-http --header "Authorization: Bearer <key>"
account.list_api_keys
List your API keys (shows prefix only, not full key)
account.revoke_api_key
Revoke an API key by ID. The key will immediately stop working.
env.list
List environments for the authenticated user
env.launch
Launch a new Autodock environment. Typically takes 1-2 minutes.
env.status
Fetch a specific environment by ID
env.get_ssh_key
Fetch a fresh download URL for the SSH private key. Use this if the key was corrupted during initial save (e.g., "error in libcrypto" when running ssh-keygen -y -f <keyfile>).
env.stop
Stop (power down) an environment. Safe to restart later.
env.restart
Restart a stopped environment. Boots the same instance with preserved storage.
env.destroy
Destroy an environment permanently.
env.extend
Extend the auto-stop timer for a running environment. Resets the idle timer and sets a new auto-stop duration.
env.expose
Expose a port on an environment with a public HTTPS URL. Creates https://<name|port>--<slug>.<base-domain>. Returns URL and .env update guidance. IMPORTANT: After exposing a port, you MUST verify connectivity from the LOCAL environment (NOT the remote environment): 1. Run: dig <hostname> +short (verifies DNS resolution) 2. Run: curl -sI <url> (verifies actual HTTPS connectivity) Both must succeed for the user to connect. If either fails, troubleshoot: - Is the service running? Check with "ss -tlnp | grep <port>" - Is it bound to 0.0.0.0 (not just localhost/127.0.0.1)? - Is the backend serving HTTPS internally? Caddy expects HTTP - disable TLS on the backend. Examples: Argo CD, Kubernetes Dashboard, Grafana (when TLS enabled), Vault UI, Consul UI - Does the service have an HTTPS-based readiness check that's failing? Examples: Argo CD health checks, Istio control plane, cert-manager webhook
env.unexpose
Remove an exposed port from an environment
env.listExposed
List exposed ports for an environment
env.sync
REQUIRED before syncing files to an Autodock environment. Provides SSH connection details and rsync templates. Does NOT perform the sync itself. If environmentId omitted, auto-selects when exactly one running env exists. CRITICAL: .ENV FILE HANDLING (the #1 source of remote dev issues) Local .env files contain localhost URLs that MUST be patched for remote development. Do NOT rsync .env files blindly - handle them specially. WORKFLOW: 1. SCAN: grep -r "localhost" .env* to find URLs needing patches 2. CLASSIFY each variable as EXTERNAL (browser/user-facing) or INTERNAL (machine-to-machine) 3. PATCH external URLs to https://<port>--<slug>.autodock.io 4. COPY patched .env to remote separately from main rsync 5. PRESERVE: keep .env.local.original on remote to detect local changes on re-sync EXTERNAL VARS (patch to autodock URL): NEXT_PUBLIC_*, VITE_*, REACT_APP_* (browser-accessible) API_URL, BACKEND_URL, FRONTEND_URL, APP_URL, BASE_URL, NEXTAUTH_URL CSRF_TRUSTED_ORIGINS, ALLOWED_HOSTS, CORS_ALLOWED_ORIGINS WS_URL, WEBSOCKET_URL (use wss:// instead of https://) OAUTH_REDIRECT_URI, CALLBACK_URL INTERNAL VARS (keep as localhost): DATABASE_URL, DB_HOST, POSTGRES_*, MYSQL_*, REDIS_*, MONGODB_*, CACHE_URL ELASTICSEARCH_URL, RABBITMQ_URL, KAFKA_*, *_SERVICE_HOST EXAMPLE: Local: NEXT_PUBLIC_API_URL=http://localhost:3001 Remote (after exposing 3001): NEXT_PUBLIC_API_URL=https://3001--my-env.autodock.io SHADOW COPY: On first sync, save .env.local.original. On re-sync, compare local to .env.local.original - only re-patch if local changed (preserves remote patches).
env.run
REQUIRED before executing commands on an Autodock environment. ALWAYS call this tool before using SSH to run commands - it provides: • SSH key path and connection string • CRITICAL: nohup backgrounding pattern (</dev/null) to prevent SSH hangs • mise-managed tool activation (node, npm, python, pip, go, etc. need bash -li -c wrapper) • Vite host validation fix (__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS) • HTTP proxy setup for traffic logging • Log file locations for Loki capture Returns SSH connection details and command templates. Does NOT execute commands directly. After calling this tool, use the provided command patterns with Bash. If environmentId omitted, auto-selects when exactly one running env exists.
env.observe
Get Loki query commands for observing logs on an Autodock environment. Returns SSH+curl commands for querying the local Loki instance. Does NOT fetch logs directly. If environmentId omitted, auto-selects when exactly one running env exists.
env.save
Get templates for saving session setup to AUTODOCK.md. Returns environment details, exposed ports, and command templates for documentation. If environmentId omitted, auto-selects when exactly one running env exists.
env.reserve
Preview the cost of reserving an environment for 30 days ($149). Reserved environments do not auto-stop and do not count against your concurrent environment limit. Requires a paid plan (Starter or Pro).
env.reserve_confirm
Confirm reservation and process $149 payment. Environment will not auto-stop for 30 days after reservation. Payment is charged immediately to your card on file.
env.email
Documentation for receiving emails in an Autodock environment. Each environment can receive emails at *@{slug}.autodock.io. Emails are delivered via HTTPS webhook (SES -> Vercel -> your environment) with Bearer token authentication. A boilerplate email handler is pre-installed at /opt/autodock/email-server.js that you can customize or replace with your own implementation. To receive emails: 1. Start the boilerplate: node /opt/autodock/email-server.js (or write your own on port 47982) 2. Handle POST /email with JSON body and validate Bearer token 3. Send emails to any address @{slug}.autodock.io WEBHOOK PAYLOAD: { from, to, subject, textBody, htmlBody, messageId, timestamp, spamVerdict, virusVerdict } LIMITS: 150KB max email (SES SNS limit). Large emails/attachments are truncated. AUTH: Bearer token (from /opt/autodock/email-webhook-secret) is required for webhook requests. If no application is listening on 47982, emails are silently dropped.
env.gh_runner
Documentation for configuring and running a GitHub Actions self-hosted runner. The GitHub Actions runner is pre-installed at /opt/actions-runner. To use it: 1. Get a registration token from GitHub (Settings > Actions > Runners > New self-hosted runner) 2. Configure the runner with --ephemeral flag (auto-unregisters after one job) 3. Start the runner in the background Labels are auto-applied: autodock,<environment-slug> plus any extra labels you specify. IMPORTANT: Runner runs as root and is ephemeral - it processes one job then exits. For continuous runner usage, re-run the configuration and start commands.
browser.listen
Start a browser listener to capture console logs, network requests, and errors from the user's browser. After starting, provide the user with the console command to paste in their browser. The listener will capture events until stopped or expired. USAGE: 1. Call this tool to create a listener session 2. Give the user the consoleCommand to paste in their browser console 3. IMPORTANT: Wait for the user to confirm they've pasted the command, then wait ~5 seconds for events to accumulate before calling browser.poll 4. Use browser.poll to retrieve captured events (the browser batches events every 3 seconds) 5. Use browser.shot to request a screenshot 6. Use browser.stop when done
browser.poll
Retrieve captured browser events from a listener session. Returns console logs, network requests, and errors captured from the browser. Also returns any pending screenshot if one was requested. TIMING: The browser batches and sends events every 3 seconds. Wait at least 3-5 seconds after the user confirms they've started the listener before polling. If no events are returned, wait a few more seconds and try again.
browser.shot
Request a screenshot from the browser. The screenshot will be captured asynchronously by the browser. IMPORTANT: Screenshots can take 10-15 seconds to capture (the browser must render the page to canvas). After calling this, wait 10-15 seconds, then call browser.poll to check for the screenshot URL. If no screenshot URL is returned, wait a few more seconds and poll again. When ready, browser.poll will return a screenshotUrl. Fetch this URL to view the screenshot image and analyze what the user is seeing. Note: The browser tab must be visible for the screenshot to work.
browser.stop
Stop a browser listener session. This will signal the browser to stop capturing and clean up server resources. The user can also stop from the browser by typing autodock.stop() in the console.
Is this your server?
Link it to your on-chain identity to unlock your RNWY trust score. Your wallet age, ownership history, and behavioral signals carry over — the same trust infrastructure used by 150,000+ registered AI agents.
Claim this server →
Indexed from Smithery · Updates nightly
View on Smithery →