{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T16:25:48.186Z","url":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server","markdownUrl":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server.md","server":{"slug":"perforce-p4mcp-server","name":"Perforce P4 MCP Server","registryName":"io.github.perforce/p4mcp-server","description":"Perforce P4 MCP server for version control and P4 DAM digital asset management.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ghcr-io-perforce-p4mcp-server","type":"oci","identifier":"ghcr.io/perforce/p4mcp-server","withdrawn":false,"url":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server","version":"2026.4.3126709","transport":"stdio","scoredAt":"2026-11-05T04:18:05.688Z"},"score":{"total":37,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":37},{"date":"2026-11-04","total":36},{"date":"2026-11-03","total":36},{"date":"2026-11-02","total":35}]},"categories":[{"name":"Supply Chain Security","score":0,"verdict":"unverified","reasons":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"ecosystem_unsupported"}},{"code":"cve.inconclusive","args":{"reason":"no_sbom_attached"}},{"code":"installscript.inconclusive","args":{"reason":"no_install_concept"}},{"code":"dephealth.inconclusive","args":{"reason":"no_sbom_attached"}}]},{"name":"Provenance & Transparency","score":35,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","License check failed: no license is declared.","Actively maintained (last published 2 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.absent","args":{}},{"code":"maintenance.recent","args":{"age_days":"2"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":57,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 3427 tokens (~228/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"228","items":"15","tools":"15","tokens":"3427","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"15"}},{"code":"toolsafety.manipulation_clean","args":{"units":"15","judged":"15"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"malware":[],"components":[{"slug":"ghcr-io-perforce-p4mcp-server","type":"oci","identifier":"ghcr.io/perforce/p4mcp-server","withdrawn":false,"score":37,"current":true,"url":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server","markdownUrl":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server.md"}],"facts":[{"label":"Registry","value":"oci"},{"label":"Package","value":"ghcr.io/perforce/p4mcp-server"},{"label":"Version","value":"2026.4.3126709"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"query_server","title":null,"description":"Get server info and current user information (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Server query action: server_info returns P4 server metadata and version, current_user returns authenticated user details and permissions"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":48},{"name":"query_workspaces","title":null,"description":"Get workspace details, list workspaces, check type and status (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Workspace query action: list returns all workspaces matching filters, get retrieves specific workspace spec, type identifies workspace category, status shows opened files and sync state"},{"name":"max_results","type":"integer","required":false,"description":"Maximum number of results to return"},{"name":"user","type":null,"required":false,"description":"Filter by user - optional for list action"},{"name":"workspace_name","type":null,"required":false,"description":"Workspace name - required for get, type, status actions"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":106},{"name":"modify_workspaces","title":null,"description":"Create/delete workspace, Update workspace specs, and switch active workspace (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Workspace modification action: create makes new workspace, delete removes workspace, update modifies workspace spec, switch changes active workspace"},{"name":"workspace_description","type":null,"required":false,"description":"Workspace description"},{"name":"workspace_line_end","type":null,"required":false,"description":"Line ending style (local, unix, win, mac)"},{"name":"workspace_name","type":"string","required":true,"description":"Workspace name"},{"name":"workspace_options","type":null,"required":false,"description":"Workspace options"},{"name":"workspace_root","type":null,"required":false,"description":"Root path of the workspace"},{"name":"workspace_view","type":null,"required":false,"description":"View mappings in depot-to-client format"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":122},{"name":"query_files","title":null,"description":"Get file content, history, info, diff, annotations, search by name, grep by content (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"File query action, metadata includes extra information like optional attributes and file size"},{"name":"case_insensitive","type":"boolean","required":false,"description":"Case-insensitive matching for grep action"},{"name":"diff2","type":"boolean","required":false,"description":"Use p4 diff2 for depot-to-depot diff, false for mixed diff"},{"name":"file2","type":null,"required":false,"description":"Second file path - required for diff action"},{"name":"file_path","type":"string","required":true,"description":"Primary file path - required for all actions"},{"name":"max_results","type":null,"required":false,"description":"Maximum number of results to return. Bounds history/search/grep and also caps fstat info/metadata via 'p4 fstat -m N'. Omit for unbounded info/metadata results."},{"name":"pattern","type":null,"required":false,"description":"Search or grep pattern - required for search and grep actions"},{"name":"ranges","type":null,"required":false,"description":"Optional line ranges for the content action only. Each inner list is a [start, end] pair, 1-based inclusive. When set, the response carries a 'chunks' array with one entry per range instead of the wh…"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":235},{"name":"modify_files","title":null,"description":"Add, edit, move, delete, revert, reconcile, resolve, and sync files (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"File modification action"},{"name":"changelist","type":"string","required":false,"description":"Changelist ID or 'default'"},{"name":"file_paths","type":null,"required":false,"description":"Full depot or client or local paths"},{"name":"force","type":"boolean","required":false,"description":"Force operation - use with caution"},{"name":"mode","type":"string","required":false,"description":"Resolve mode: auto(-am), safe(-as), force(-af), preview(-n), theirs(-at), yours(-ay)"},{"name":"source_paths","type":null,"required":false,"description":"Source paths - required for move action"},{"name":"target_paths","type":null,"required":false,"description":"Target paths - required for move action"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":139},{"name":"query_changelists","title":null,"description":"Get changelist details and list changelists (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Changelist query action: get retrieves specific changelist details, list returns all changelists matching filters"},{"name":"changelist_id","type":null,"required":false,"description":"Changelist ID - required for get action"},{"name":"depot_path","type":null,"required":false,"description":"Filter by depot path - for list action"},{"name":"max_results","type":null,"required":false,"description":"Maximum number of results to return. Bounds the 'list' action and also caps open files for get('default') via 'p4 opened -m N'. Omit for unbounded results."},{"name":"status","type":null,"required":false,"description":"Filter by status - for list action"},{"name":"user","type":null,"required":false,"description":"Filter by user - for list action"},{"name":"workspace_name","type":null,"required":false,"description":"Filter by workspace - for list action"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":162},{"name":"modify_changelists","title":null,"description":"Create/delete changelists, update changelists and organize files/jobs (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Changelist modification action: create makes new changelist, update modifies description, submit commits changes, delete removes changelist, move_files reorganizes files between changelists"},{"name":"changelist_id","type":null,"required":false,"description":"Changelist ID - required for most actions except create"},{"name":"description","type":"string","required":false,"description":"Changelist description - required for create, optional for update"},{"name":"file_paths","type":null,"required":false,"description":"File paths - required for move_files action"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":120},{"name":"query_shelves","title":null,"description":"List shelves, get shelve diff and files (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Shelve query action: list returns all shelved changelists, diff shows shelved file differences, files lists files in shelved changelist"},{"name":"changelist_id","type":null,"required":false,"description":"Changelist ID - required for diff and files actions"},{"name":"max_results","type":"integer","required":false,"description":"Maximum number of results to return"},{"name":"user","type":null,"required":false,"description":"Filter by user - for list action"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":102},{"name":"modify_shelves","title":null,"description":"Create/delete, update shelves and unshelve files (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Shelve modification action: shelve stores files to shelf, unshelve restores files from shelf, update modifies shelved files, delete removes shelf, unshelve_to_changelist restores to specific changeli…"},{"name":"changelist_id","type":"string","required":true,"description":"Changelist ID"},{"name":"file_paths","type":null,"required":false,"description":"File paths for shelve/unshelve/update/delete"},{"name":"force","type":"boolean","required":false,"description":"Force operation - use with caution"},{"name":"target_changelist","type":"string","required":false,"description":"Target changelist for unshelve operations"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":133},{"name":"query_jobs","title":null,"description":"Get jobs from changelist and get job details (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Job query action: list_jobs returns jobs linked to changelist, get_job retrieves specific job details"},{"name":"changelist_id","type":null,"required":false,"description":"Changelist ID - required for list_jobs action"},{"name":"job_id","type":null,"required":false,"description":"Job ID - required for get_job action"},{"name":"max_results","type":"integer","required":false,"description":"Maximum number of results to return"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":92},{"name":"modify_jobs","title":null,"description":"Link or unlink jobs (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Job modification action: link_job associates job with changelist, unlink_job removes job association"},{"name":"changelist_id","type":"string","required":true,"description":"Changelist ID - required for link_job/unlink_job"},{"name":"job_id","type":"string","required":true,"description":"Job ID - required for link_job/unlink_job"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":79},{"name":"query_reviews","title":null,"description":"Get review details and list reviews (READ permission).\nOpen review - state is 'approved but pending=true' or 'needsReview' or 'needsRevision'.\nClosed review - state is 'approved but pending=false' or 'rejected' or 'archived'.","inputs":[{"name":"action","type":"string","required":true,"description":"Review query action: list all reviews, dashboard for current user, get specific review, transitions, files_readby, files, comments, activity"},{"name":"after","type":null,"required":false,"description":"Review ID to seek to for pagination (list action). Reviews up to and including this ID are excluded."},{"name":"after_updated","type":null,"required":false,"description":"Return reviews updated on the day before this date/time in seconds since epoch (list action). Mutually exclusive with 'after'."},{"name":"comments_fields","type":null,"required":false,"description":"Comma-separated list of fields to return for comments action"},{"name":"fields","type":null,"required":false,"description":"List of fields to return for list/get actions"},{"name":"from_version","type":null,"required":false,"description":"Starting version for files action"},{"name":"include_transitions","type":null,"required":false,"description":"Include allowed state transitions in get action response"},{"name":"keywords","type":null,"required":false,"description":"Search keyword(s) to filter reviews (list action). Use with keywords_fields."},{"name":"keywords_fields","type":null,"required":false,"description":"Fields to search keywords in (list action). Valid: changes, author, participants, hasReviewer, description, updated, projects, state, testStatus, pending, groups, id"},{"name":"max_results","type":"integer","required":false,"description":"Maximum number of results to return"},{"name":"projects","type":null,"required":false,"description":"Filter by project name(s) (list action)"},{"name":"result_order","type":null,"required":false,"description":"Set to 'updated' to return most recently updated reviews first (list action)"},{"name":"review_id","type":null,"required":false,"description":"Review ID - required for get, transitions, files_readby, files, comments, activity actions"},{"name":"state","type":null,"required":false,"description":"Filter by review state(s) (list action). Valid: needsRevision, needsReview, approved, approved:isPending, approved:commit, approved:notPending, rejected, archived"},{"name":"to_version","type":null,"required":false,"description":"Ending version for files action"},{"name":"up_voters","type":null,"required":false,"description":"List of up voters for transitions action"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":408},{"name":"modify_reviews","title":null,"description":"Create/update/delete reviews (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Review modification action. To delete/obliterate review, use 'obliterate' action which requires approval"},{"name":"body","type":null,"required":false,"description":"Comment body (required for add_comment, reply_comment)"},{"name":"change_id","type":null,"required":false,"description":"Changelist ID (required for create, append_change, replace_with_change)"},{"name":"cleanup","type":null,"required":false,"description":"Perform cleanup for approved:commit/committed transitions"},{"name":"comment_content","type":null,"required":false,"description":"Content lines used to anchor an inline comment to the correct diff position (add_comment). Supply the code line the comment is on plus the four preceding lines, each terminated with a newline charact…"},{"name":"comment_file_path","type":null,"required":false,"description":"File path for inline comment"},{"name":"comment_id","type":null,"required":false,"description":"Comment ID (reply_comment, edit_comment, mark_comment_read/unread)"},{"name":"comment_left_line","type":null,"required":false,"description":"Left diff line number for inline comment"},{"name":"comment_right_line","type":null,"required":false,"description":"Right diff line number for inline comment"},{"name":"comment_version","type":null,"required":false,"description":"Review version for comment attachment"},{"name":"description","type":null,"required":false,"description":"Review description (optional on create)"},{"name":"fix_status","type":null,"required":false,"description":"Job fix status when transitioning"},{"name":"jobs","type":null,"required":false,"description":"Associated job IDs for transition"},{"name":"max_reviews","type":"integer","required":false,"description":"Maximum number of inactive reviews to archive (0 = no limit)"},{"name":"new_author","type":null,"required":false,"description":"New author username (update_author)"},{"name":"new_description","type":null,"required":false,"description":"New review description (update_description)"},{"name":"not_updated_since","type":null,"required":false,"description":"ISO date (YYYY-MM-DD) threshold for archive_inactive"},{"name":"notify","type":null,"required":false,"description":"Notification mode"},{"name":"participant_group_names","type":null,"required":false,"description":"List of participant group names"},{"name":"participant_groups_required","type":null,"required":false,"description":"List of required participant groups"},{"name":"participant_user_names","type":null,"required":false,"description":"List of participant usernames"},{"name":"participant_users_required","type":null,"required":false,"description":"List of required participant usernames"},{"name":"required_reviewers","type":null,"required":false,"description":"List of required reviewers"},{"name":"review_id","type":null,"required":false,"description":"Review ID (required for most actions except create, archive_inactive)"},{"name":"reviewer_group_names","type":null,"required":false,"description":"List of reviewer group names"},{"name":"reviewer_groups_required","type":null,"required":false,"description":"List of required reviewer groups"},{"name":"reviewers","type":null,"required":false,"description":"List of reviewers"},{"name":"task_state","type":null,"required":false,"description":"Task state. add_comment accepts only 'open'|'comment'; edit_comment additionally accepts 'addressed'|'verified'"},{"name":"transition","type":null,"required":false,"description":"Transition target state"},{"name":"version","type":null,"required":false,"description":"Review version (optional for vote)"},{"name":"vote_value","type":null,"required":false,"description":"Vote value"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":491},{"name":"query_streams","title":null,"description":"Query streams: list, get spec, children/parent/graph, integration status, workspaces, validate files, check resolve, interchanges (READ permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Stream query action: 'list' streams, 'get' stream spec, 'children'/'parent'/'graph' of a stream, 'integration_status' (p4 istat), 'get_workspace'/'list_workspaces', 'validate_file'/'validate_submit'…"},{"name":"all_streams","type":"boolean","required":false,"description":"Include virtual streams in 'list' results"},{"name":"at_change","type":null,"required":false,"description":"Changelist number for historical stream spec"},{"name":"both_directions","type":"boolean","required":false,"description":"Show integration status in both directions (-a flag for integration_status)"},{"name":"changelist","type":null,"required":false,"description":"Changelist for validate_submit"},{"name":"fields","type":null,"required":false,"description":"Fields to return for 'list' (e.g. ['Stream', 'Owner', 'Name', 'Type'])"},{"name":"file_paths","type":null,"required":false,"description":"File paths for validate_file or interchanges"},{"name":"filter","type":null,"required":false,"description":"Filter expression string for 'list' (-F flag). Supports &, |, and parentheses. E.g. 'Parent=//Ace/MAIN&(Type=development|Type=release)'"},{"name":"force_refresh","type":"boolean","required":false,"description":"Force istat to assume cache is stale and search for pending integrations (-c flag)"},{"name":"limit","type":null,"required":false,"description":"Max changelists (interchanges)"},{"name":"long_output","type":"boolean","required":false,"description":"Full changelist descriptions (interchanges)"},{"name":"max_results","type":null,"required":false,"description":"Maximum number of results to return. Bounds 'list' and 'list_workspaces' and also caps 'children' via 'p4 streams -m N'. Omit for unbounded results."},{"name":"reverse","type":"boolean","required":false,"description":"Reverse comparison direction (interchanges)"},{"name":"stream_name","type":null,"required":false,"description":"Stream depot path (e.g. '//depot/main'). Required for most actions."},{"name":"stream_path","type":null,"required":false,"description":"Stream path pattern(s) for 'list' (e.g. ['//depot/...'])"},{"name":"template","type":null,"required":false,"description":"Template workspace for get_workspace"},{"name":"unloaded","type":"boolean","required":false,"description":"Include unloaded streams/workspaces"},{"name":"user","type":null,"required":false,"description":"Filter workspaces by user (list_workspaces)"},{"name":"view_without_edit","type":"boolean","required":false,"description":"View locked stream without opening for edit (-v flag)"},{"name":"viewmatch","type":null,"required":false,"description":"Single depot file path to filter streams whose views contain this path"},{"name":"workspace","type":null,"required":false,"description":"Workspace name for get_workspace, validate_file, validate_submit"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":512},{"name":"modify_streams","title":null,"description":"Create/update/delete streams, edit/resolve/revert/shelve stream specs, copy/merge/integrate/populate between streams, switch workspace, create stream workspace (WRITE permission)","inputs":[{"name":"action","type":"string","required":true,"description":"Stream modification action: 'create'/'update'/'delete' a stream, 'edit_spec'/'resolve_spec'/'revert_spec'/'shelve_spec'/'unshelve_spec' for spec editing, 'copy'/'merge'/'integrate'/'populate' for pro…"},{"name":"alt_roots","type":null,"required":false,"description":"Alternate root paths (create_workspace)"},{"name":"branch","type":null,"required":false,"description":"Branch spec name for integrate/populate (-b flag)"},{"name":"changelist","type":null,"required":false,"description":"Changelist for edit_spec, shelve_spec, unshelve_spec, or propagation, 'default' not allowed for edit_spec/shelve_spec/unshelve_spec"},{"name":"description","type":null,"required":false,"description":"Stream or workspace description"},{"name":"file_paths","type":null,"required":false,"description":"File paths for propagation"},{"name":"force","type":"boolean","required":false,"description":"Force operation"},{"name":"host","type":null,"required":false,"description":"Host restriction (create_workspace)"},{"name":"ignored","type":null,"required":false,"description":"Ignored paths"},{"name":"integrate_around_deleted","type":"boolean","required":false,"description":"Integrate around deleted revisions (-Di flag)"},{"name":"max_files","type":null,"required":false,"description":"Limit number of files processed (-m flag)"},{"name":"name","type":null,"required":false,"description":"Short display name for the stream"},{"name":"options","type":null,"required":false,"description":"Stream options: 'allsubmit/ownersubmit unlocked/locked toparent/notoparent fromparent/nofromparent'"},{"name":"output_base","type":"boolean","required":false,"description":"Show base revision with each scheduled resolve (-Ob flag for merge/integrate) or display list of files created (-o flag for populate)"},{"name":"parent","type":null,"required":false,"description":"Parent stream (required for non-mainline create)"},{"name":"parent_stream","type":null,"required":false,"description":"Override parent stream for propagation (-P flag)"},{"name":"parent_view","type":null,"required":false,"description":"Parent view treatment: 'inherit' or 'noinherit'"},{"name":"paths","type":null,"required":false,"description":"Stream view paths (e.g. ['share ...', 'isolate dir/...'])"},{"name":"preview","type":"boolean","required":false,"description":"Preview only, don't make changes (-n flag)"},{"name":"quiet","type":"boolean","required":false,"description":"Suppress informational messages (-q flag)"},{"name":"remapped","type":null,"required":false,"description":"Remapped paths"},{"name":"resolve_mode","type":null,"required":false,"description":"Resolve mode for resolve_spec: 'auto', 'accept_theirs', 'accept_yours'"},{"name":"reverse","type":"boolean","required":false,"description":"Reverse direction (-r flag)"},{"name":"root","type":null,"required":false,"description":"Workspace root directory (create_workspace)"},{"name":"schedule_branch_resolve","type":"boolean","required":false,"description":"Schedule 'branch resolves' instead of branching new target files automatically (-Rb flag)"},{"name":"skip_cherry_picked","type":"boolean","required":false,"description":"Skip cherry-picked revisions already integrated (-Rs flag)"},{"name":"source_path","type":null,"required":false,"description":"Source path for populate"},{"name":"stream_name","type":null,"required":false,"description":"Stream depot path (e.g. '//depot/main'). Also used as -S flag for propagation."},{"name":"stream_type","type":null,"required":false,"description":"Stream type (required for create): mainline, development, sparsedev, release, sparserel, task, virtual"},{"name":"target_changelist","type":null,"required":false,"description":"Target changelist for unshelve_spec"},{"name":"target_path","type":null,"required":false,"description":"Target path for populate"},{"name":"virtual","type":"boolean","required":false,"description":"Copy using virtual stream (-v flag, copy only)"},{"name":"workspace","type":null,"required":false,"description":"Workspace name for switch"},{"name":"workspace_name","type":null,"required":false,"description":"Workspace name to create (create_workspace)"}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":678}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T04:18:05.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1a9ed-a315-7882-9757-4d66f6ef9f3a","kind":"score.total_changed","summary":"Trust score (36 → 37)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server#chg-chg_01a1a9ed-a315-7882-9757-4d66f6ef9f3a"},{"id":"chg_01a19f9d-1ecb-7e33-a10f-d195034dba0e","kind":"score.total_changed","summary":"Trust score (35 → 36)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server#chg-chg_01a19f9d-1ecb-7e33-a10f-d195034dba0e"},{"id":"chg_01a19d58-98d4-7222-aa08-012b34a04e66","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server#chg-chg_01a19d58-98d4-7222-aa08-012b34a04e66"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server/changelog.json"},"links":{"html":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server","markdown":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server.md","changelogJson":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server/changelog.json","changelogRss":"https://verifymcp.io/servers/perforce-p4mcp-server/ghcr-io-perforce-p4mcp-server.xml","external":[{"label":"GitHub Container Registry","href":"https://ghcr.io/perforce/p4mcp-server"},{"label":"Repository","href":"https://github.com/perforce/p4mcp-server"}]}}