# pm_provider
{{< badge content="Sovereign" color="purple" class="tier-badge" >}}

{{< callout type="info" >}}
**Sovereign tier required.** Both `list_presets` and `create_preset` require Sovereign. Vanguard users can manage presets through the [Settings UI](/valdr/docs/ui/settings/) but not via MCP.
{{< /callout >}}

The `pm_provider` tool exposes launcher preset management over MCP. It's the programmatic equivalent of the Settings UI — list existing presets, create new ones, and include provider defaults metadata.

For the full JSON schema and field reference, see [Preset Configuration](/valdr/docs/valdr-provider-packs/presets/) and [Provider Configuration](/valdr/docs/valdr-provider-packs/overview/).

## Actions

`list_presets`, `create_preset`, `help`

---

## list_presets

List all launcher preset records.

### Parameters

| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `includeProviderDefaults` | boolean | No | Default `true` — also returns available provider type metadata |

### Example

```text
pm_provider { action: "list_presets" }
```

Returns the summary shape of each preset (key, displayName, providerType, envRefs, worktree, configPreview) plus optional provider defaults.

---

## create_preset

Create a new launcher preset.

### Parameters

| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `key` | string | Yes | Unique preset key |
| `displayName` | string | Yes | Human-readable name |
| `providerType` | string | Yes | Must be registered (`claude`, `codex`, `gemini`, `openai`, `anthropic`, `ollama`) |
| `description` | string | No | |
| `tags` | string[] | No | |
| `allowAdhocOverrides` | boolean | No | Default `true` |
| `config` | object | No | Provider-specific config object |
| `env` | array | No | Array of `{ name, valueRef }` |
| `worktree` | object | No | `{ shouldCreateWorktree?, allowReuseExistingWorktree? }` |
| `actor` | string | No | Who created it |

### Example

```text
pm_provider {
  action: "create_preset",
  key: "coder-claude",
  displayName: "Claude Coder",
  providerType: "claude",
  description: "Claude Code preset for coding tasks",
  config: {
    model: "opus",
    permissionMode: "acceptEdits",
    keepAliveMs: 120000
  },
  env: [],
  worktree: {
    shouldCreateWorktree: true,
    allowReuseExistingWorktree: true
  }
}
```

For the full field reference and resolution behavior, see [Preset Configuration](/valdr/docs/valdr-provider-packs/presets/).

---

## help

```text
pm_provider { action: "help" }
```

## Related

- [Preset Configuration](/valdr/docs/valdr-provider-packs/presets/) — full JSON schema and resolution rules
- [Provider Configuration](/valdr/docs/valdr-provider-packs/overview/) — provider setup schema and per-provider config
- [pm_session.launch_task](../sessions/#launch_task) — sessions consume presets via `launcherConfigKey`

