npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

obambu-cpanel-mcp

v0.1.2

Published

MCP server exposing cPanel UAPI (domains, DNS, email, MySQL, files) as tools for AI assistants

Downloads

277

Readme

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)

Setup

git clone https://github.com/<your-username>/obambu-cpanel-mcp.git
cd obambu-cpanel-mcp
npm install
cp .env.example .env

Edit .env with your cPanel details:

CPANEL_HOST=your-server-hostname-or-ip
CPANEL_PORT=2083
CPANEL_USERNAME=your-cpanel-username
CPANEL_API_TOKEN=paste-your-api-token-here

Build and run:

npm run build
npm start

For local development without building first:

npm run dev

Using it with an MCP client

Add it to your MCP client config (e.g. Claude Desktop / Claude Code), pointing at the built entrypoint:

{
  "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": "2083",
        "CPANEL_USERNAME": "your-cpanel-username",
        "CPANEL_API_TOKEN": "your-api-token"
      }
    }
  }
}

Available tools

| Tool | Description | |---|---| | get_account_summary | Disk/bandwidth quota usage and general stats | | list_domains | Domains, subdomains, addon domains and parked domains | | list_dns_records | Read a domain's DNS zone | | add_dns_record | Add a DNS record | | edit_dns_record | Edit an existing DNS record | | remove_dns_record | Remove a DNS record | | list_emails | List email accounts | | create_email | Create an email account | | delete_email | Delete an email account | | list_files | List files/directories under the account home directory | | list_databases | List MySQL databases | | list_database_users | List MySQL database users | | create_database | Create a MySQL database | | create_database_user | Create a MySQL database user | | grant_database_privileges | Grant a user privileges on a database | | cpanel_uapi_call | 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 [email protected]"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_call with module: "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 .env file (it's git-ignored by default).
  • Scope your cPanel API token as narrowly as your provider allows.
  • The cpanel_uapi_call tool can call any UAPI function available to your account — treat it with the same care as direct API/token access.

License

MIT