Puppet Enterprise MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Puppet Enterprise MCP Serverrun Puppet on all production nodes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Puppet Enterprise MCP Server
An MCP (Model Context Protocol) server that exposes the full Puppet Enterprise API to AI assistants. Connect Claude, Cursor, or any MCP-compatible client to manage your Puppet infrastructure through natural language.
Tools (60+)
Orchestrator
Tool | Description |
| Run Puppet on nodes (enforce or noop) |
| Execute a Puppet task on nodes |
| Execute a Puppet plan |
| Stop a running job |
| Stop a running plan |
| List orchestrator jobs |
| Get job details |
| Get nodes in a job |
| Get job report |
| Get job events |
| List plan jobs |
| Get plan job details |
| Get plan job events |
| List available tasks |
| Get task details |
| List available plans |
| Get plan details |
| List scheduled jobs |
| Delete a scheduled job |
| Check node reachability |
| Get node usage details |
Node Classifier
Tool | Description |
| List all node groups |
| Get a node group |
| Create a node group |
| Update a node group |
| Delete a node group |
| Get classification for a node |
| List known classes |
| List environments |
| Get node check-in history |
| Refresh class definitions |
| Unpin nodes from all groups |
RBAC
Tool | Description |
| List all PE users |
| Get user details |
| Get current authenticated user |
| Create a local user |
| Update a user |
| Delete a user |
| Revoke user access |
| Reinstate a revoked user |
| List RBAC roles |
| Get a role |
| Create a role |
| List user groups |
| List available permissions |
| Generate an auth token |
Code Manager
Tool | Description |
| Deploy code to environments |
| Check deployment status |
PuppetDB
Tool | Description |
| Run a PQL query |
| List all nodes |
| Get node details |
| Get node facts |
| List facts |
| List Puppet reports |
| List catalogs |
| Query resources |
| List all fact names |
| List PuppetDB environments |
| Get inventory data |
Status
Tool | Description |
| PE console services status |
| Orchestrator status |
| Puppet Server status |
| PuppetDB status |
Related MCP server: Portainer MCP Server
Setup
Prerequisites
A Puppet Enterprise instance
A PE API token (generate via
puppet-access loginor the RBAC API)Node.js 20+
Environment Variables
Variable | Required | Description |
| Yes | PE primary server hostname |
| Yes | PE API authentication token |
| No | CA certificate PEM content |
| No | Set |
Install & Build
npm install
npm run buildRun Directly
PUPPET_HOST=puppet.example.com PUPPET_TOKEN=your-token node dist/index.jsDocker
docker build -t puppet-mcp-server .
docker run -e PUPPET_HOST=puppet.example.com -e PUPPET_TOKEN=your-token puppet-mcp-serverMCP Client Configuration
Claude Desktop / Claude Code
Add to your MCP settings:
{
"mcpServers": {
"puppet": {
"command": "node",
"args": ["/path/to/puppet-mcp/dist/index.js"],
"env": {
"PUPPET_HOST": "puppet.example.com",
"PUPPET_TOKEN": "your-pe-api-token"
}
}
}
}Hosting for Customers (SSE/Streamable HTTP)
To host this as a remote MCP server over HTTP for multiple customers, wrap the stdio server with a transport adapter. For example using @modelcontextprotocol/sdk's SSEServerTransport or StreamableHTTPServerTransport:
import express from "express";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
// Create per-customer server instances with their own PUPPET_HOST/PUPPET_TOKENSee the MCP specification for transport options.
Generating a PE API Token
# On the PE primary server:
puppet-access login --lifetime 1y
# Or via the API:
curl -k -X POST https://puppet.example.com:4433/rbac-api/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"login": "admin", "password": "your-password", "lifetime": "1y"}'License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
- mcpOAuthcom.keboola
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
Related MCP Servers
- FlicenseAqualityDmaintenanceExposes Burp Suite's REST API to AI assistants, enabling users to trigger vulnerability scans, monitor progress, and manage security tasks through natural language. It also provides programmatic access to Burp's security knowledge base for querying vulnerability definitions and remediation advice.81-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Docker containers, images, networks, and services through the Portainer API.-
- AlicenseBqualityAmaintenanceEnables AI assistants to manage and monitor Automox environments via natural language, including devices, compliance, policies, patches, and more.100115 PyPI12MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to manage Rundeck operations including jobs, executions, projects, nodes, system management, key storage, webhooks, and ACL policies via natural language.5028 npm1Apache 2.0