Puppet Master MCP Server
# Puppet Master MCP Server
MCP (Model Context Protocol) server providing 26 tools for Puppet Master framework operations — initialization, development, database, deployment, builds, linting, testing, configuration, knowledge retrieval, contribution workflows, and code reviews.
## Quick Start
```bash
git clone <repo-url> pm-mcp-server
cd pm-mcp-server
npm install
```
### Global Registration (Kilo)
Add to `~/.config/kilo/kilo.json`:
```json
{
"mcp": {
"puppetmaster": {
"type": "local",
"command": ["node", "/path/to/pm-mcp-server/dist/index.js"],
"enabled": true
}
}
}
```
Or use `tsx` to run from source (enables dynamic TS config imports):
```json
"command": ["npx", "tsx", "/path/to/pm-mcp-server/src/index.ts"]
```
### Local Registration (Project)
Add to `.kilo/kilo.json` in a project:
```json
{
"mcp": {
"puppetmaster": {
"type": "local",
"command": ["node", "../pm-mcp-server/dist/index.js"],
"enabled": true
}
}
}
```
## Tools (26)
| Category | Tools |
|----------|-------|
| Config | `pm_config_get`, `pm_config_set` |
| Dev | `pm_init`, `pm_dev`, `pm_status` |
| Database | `pm_db_push`, `pm_db_seed`, `pm_db_reset`, `pm_db_migrate`, `pm_db_studio` |
| Deploy | `pm_deploy`, `pm_rollback`, `pm_deploy_logs`, `pm_setup` |
| Build/Quality | `pm_build`, `pm_lint`, `pm_test` |
| Knowledge | `pm_knowledge`, `pm_knowledge_entrypoint`, `pm_knowledge_contributing` |
| Contributing | `pm_contribute_list`, `pm_contribute_read`, `pm_contribute_export`, `pm_contribute_apply` |
| Review | `pm_review_checklist`, `pm_review_run` |
## How It Works
The server uses `process.cwd()` to detect the current PM project root (set automatically by the host agent). Each tool operates on the project in the current working directory. From a non-PM directory, tools report "no config found" gracefully.
## Build
```bash
npm run build # TypeScript → dist/
```
Pre-built `dist/` is committed for users who want to run with `node` directly without `tsx`.
## License
MIT
TDQS
Scored across 26 tools
Most tools have clearly distinct purposes, such as separate tools for config get/set, each database operation, and contribution actions. However, there is potential overlap between pm_contribute_list and pm_knowledge_contributing, and between pm_knowledge variations, which causes slight ambiguity.
Tools consistently use the 'pm_' prefix, but naming patterns vary: some are single-word verbs (pm_build, pm_init) while others follow a noun_verb pattern (pm_config_get, pm_db_migrate). This inconsistency, though not chaotic, reduces predictability.
With 26 tools, the set is on the higher side but remains well-scoped to the Puppet Master ecosystem, covering development, database, deployment, contributions, and knowledge. A few tools could be consolidated (e.g., knowledge and contribute overlap), but overall the count is appropriate.
The tool surface covers the main lifecycle: init, dev, build, test, lint, config, db operations, deploy, rollback, and contributions. Some areas like monitoring or version management are absent but are not core to the stated purpose. Minor gaps exist, such as no direct tool for managing environment variables.