Plugins-O2Switch
Allows setting up automatic push-to-deploy deployments from GitHub repositories via webhooks.
Allows issuing and installing Let's Encrypt HTTPS certificates for domains via ACME DNS-01.
Allows creating MySQL databases and users, primarily for WordPress projects.
Allows managing Passenger applications running Node.js on the hosting account.
Allows managing Passenger applications running Python on the hosting account.
Allows provisioning WordPress databases, importing SQL dumps, and updating WordPress core, plugins, and themes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Plugins-O2SwitchCreate a staging subdomain for example.com and set up SSL for it."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Connect ChatGPT and Claude to your O2Switch hosting account. A hosted MCP plugin/connector that gives an AI assistant access to your own O2Switch account — deploying sites, managing subdomains, HTTPS certificates, automatic deployment from GitHub, WordPress, and more. Every sensitive action requires your explicit confirmation before it runs.
This repository contains documentation and a usage example only — the server's source code is not public. The tool list below is generated automatically from the 45 tools actually exposed in production, never hand-written.
Connect
ChatGPT — Settings → Connectors → “Add custom connector” → https://api-plugins.com/mcp
Claude — Settings → Connectors → “Add custom connector” → the same address
Your cPanel API token is never shared with the AI assistant or stored in plain text — encrypted at rest, and revocable at any time.
Try it without ChatGPT or Claude
example-usage.mjs in this repo connects directly to the server and lists the available tools, using only the official MCP SDK — no dependency on our code:
npm install
node example-usage.mjsAvailable tools (45)
Deployment
o2switch_analyze_project— Analyze a website for o2switch Works on a project on the machine running O2Switch, so it is available when you run the CLI there; over a hosted connection (ChatGPT, Claude) there is no such machine and this is refused — use o2switch_deploy_files,…o2switch_audit_site— Deep post-deployment audit of a live site Read-only. Slower than o2switch_health_check: TLS certificate expiry, DNS resolution, a same-origin broken-link crawl (capped), a page-weight budget over discovered assets, and static accessibility checks (lang, title,…o2switch_deploy_static— Deploy an analyzed static/PHP site Works on a project on the machine running O2Switch, so it is available when you run the CLI there; over a hosted connection (ChatGPT, Claude) there is no such machine and this is refused — use o2switch_deploy_files,…o2switch_deployment_history— Read deployment history Returns deployment records — in hosted multi-tenant mode, only this connected account's own records, never another connected account's, and encrypted at rest like every other piece of that account's data. Never contacts…o2switch_fix_findings— Auto-fix the small subset of findings that are safe to fix without human judgment Works on a project on the machine running O2Switch, so it is available when you run the CLI there; over a hosted connection (ChatGPT, Claude) there is no such machine and this is refused — use o2switch_deploy_files,…o2switch_list_snapshots— List available rollback snapshots for a profile Read-only. Each snapshot was taken automatically right before a deploy overwrote text files (html/css/js/php/json/svg/.htaccess) — binary assets are never snapshotted. Use the id with o2switch_rollback to restore.o2switch_plan_deployment— Preview an o2switch deployment Works on a project on the machine running O2Switch, so it is available when you run the CLI there; over a hosted connection (ChatGPT, Claude) there is no such machine and this is refused — use o2switch_deploy_files,…o2switch_rollback— Restore a prior deployment's text files from a snapshot Re-uploads a snapshot's exact previous content over the current files. Never deletes anything, including files added after the snapshot was taken. Call o2switch_list_snapshots first and confirm the target snapshot with…
Domains, subdomains and HTTPS
o2switch_account_overview— Consolidated health overview across every site on this account One consolidated check across every domain/subdomain on the account instead of one at a time: real HTTPS certificate status (a live TLS probe, not a cPanel API guess — flags an expiring or already-expired certificate),…o2switch_bulk_create_subdomains— Create several subdomains in one call Creates multiple subdomains on the account in a single confirmation, instead of one tool call (and one confirmation) per subdomain — useful for provisioning a batch of client sites, environments, or preview domains at…o2switch_bulk_delete_subdomains— Permanently remove several subdomains in one call Removes multiple subdomains' web access in a single confirmation. Does not delete files on disk for any of them. Irreversible for the subdomains themselves. One item failing does not stop the rest — each is attempted…o2switch_create_subdomain— Create a new subdomain Creates a real subdomain on the account, ready to deploy to (e.g. myapp.example.fr with document root public_html/myapp). Completes the 'zero to live site' path in one conversation — call o2switch_list_domains first to…o2switch_delete_subdomain— Permanently remove a subdomain Removes the subdomain (its web access) — does not delete the files on disk. Irreversible for the subdomain itself. If the connected client supports form elicitation this tool will itself prompt for confirmation and the…o2switch_list_domains— List the real domains on this o2switch account Read-only. Returns the account's main domain, addon domains and subdomains, each with the exact home-relative target directory O2Switch would upload to. Call this BEFORE planning or deploying and show the human the…o2switch_provision_ssl— Issue and install a real HTTPS certificate for a domain Issues a real Let's Encrypt certificate fordomainvia ACME DNS-01 (adds/removes a temporary _acme-challenge DNS record on the account, no manual DNS step needed) and installs it on the account immediately — no…
Automatic deployment from GitHub
o2switch_create_github_webhook— Create a GitHub push-to-deploy webhook Sets up automatic deployment: every push tobranchon a GitHub repo redeploys its current content (as committed — no npm install/build step runs on this server) to the given target directory. Returns a webhookUrl to…o2switch_delete_github_webhook— Delete a GitHub push-to-deploy webhook Stops a repo's pushes from triggering deployments — the webhook still exists on the GitHub side until removed there too (this only disables O2Switch's end; the URL simply stops working, GitHub will show delivery…o2switch_list_github_webhooks— List configured GitHub push-to-deploy webhooks Read-only. Shows every webhook configured on this account, its repo/branch/target, its optional redeploy schedule, and its most recent delivery outcome (if any push has triggered it yet). Never returns a stored…
WordPress
o2switch_import_wordpress_database— Import a SQL dump into a provisioned WordPress database Works on a project on the machine running O2Switch, so it is available when you run the CLI there; over a hosted connection (ChatGPT, Claude) there is no such machine and this is refused — use o2switch_deploy_files,…o2switch_provision_wordpress_database— Create a MySQL database and user for a WordPress project Works on a project on the machine running O2Switch, so it is available when you run the CLI there; over a hosted connection (ChatGPT, Claude) there is no such machine and this is refused — use o2switch_deploy_files,…o2switch_update_wordpress— Update WordPress core, plugins and themes Runswp core update,wp plugin update --allandwp theme update --allover SSH, directly on the account's own WP-CLI (the account must have SSH access enabled and WP-CLI installed — most o2switch WordPress hosting…
Email and notifications
o2switch_create_email_account— Create an email mailbox Creates a real mailbox on the account with an auto-generated password (shown once in the response, never again). If the connected client supports form elicitation this tool will itself prompt for confirmation and the…o2switch_delete_email_account— Permanently delete an email mailbox Deletes the mailbox and its content. Irreversible. If the connected client supports form elicitation this tool will itself prompt for confirmation and the deploy PIN — omit confirm/deployPin and let that happen.o2switch_list_email_accounts— List email accounts on the account Read-only. Lists every mailbox on the account, each with its login, full address, and whether incoming mail or logging in is currently suspended. Never returns a password: a mailbox password is shown once when…o2switch_set_notification_email— Set, check, or clear your deployment notification email Controls the email address O2Switch sends deployment outcome notifications to (o2switch_deploy_static and the GitHub push-to-deploy webhook both use it, when set) — independent of any particular cPanel profile, one…
Scheduled tasks (cron)
o2switch_create_cron_job— Schedule a recurring cron job Adds a job to the account's crontab over SSH, alongside any existing jobs — never replaces the crontab. schedule is the five standard cron fields ("minute hour day month weekday"), e.g. "0 3 * * *" for daily at 3am. If…o2switch_delete_cron_job— Remove a scheduled cron job Removes exactly the one job whose command and schedule match, over SSH — never replaces the whole crontab. A no-op if no job matches. Call o2switch_list_cron_jobs first to get the exact values. If the connected client…o2switch_list_cron_jobs— List scheduled cron jobs on the account Read-only. Reads the account's crontab over SSH — the account must have SSH access enabled.
Passenger apps (Node.js / Python)
o2switch_destroy_passenger_app— Permanently remove a Passenger application Stops and deletes the application's Passenger registration via cloudlinux-selector, over SSH. Does not delete the app's files on disk. Irreversible. If the connected client supports form elicitation this tool will…o2switch_list_passenger_versions— List available interpreter versions for Passenger apps Read-only. Returns the nodejs/python/ruby versions available on this account for o2switch_provision_passenger_app's version field. Call this first — most accounts have no configured default version, so creation fails…o2switch_provision_passenger_app— Create a Node.js/Python/Ruby Passenger application Provisions a real, running application on the account via CloudLinux's cloudlinux-selector (the same mechanism cPanel's own 'Setup Node.js App' UI uses), over SSH — the account must have SSH access enabled. appRoot is a…o2switch_restart_passenger_app— Restart a Passenger application Restarts an already-provisioned Passenger app over SSH (e.g. after deploying new code to its appRoot). The account must have SSH access enabled. If the connected client supports form elicitation this tool will itself…
Migration from another host
o2switch_migrate_ftp_site— Migrate a site from another host straight into this account Downloads a site from a source host's FTP(S) server and deploys it directly to a target directory on this cPanel account, entirely on this server — no local machine involved on either end, unlike the CLI's separate…
Account and team
o2switch_audit_log— Read your account's audit trail Returns a log of every sensitive action confirmed on this account through this connector (subdomain/SSL/webhook changes, access revocation, etc.) — what was confirmed and when, most recent first.actoris present when…o2switch_check_connection— Check o2switch cPanel access Verify a local profile or environment credentials without changing remote files.o2switch_create_team_invite— Invite someone to share this account's deployment tools Generates a one-time invite code (valid 24h) that lets someone else use every O2Switch tool on THIS account — creating/deleting subdomains, deploying, SSL, etc. — without ever seeing your cPanel token. Share the code…o2switch_list_team_members— List who has access to this account Returns every team member currently sharing this account's deployment tools (added via o2switch_create_team_invite), each with the optional label the owner gave them and when they joined. Available to the owner and to…o2switch_remove_team_member— Remove a team member's access Immediately revokes one team member's access to this account (their own O2Switch connection stops working — they're not notified automatically). Get the member id from o2switch_list_team_members. Only available to the…o2switch_revoke_access— Disconnect this cPanel account from O2Switch Permanently deletes every stored profile/token for the cPanel account you're connected as, and removes every team member's access to it too — nothing is left on this server afterward, for you or anyone you invited.…o2switch_scan_permissions— Scan for world-writable files on the account Read-only, over SSH — the account must have SSH access enabled. Lists files/directories writable by ANY account on the shared server (permission mode's 'other' bit), a common misconfiguration often left behind by an…
Other
o2switch_create_upload— Get a link to upload a project archive Returns a private, single-use web address where the human uploads a .zip of their site from wherever the files actually are — their own machine, a Drive download, a phone. Use this when they want to deploy a project…o2switch_deploy_files— Deploy files passed directly in the conversation Writes a small set of files to a directory on this cPanel account and serves them — the files travel in this tool call itself, so nothing has to exist anywhere first. Use this when the assistant is holding the content…o2switch_deploy_from_github— Deploy a GitHub repository to this account, now Deploys a GitHub repository straight to a directory on this cPanel account — the server downloads the repo itself, so nothing is needed on your machine and this works from a chat client with no local files. Deploys the…o2switch_deploy_upload— Deploy a previously uploaded archive Extracts a .zip uploaded through o2switch_create_upload and deploys it to a directory on this cPanel account. The archive is deployed as it is: no build step runs, so a built site (React/Vite/Astro) must contain its…o2switch_health_check— Check a deployed HTTPS site Read-only HTTP status, latency, content type and security-header check. Fast — use o2switch_audit_site for a deeper report.
Links
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- Zoxron MCPOAuthcom.zoxron
Your AI agent deploys, migrates & upgrades self-hosted Odoo ERP on a server you own.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Manage HepCloud (Turkish cloud) servers and managed PostgreSQL from your AI assistant. OAuth 2.1.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage Plesk hosting environments through a set of standardized tools for security, health monitoring, DNS, email, backups, and service management.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage WHM hosting accounts and server administration tasks including account management, server stats, updates, SSL, backups, and email through a secure API.10
- AlicenseBqualityCmaintenanceEnables agentic administration of Infomaniak accounts via Claude, offering 169 tools for web hosting, mail, domains, DNS, and more, with a strict two-phase commit for safe mutations.1009MIT
- FlicenseBqualityCmaintenanceEnables deploying sites, managing databases, and troubleshooting deployments on Hostwares from AI assistants.14
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mrll-lucas/Plugins-O2Switch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server