PlugLayer MCP Server
Deploy and manage your infrastructure through natural language with any MCP-compatible AI assistant.
Installation
Option 1: uvx (recommended โ no install needed)
PLUGLAYER_API_KEY=your-pluglayer-api-token uvx pluglayer-mcp
Optional:
PLUGLAYER_API_BASE_URL=https://api.pluglayer.com
Option 2: pip
pip install pluglayer-mcp
PLUGLAYER_API_KEY=your-pluglayer-api-token pluglayer-mcp
Configuration
Claude Desktop
Add to ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"pluglayer": {
"command": "uvx",
"args": ["pluglayer-mcp"],
"env": {
"PLUGLAYER_API_KEY": "your-pluglayer-api-token",
"PLUGLAYER_API_BASE_URL": "https://api.pluglayer.com"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"pluglayer": {
"command": "uvx",
"args": ["pluglayer-mcp"],
"env": {
"PLUGLAYER_API_KEY": "your-pluglayer-api-token",
"PLUGLAYER_API_BASE_URL": "https://api.pluglayer.com"
}
}
}
Remote HTTP (hosted)
The remote MCP server runs at mcp.pluglayer.com. Pass your token as:
Authorization: Bearer your-pluglayer-api-token
API base URL behavior
PLUGLAYER_API_BASE_URLis the preferred environment variable for the backend API origin.- If it is unset or empty, the MCP defaults to
https://api.pluglayer.com. PLUGLAYER_API_URLis still accepted as a legacy fallback during migration.
Available Tools
The MCP calls the PlugLayer FastAPI backend instead of re-implementing backend business logic. Auth, roles, ownership, compute guards, k3s orchestration, and admin checks remain in the backend. MCP and editor plugins should authenticate with a PlugLayer API token created in the PlugLayer Settings page, not the browser/session auth token.
Managed registries are configured by PlugLayer admins in the platform UI/API. When deploy_image uses mirroring, the backend picks a registry the current user is allowed to use and keeps Kubernetes pull secrets in sync automatically.
| Tool | Description |
|---|---|
get_current_user |
Show the Authentik-backed user and roles |
list_projects |
List authenticated user's projects |
create_project |
Create a new project namespace |
get_project |
Get project details |
get_compute_summary |
Show account-level personal + shared compute capacity |
list_nodes |
List accessible compute nodes |
add_node_ssh |
Add a personal SSH node usable by all of the user's projects |
list_registries |
List the registries currently available to the user |
deploy_image |
Mirror a Docker image into PlugLayer's managed Docker Hub namespace, then deploy it after backend compute checks |
deploy_compose |
Deploy from docker-compose.yml after backend compute checks |
list_deployments |
List running apps/deployments |
get_deployment_status |
Check app status and URL |
get_logs |
Get app logs |
redeploy |
Redeploy an app |
rollback |
Roll back to previous version |
delete_deployment |
Delete an app |
list_project_domains |
List custom domains for a project |
add_custom_domain |
Add a single or wildcard custom domain and return DNS records |
verify_custom_domain |
Verify TXT/CNAME DNS and activate if attached |
attach_custom_domain |
Attach a verified custom domain to an app |
detach_custom_domain |
Detach a domain while keeping verification |
remove_custom_domain |
Remove a domain and its route |
get_task_status |
Poll async operation progress |
admin_get_overview |
Admin-only platform summary |
admin_set_compute_defaults |
Admin-only default compute quota metadata |
admin_set_node_shared |
Admin-only mark node shared/private |
admin_add_shared_ssh_node |
Admin-only add shared PlugLayer SSH compute |
generate_github_actions |
Get CI/CD pipeline YAML |
get_cluster_health |
Check cluster status |
Example Conversations
Deploy your first app:
"I have a FastAPI app at
ghcr.io/myorg/api:latestthat runs on port 8000. Deploy it to myproductionproject."
Convert docker-compose:
"Here's my docker-compose.yml: [paste]. Deploy this to PlugLayer."
Add a node:
"Add my server at 192.168.1.100 as personal compute. Here's my SSH key: [paste]"
CI/CD setup:
"Generate a GitHub Actions workflow for my
apideployment so it auto-deploys on push to main."
Add a custom domain:
"Add
api.example.comto my production project, show me the DNS records, then verify it and attach it to my API app."
Getting Your API Key
- Go to PlugLayer Settings
- Create a PlugLayer API token
- Copy it once and store it safely
- Use it as
PLUGLAYER_API_KEYfor MCP, editor plugins, and CI/CD webhook deploys