PlugLayer MCP server — deploy and manage infrastructure via AI
Project description
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
This local command mode uses the MCP stdio transport by default, which is the right mode for Cursor, Claude Code, and other editor-launched command servers.
The pluglayer-mcp command now always uses stdio so editor clients cannot accidentally switch it into HTTP mode.
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",
"type": "stdio",
"args": ["pluglayer-mcp"],
"env": {
"PLUGLAYER_API_KEY": "your-pluglayer-api-token"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"pluglayer": {
"command": "uvx",
"type": "stdio",
"args": ["pluglayer-mcp"],
"env": {
"PLUGLAYER_API_KEY": "your-pluglayer-api-token"
}
}
}
Remote HTTP (hosted)
The remote MCP server runs at mcp.pluglayer.com. Pass your token as:
Authorization: Bearer your-pluglayer-api-token
If you intentionally want to run the package itself as an HTTP MCP server, use:
pluglayer-mcp-http
Release Checklist
Before publishing a new pluglayer-mcp build:
- Confirm local command mode still uses
stdioby default. - Confirm
PLUGLAYER_API_URLoverride works when pointed at a dev API. - Confirm package version will be unique for the publish run.
- Publish from the public repo
mainbranch after reviewing thedev -> mainPR.
After publishing:
- Restart Cursor, Claude Code, or the MCP client you are testing.
- If the editor still behaves like an older MCP build, remove and re-add the MCP server entry, then restart the editor.
- Re-test with a simple command such as:
get_current_userlist_projectsget_compute_summary
Cursor Notes
- For
command-based MCP setup, useuvx pluglayer-mcp. - Do not force HTTP transport for local editor usage.
pluglayer-mcpalways usesstdio, which is the correct transport for Cursor-launched command servers.- Only use
pluglayer-mcp-httpwhen you intentionally want to run the package itself as an HTTP MCP server.
Available Tools
The MCP calls the PlugLayer FastAPI backend instead of re-implementing backend business logic. Auth, roles, ownership, compute guards, and k3s orchestration 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 |
get_my_projects |
Alias for listing the current 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; estimate first when sizing is still unclear |
get_my_available_compute |
Show the current user's available compute capacity; pair with estimate first for planning |
get_my_available_computes |
Alias for available compute capacity |
estimate_compute |
Estimate required compute, monthly price, and a tailored offer link; preferred before purchase/allocation decisions |
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_apps_by_project |
List apps inside a specific project |
get_deployment_status |
Check app status and URL |
get_logs |
Get app logs |
get_app_logs |
Alias for getting app logs |
redeploy |
Redeploy an app |
restart_app |
Alias for restarting an app by redeploying it |
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 |
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pluglayer_mcp-0.26.50516.tar.gz.
File metadata
- Download URL: pluglayer_mcp-0.26.50516.tar.gz
- Upload date:
- Size: 80.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc112785aed3a71d5d98a7c49d35104bd198d55eacd015354f9910ef6fa50bb6
|
|
| MD5 |
7efa250744e6198bfcee3eb377094770
|
|
| BLAKE2b-256 |
95299c1dc8c7be4409e1f24e9afdcfb7bc0307297b61764ad65c1b1da393b22d
|
File details
Details for the file pluglayer_mcp-0.26.50516-py3-none-any.whl.
File metadata
- Download URL: pluglayer_mcp-0.26.50516-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd8acec389154d7c2f1d9b708ba06d3b2fb74f441de42df7ee92709b9462033a
|
|
| MD5 |
9af7f47afe7a23eb8fe7ae93a1819713
|
|
| BLAKE2b-256 |
eec53c9cb372ba9a22620d9aeb5c92958aafc31bd2bf5161ebc0ddf214e2c013
|