obambu-cpanel-mcp
Provides tools for managing cPanel hosting accounts, including domains, DNS records, email accounts, MySQL databases, and file listing through the cPanel UAPI.
Allows management of MySQL databases and database users, including creating databases, creating users, and granting privileges, via cPanel's UAPI.
Click on "Deploy 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., "@obambu-cpanel-mcp Show me the DNS records for example.com"
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.
obambu-cpanel-mcp
A Model Context Protocol (MCP) server that lets an AI assistant (Claude, etc.) manage a cPanel hosting account through the cPanel UAPI.
It exposes tools for domains, DNS zones, email accounts, MySQL databases, and file listing, plus a generic escape hatch to call any other UAPI module/function.
Requirements
Node.js 18+
A cPanel account with API token access (Security → Manage API Tokens in cPanel)
Related MCP server: cPanel MCP Server
Getting your cPanel credentials (Obambu example)
The four env vars below can come from any cPanel host, but here's how to find them on Obambu:
CPANEL_HOST— your server hostname, e.g.cp4.obambu.com(or your own domain if cPanel is reachable athttps://yourdomain.com:2083). Find it in your Obambu welcome email, or in your domain's DNS zone: look for anArecord namedcpanel(e.g.cpanel.yourdomain.com) — that same server also answers at itscpX.obambu.comhostname.CPANEL_PORT—00000(cPanel's default HTTPS port). Leave it unless your host says otherwise.CPANEL_USERNAME— your cPanel account username, shown top-right when logged into cPanel, or in the welcome email Obambu sent when the hosting account was created.CPANEL_API_TOKEN— generate one yourself, it is not your cPanel password:Log into cPanel at
https://<CPANEL_HOST>:00000Go to Security → Manage API Tokens
Click Create, give it a name (e.g.
mcp-server), optionally restrict it to specific ACLs, then CreateCopy the token immediately — cPanel only shows it once
Using it with an MCP client (npx, recommended)
Published on npm as obambu-cpanel-mcp — no clone or build needed. Add it to your MCP client config (e.g. Claude Desktop / Claude Code):
{
"mcpServers": {
"obambu-cpanel": {
"command": "npx",
"args": ["-y", "obambu-cpanel-mcp"],
"env": {
"CPANEL_HOST": "your-server-hostname-or-ip",
"CPANEL_PORT": "00000",
"CPANEL_USERNAME": "your-cpanel-username",
"CPANEL_API_TOKEN": "your-api-token"
}
}
}
}Running from source
git clone https://github.com/RodrigueDev13/obambu-cpanel-mcp.git
cd obambu-cpanel-mcp
npm install
cp .env.example .envEdit .env with your cPanel details, then:
npm run build
npm startFor local development without building first:
npm run devWhen running from source, point your MCP client at the built entrypoint instead of npx:
{
"mcpServers": {
"obambu-cpanel": {
"command": "node",
"args": ["/absolute/path/to/obambu-cpanel-mcp/dist/index.js"],
"env": {
"CPANEL_HOST": "your-server-hostname-or-ip",
"CPANEL_PORT": "00000",
"CPANEL_USERNAME": "your-cpanel-username",
"CPANEL_API_TOKEN": "your-api-token"
}
}
}
}Available tools
Tool | Description |
| Disk/bandwidth quota usage and general stats |
| Domains, subdomains, addon domains and parked domains |
| Read a domain's DNS zone |
| Add a DNS record |
| Edit an existing DNS record |
| Remove a DNS record |
| List email accounts |
| Create an email account |
| Delete an email account |
| List files/directories under the account home directory |
| List MySQL databases |
| List MySQL database users |
| Create a MySQL database |
| Create a MySQL database user |
| Grant a user privileges on a database |
| Call any UAPI module/function directly for anything not covered above |
Usage examples
Once connected, just talk to your assistant in plain language — it picks the right tool:
"Test the connection to my cPanel account" →
get_account_summary"What domains and subdomains are on this hosting account?" →
list_domains"Show me the DNS records for example.com" →
list_dns_records"Add an A record for shop.example.com pointing to 1.2.3.4" →
add_dns_record"Create a mailbox contact@example.com" →
create_email"Create a MySQL database and user for my new app, then grant privileges" →
create_database+create_database_user+grant_database_privileges"List the files in public_html" →
list_files"Read config/filesystems.php and fix this path" →
cpanel_uapi_callwithmodule: "Fileman", function: "get_file_content"/save_file_content
Because tool calls map directly to UAPI modules, this is also useful for real migration/deployment workflows — e.g. moving a site to a new cPanel account, provisioning a database for a fresh app, or auditing DNS before a domain cutover.
Notes on Fileman
Only list_files (backed by Fileman::list_files) and, through the cpanel_uapi_call escape hatch, get_file_content / save_file_content are known to work reliably for reading and writing individual files. Bulk filesystem operations (extract_files, rename, mkdir, fileop, delete_files, ...) are not guaranteed to be available depending on your cPanel version/provider — test before relying on them, and prefer cPanel's File Manager UI for bulk moves, extraction, and deletion.
Security
Never commit your
.envfile (it's git-ignored by default).Scope your cPanel API token as narrowly as your provider allows.
The
cpanel_uapi_calltool can call any UAPI function available to your account — treat it with the same care as direct API/token access.
License
MIT
Available Tools
16 toolsadd_dns_recordA
Add a DNS record to a zone. Provide type-specific fields in fields (e.g. A record: {address: '1.2.3.4'}; CNAME: {cname: 'target.example.com'}; TXT: {txtdata: 'value'}; MX: {exchange: 'mail.example.com', preference: '10'}).
Inputs: name (required), type (required), zone (required), ttl, +1 more.
cpanel_uapi_callA
Call any cPanel UAPI module/function directly. Use this for functionality not covered by the other tools. Refer to cPanel UAPI documentation for module/function names and parameters.
Inputs: module (required), function (required), params.
create_databaseB
Create a new MySQL database.
Inputs: name (required).
create_database_userB
Create a new MySQL database user.
Inputs: name (required), password (required).
create_emailB
Create a new email account.
Inputs: email (required), domain (required), password (required), quotaMb.
delete_emailB
Delete an email account.
Inputs: email (required), domain (required).
edit_dns_recordB
Edit an existing DNS record. line is the record's line number as returned by list_dns_records.
Inputs: line (required), type (required), zone (required), ttl, +1 more.
get_account_summaryA
Get an overview of the cPanel account: disk/bandwidth quota usage and general stats.
Inputs: no named parameters.
grant_database_privilegesB
Grant a database user privileges on a database.
Inputs: user (required), database (required), privileges.
list_databasesA
List MySQL databases on the account.
Inputs: no named parameters.
list_database_usersA
List MySQL database users on the account.
Inputs: no named parameters.
list_dns_recordsA
List DNS zone records for a domain.
Inputs: zone (required).
list_domainsA
List all domains, subdomains, addon domains and parked domains on the account.
Inputs: no named parameters.
list_emailsA
List email accounts, optionally filtered by domain.
Inputs: domain.
list_filesA
List files and directories at a path within the account's home directory.
Inputs: dir.
remove_dns_recordA
Remove a DNS record from a zone. line is the record's line number as returned by list_dns_records.
Inputs: line (required), zone (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Each named tool maps to a distinct cPanel resource/action, such as databases, DNS, email, files, or account details. Even closely related tools like create_database and create_database_user are clearly separated. The generic cpanel_uapi_call is explicitly framed as a fallback, so it does not create meaningful ambiguity.
Most tools follow a consistent verb_noun snake_case pattern, such as create_database, list_dns_records, and add_dns_record. Minor deviations include cpanel_uapi_call placing the verb last and the inconsistent use of delete vs remove across email and DNS tools.
16 tools is slightly above the typical well-scoped range, but each tool covers a meaningful cPanel operation. The count reflects the broad scope of database, DNS, email, file, and account management without feeling padded.
Core workflows are well covered: database creation and privilege management, DNS CRUD, email create/list/delete, file listing, and account summary. There are some lifecycle gaps, such as no direct delete for databases or database users, but cpanel_uapi_call provides a documented escape hatch for those operations.
Maintenance
Related MCP Connectors
Official Porkbun MCP server: domains, DNS, SSL, hosting and Cloudflare via the Porkbun API.
Agent-first web hosting: deploy sites, apps, databases and domains over MCP.
MCP server for DNSimple — domains, DNS zone records, availability, pricing and contacts.
Related MCP Servers
- AlicenseBqualityDmaintenanceA local MCP server for managing WHM and cPanel servers through AI clients, supporting server health, account, DNS, email, database, SSL, bandwidth, disk, cron, and service-management tools across multiple WHM accounts.31MIT
- AlicenseAqualityDmaintenanceA complete MCP server enabling AI assistants to manage cPanel hosting through natural language, including file, database, email, subdomain, and system operations.161MIT
- AlicenseBqualityCmaintenanceA comprehensive MCP server for managing cPanel hosting accounts through AI assistants. It supports DNS, email (DKIM/SPF), databases, domains, SSL, PHP, cron jobs, security, Git deployment, and more.10026ISC
- AlicenseBqualityCmaintenanceMCP server for Openprovider.com that enables domain management actions such as checking availability, registering domains, listing domains, and managing contacts through natural language.1021 npmMIT