GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Manage a Panelica hosting panel in plain English - 404 scoped, HMAC-signed tools.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
PANELICA_BASE_URL, PANELICA_API_KEY, PANELICA_API_SECRET标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"panelica": {
"command": "npx",
"args": [
"-y",
"panelica-mcp"
],
"env": {
"PANELICA_BASE_URL": "your-value",
"PANELICA_API_KEY": "your-value",
"PANELICA_API_SECRET": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add panelica --env PANELICA_BASE_URL=your-value --env PANELICA_API_KEY=your-value --env PANELICA_API_SECRET=your-value -- npx -y panelica-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"panelica": {
"command": "npx",
"args": [
"-y",
"panelica-mcp"
],
"env": {
"PANELICA_BASE_URL": "your-value",
"PANELICA_API_KEY": "your-value",
"PANELICA_API_SECRET": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"panelica": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"panelica-mcp"
],
"env": {
"PANELICA_BASE_URL": "your-value",
"PANELICA_API_KEY": "your-value",
"PANELICA_API_SECRET": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 Panelica 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:PANELICA_BASE_URL, PANELICA_API_KEY, PANELICA_API_SECRET
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.5.4)于5天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Talk to your Panelica hosting panel in plain English.
Provision a domain, issue an SSL certificate, create a database, or restart a
service through Claude Desktop, Cursor, ChatGPT, or any other
Model Context Protocol client.
404 tools cover the entire External API surface — accounts, domains, DNS, SSL, email, MySQL, FTP, security, backups, server resources, and more.
+----------------+ stdio JSON-RPC +-------------------+
| MCP client | <----------------------------> | panelica-mcp | | (Claude, ...) | | (this package) | +----------------+ +---------+---------+ | HTTPS + HMAC-SHA256| X-API-Key | X-Timestamp | X-Signature | v +------------------------------+------------------------------+ | https:// :8443/api/external/v1/... | | nginx reverse proxy on the panel host | | (TLS termination + path rewrite: /api/external/X -> /X) | +------------------------------+------------------------------+ | 127.0.0.1:3002 plain | v +----------------+-----------------+ | external-server (HMAC verify) | +----------------+-----------------+ | v +----------------+-----------------+ | Panelica panel + Linux services | +----------------------------------+
panelica-mcp is a thin, stateless adapter:
/v1/api-spec from your panel and builds the tool list from it (live catalogue, default). If the panel is unreachable it falls back to the bundled tools/tools.json snapshot. Set PANELICA_LIVE_SPEC=0 to always use the snapshot.PANELICA_API_SECRET, and forwards it to the panel.No data is cached, no telemetry is emitted, and the secret never leaves the machine running the MCP server.
panelica-mcp. This is the same port you already use in the browser — no extra firewall change is required.You do not need to install anything on the panel host itself, and you do not need to open the internal port 3002 to the public internet.
Pick whichever fits your MCP client setup. All three produce the same stdio binary; pick by which sandbox model you prefer.
npm install -g panelica-mcp
or run without installing (the MCP client launches npx for you):
npx -y panelica-mcp
The -y flag accepts npm's "install on first run" prompt non-interactively, which is what MCP clients need.
A pre-built image is published to GitHub Container Registry on every release:
docker pull ghcr.io/panelica/panelica-mcp:latest
Run it from an MCP client config:
{
"command": "docker", "args": [ "run", "--rm", "-i", "-e", "PANELICA_BASE_URL", "-e", "PANELICA_API_KEY", "-e", "PANELICA_API_SECRET", "ghcr.io/panelica/panelica-mcp:latest" ], "env": { "PANELICA_BASE_URL": "https://your-panel-host:8443/api/external", "PANELICA_API_KEY": "pk_...", "PANELICA_API_SECRET": "sk_..." } }
-i keeps stdin attached so the MCP client can talk to the container. --rm removes the container when the client disconnects.
git clone https://github.com/Panelica/panelica-mcp.git
cd panelica-mcp npm install npm run build node dist/index.js # speaks MCP over stdio
To regenerate tools/tools.json from your panel's live API spec:
PANELICA_SPEC_URL="https://your-panel:8443/api/external/v1/api-spec" npm run rebuild-tools
You need three values: a reachable base URL, an API key, and an API secret.
Panelica's external-server process listens on 127.0.0.1:3002, and the panel's nginx on 8443 reverse-proxies /api/external/... to it. Nginx strips the /api/external prefix before forwarding, so the path the HMAC signature is computed over and the path the backend sees both end up as /v1/... — signatures match end-to-end without any extra knobs.
The right PANELICA_BASE_URL depends on where you run panelica-mcp:
| Scenario | Recommended PANELICA_BASE_URL |
|---|---|
| MCP client on your laptop, panel on a remote server | https:// :8443/api/external |
| MCP client and panel on the same machine | http://127.0.0.1:3002 |
You should not open port 3002 to the public internet. The default install binds it on all interfaces but expects it to be either firewalled or only reached through the 8443 reverse proxy.
Sanity-check the proxy from your machine:
curl -sk https://<panel-host>:8443/api/external/health
If you get a TLS error, that is the panel's self-signed certificate — install a real cert on the panel (panel UI → Settings → SSL) rather than disabling verification client-side.
*:read is enough (panel 1.0.528+; older panels need the individual :read scopes). For full automation grant *:write and *:delete too, or *:*. Every tool's description in this server lists the scopes it requires.pk_...) and secret (looks like sk_...). The secret is shown only once; store it in a password manager.Before you wire the MCP client up, prove the credentials work end-to-end:
export PANELICA_BASE_URL=https://your-panel-host:8443/api/external
export PANELICA_API_KEY=pk_xxxxxxxx export PANELICA_API_SECRET=sk_xxxxxxxx
TS=$(date +%s)
SIG=$(printf "GET/v1/api-keys${TS}" \ | openssl dgst -sha256 -hmac "$PANELICA_API_SECRET" -hex | awk '{print $2}')
curl -sk "$PANELICA_BASE_URL/v1/api-keys" \ -H "X-API-Key: $PANELICA_API_KEY" \ -H "X-Timestamp: $TS" \ -H "X-Signature: $SIG"
You should get back JSON listing your API keys. Common 401 responses:
error.code | Likely cause |
|---|---|
MISSING_API_KEY / MISSING_TIMESTAMP / MISSING_SIGNATURE | Header is empty — re-check the curl flags |
INVALID_KEY_FORMAT | The PANELICA_API_KEY value is malformed |
INVALID_TIMESTAMP | Local clock drifted more than 5 minutes — sync NTP |
INVALID_SIGNATURE | Wrong secret, or the path you signed includes /api/external/ (it must not — nginx strips it before the backend sees it) |
| Variable | Default | Effect |
|---|---|---|
PANELICA_TOOLSETS | core | Which tools are registered directly — see Toolsets |
PANELICA_LIVE_SPEC | 1 | Build the catalogue from your panel's /v1/api-spec at startup; 0 = bundled snapshot only |
PANELICA_SPEC_TIMEOUT_MS | 8000 | Live-spec fetch timeout before falling back to the snapshot |
PANELICA_TIMEOUT_MS | 30000 | Per-call HTTP timeout |
PANELICA_MAX_RESULT_CHARS | 60000 | Larger list results are cut to the first items with a _truncated note so the client context is not flooded |
PANELICA_STARTUP_PROBE | 1 | Call GET /v1/me once at startup to state the key's scopes in the instructions; 0 skips it |
claude mcp add panelica \
-e PANELICA_BASE_URL=https://your-panel:8443/api/external \ -e PANELICA_API_KEY=pk_... \ -e PANELICA_API_SECRET=sk_... \ -- npx -y panelica-mcp
That's it — ask Claude Code to "list my domains" or "create a database for example.com" and it will drive the panel through the scoped API key.
Edit yo
只显示了开头部分;其余内容请在仓库中阅读