1---2name: perforce-p4mcp-server-p4mcp-server3description: Changelist Management4---56# Changelist Management78Use the `query_changelists`, `modify_changelists`, `query_shelves`, and `modify_shelves` tools to manage P4 changelists and shelved files.910## Querying Changelists1112| Action | Purpose | Key Parameters |13|--------|---------|----------------|14| `list` | List changelists with filters | `status`, `user`, `workspace_name`, `depot_path`, `max_results` |15| `get` | Get full changelist details | `changelist_id` |1617## Modifying Changelists1819| Action | Purpose | Key Parameters |20|--------|---------|----------------|21| `create` | Create a new pending changelist | `description` |22| `update` | Update changelist description or fields | `changelist_id`, `description` |23| `submit` | Submit a pending changelist | `changelist_id` |24| `delete` | Delete an empty pending changelist (requires approval) | `changelist_id` |25| `move_files` | Move files to a target changelist | `changelist_id`, `file_paths` |2627## Querying Shelves2829| Action | Purpose | Key Parameters |30|--------|---------|----------------|31| `list` | List shelved changelists | `user`, `max_results` |32| `diff` | View diff of shelved files | `changelist_id` |33| `files` | List files in a shelved changelist | `changelist_id` |3435## Modifying Shelves3637| Action | Purpose | Key Parameters |38|--------|---------|----------------|39| `shelve` | Shelve files from a pending changelist | `changelist_id`, `file_paths` |40| `unshelve` | Unshelve files back to the same changelist | `changelist_id`, `file_paths` |41| `unshelve_to_changelist` | Unshelve files into a different changelist | `changelist_id`, `target_changelist`, `file_paths` |42| `update` | Update shelved files with new edits | `changelist_id`, `file_paths` |43| `delete` | Delete shelved files (requires approval) | `changelist_id`, `file_paths`, `force` |4445## Common Workflows4647### Make and submit a change48491. `modify_changelists` → `create` a pending changelist502. `modify_files` → `edit` (or `add`/`delete`) to open files for edit in the changelist513. `modify_changelists` → `submit` to commit the change5253### Shelve work in progress54551. `modify_changelists` → `create` a pending changelist562. `modify_files` → `edit` to open files573. `modify_shelves` → `shelve` to store changes server-side584. `modify_files` → `revert` local copies (shelve is preserved)5960### Resume shelved work61621. `query_shelves` → `list` to find your shelved changelists632. `modify_shelves` → `unshelve` to restore files to your workspace643. Continue editing, then `modify_changelists` → `submit`6566### Organize files across changelists67681. `query_changelists` → `list` with `status=pending` to see your open changelists692. `modify_changelists` → `move_files` to reorganize files between changelists7071## Best Practices7273- Always provide a meaningful description when creating changelists.74- Shelve before sharing work with others (e.g., for code review).75- Use `query_shelves` → `diff` to verify shelved content before unshelving.76- Submit changelists promptly to avoid long-lived pending changes.77- Use `move_files` to keep changelists focused on a single logical change.7879---80> Source: [perforce/p4mcp-server](https://github.com/perforce/p4mcp-server) — distributed by [TomeVault](https://tomevault.io).81<!-- tomevault:4.0:skill_md:2026-06-22 -->