Skip to main content

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.

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"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json:

{
  "pluglayer": {
    "command": "uvx",
    "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, set:

MCP_TRANSPORT=streamable-http

Release Checklist

Before publishing a new pluglayer-mcp build:

  1. Confirm local command mode still uses stdio by default.
  2. Confirm PLUGLAYER_API_URL override works when pointed at a dev API.
  3. Confirm package version will be unique for the publish run.
  4. Publish from the public repo main branch after reviewing the dev -> main PR.

After publishing:

  1. Restart Cursor, Claude Code, or the MCP client you are testing.
  2. If the editor still behaves like an older MCP build, remove and re-add the MCP server entry, then restart the editor.
  3. Re-test with a simple command such as:
    • get_current_user
    • list_projects
    • get_compute_summary

Cursor Notes

  • For command-based MCP setup, use uvx pluglayer-mcp.
  • Do not force HTTP transport for local editor usage.
  • pluglayer-mcp defaults to stdio, which is the correct transport for Cursor-launched command servers.
  • Only use MCP_TRANSPORT=streamable-http when 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, 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:latest that runs on port 8000. Deploy it to my production project."

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 api deployment so it auto-deploys on push to main."

Add a custom domain:

"Add api.example.com to my production project, show me the DNS records, then verify it and attach it to my API app."

Getting Your API Key

  1. Go to PlugLayer Settings
  2. Create a PlugLayer API token
  3. Copy it once and store it safely
  4. Use it as PLUGLAYER_API_KEY for MCP, editor plugins, and CI/CD webhook deploys

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pluglayer_mcp-0.26.50117.tar.gz (75.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pluglayer_mcp-0.26.50117-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file pluglayer_mcp-0.26.50117.tar.gz.

File metadata

  • Download URL: pluglayer_mcp-0.26.50117.tar.gz
  • Upload date:
  • Size: 75.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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

Hashes for pluglayer_mcp-0.26.50117.tar.gz
Algorithm Hash digest
SHA256 0b5f9af5265150c60a5d593c0a748fc9b659d15a0e5df0aae8bb08f4866fae1f
MD5 bcaf9328d94a7db5220e1a9aaed46304
BLAKE2b-256 623e2413068a8c99a233968214213b83bb8adfdbdecb85cc2e7f9531d10591b8

See more details on using hashes here.

File details

Details for the file pluglayer_mcp-0.26.50117-py3-none-any.whl.

File metadata

  • Download URL: pluglayer_mcp-0.26.50117-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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

Hashes for pluglayer_mcp-0.26.50117-py3-none-any.whl
Algorithm Hash digest
SHA256 d9d131879fbaadf91f4a1e88b5e37468b45221954fcd792b96a26798ae45ad76
MD5 e321ad87b19c28dc030e4eb09964b9ec
BLAKE2b-256 412597f08f3386cb1a91b8cd4853cf61dc8246e842a1f72d48d4f87eaa2c799d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page