Skip to main content
Glama
iPraBhu

mcp-perforce-server

by iPraBhu

MCP Perforce Server

npm version License: MIT Node.js Version TypeScript MCPAmpel

mcp-perforce-server is a Model Context Protocol server for Perforce (p4) with safe defaults, structured JSON responses, and both native-style and MCP-optimized workflows.

It is designed for AI assistants and IDE integrations that need Perforce access without relying on brittle shell scripting.

What It Provides

  • 59 MCP tools across repository inspection, file operations, changelists, reviews, jobs, labels, streams, analytics, and compliance.

  • Dual transport support: stdio (IDE/CLI) and SSE (HTTP server for web clients).

  • Safe-by-default runtime behavior:

    • P4_READONLY_MODE=true

    • P4_DISABLE_DELETE=true

  • Batch-capable inputs for the tool surface where native p4 supports multi-target usage.

  • MCP-specific composite helpers that reduce round trips for common review and search workflows.

  • Structured responses with ok, result, optional error, optional warnings, and configUsed.

  • MCP clients see underscore-safe tool names, for example p4_changes.

  • Incoming calls also accept the historical dotted names, for example p4.changes.

Related MCP server: Aurea Orchestrator MCP

Highlighted Workflows

The server includes higher-level helpers on top of raw p4 commands.

  • p4.review.bundle: pending review changelists with optional details and reviewers

  • p4.change.inspect: describe + fixes + reviews + optional diff + optional file history

  • p4.path.synccheck: drift and sync-state analysis between two depot paths

  • p4.file.inspect: per-file metadata, history, optional content, and optional blame

  • p4.workspace.snapshot: workspace info, status, optional config, opened files, and recent changes

  • p4.search.inspect: grouped search results with optional file metadata and content previews

  • p4.review.prepare: explicit or discovered changelists prepared into review-ready bundles

Install

npm install -g mcp-perforce-server

Requirements:

  • Node.js 18+

  • Perforce CLI available as p4 or p4.exe

  • Valid Perforce environment via .p4config or MCP env

Quick Start

  1. Install the Perforce CLI and ensure p4 is on PATH.

  2. Configure Perforce credentials in .p4config or via MCP env.

  3. Add the server to your MCP client.

  4. Start in the default safe profile before enabling any write-capable tools.

Example .p4config:

P4PORT=ssl:perforce.example.com:1666
P4USER=your-username
P4CLIENT=your-workspace-name
P4PASSWD=your-password-or-ticket

Example MCP config using the globally installed server:

{
  "mcpServers": {
    "perforce": {
      "command": "mcp-perforce-server"
    }
  }
}

Example MCP config with explicit credentials:

{
  "mcpServers": {
    "perforce": {
      "command": "mcp-perforce-server",
      "env": {
        "P4PORT": "ssl:perforce.example.com:1666",
        "P4USER": "your-username",
        "P4CLIENT": "your-workspace-name",
        "P4PASSWD": "your-password-or-ticket",
        "P4_READONLY_MODE": "true",
        "P4_DISABLE_DELETE": "true"
      }
    }
  }
}

Windows local-repo example:

{
  "mcpServers": {
    "perforce": {
      "command": "node",
      "args": ["C:\\Tools\\git-projects\\mcp-perforce-server\\dist\\server.js"]
    }
  }
}

Transport Modes

The server supports two transport modes:

Stdio Transport (Default)

Standard input/output transport for IDE and CLI integration. Each MCP client spawns its own server process.

Best for:

  • VS Code, Cursor, Claude Desktop integration

  • CLI tools and local automation

  • Single-user workflows

  • Process-isolated security model

# Default mode (no flag needed)
mcp-perforce-server

SSE Transport (HTTP Server)

Server-Sent Events transport runs an HTTP server for web-based clients.

Best for:

  • Web dashboards and analytics UIs

  • Team collaboration tools

  • Centralized deployments

  • Multi-user environments

  • API integrations

# Start SSE server
mcp-perforce-server --transport=sse

# With custom configuration
MCP_SSE_PORT=8080 MCP_SSE_ENABLE_AUTH=true mcp-perforce-server --transport=sse

SSE Configuration:

Variable

Default

Description

MCP_SSE_PORT

3000

HTTP server port

MCP_SSE_HOST

0.0.0.0

Server bind address

MCP_SSE_PATH

/mcp

SSE endpoint path

MCP_SSE_CORS_ORIGIN

*

CORS allowed origins

MCP_SSE_ENABLE_AUTH

false

Enable token authentication

MCP_SSE_AUTH_TOKEN

(empty)

Bearer token for auth

SSE Endpoints:

  • Main: GET http://localhost:3000/mcp

  • Health: GET http://localhost:3000/health

  • Post: POST http://localhost:3000/mcp

Production SSE Example:

export MCP_SSE_ENABLE_AUTH=true
export MCP_SSE_AUTH_TOKEN="your-secret-token"
export MCP_SSE_CORS_ORIGIN="https://your-dashboard.com"
export P4_READONLY_MODE=true
mcp-perforce-server --transport=sse

📘 For complete SSE deployment guide, see SSE_SETUP_GUIDE.md

Quick references:

Safety Model

The default runtime profile is conservative.

Setting

Default

Effect

P4_READONLY_MODE

true

Blocks write-capable tools.

P4_DISABLE_DELETE

true

Blocks p4.delete even when write mode is enabled.

Write-capable tools include:

  • p4.add, p4.edit, p4.delete, p4.revert, p4.sync

  • p4.changelist.create, p4.changelist.update, p4.changelist.submit, p4.submit

  • p4.resolve, p4.shelve, p4.unshelve

  • p4.copy, p4.move, p4.integrate, p4.merge

Tool Surface

Major categories:

  • Repository and workspace inspection

  • File operations and diffing

  • Changelists and submissions

  • Merge, shelving, and resolve flows

  • Search and discovery

  • Review and workflow composites

  • Users, clients, streams, labels, jobs, and fixes

  • Compliance, audit, and operational diagnostics

Notable native parity improvements:

  • Batch-style inputs for commands such as sync, opened, filelog, annotate, grep, files, dirs, print, fstat, sizes, have, users, streams, jobs, and fixes

  • Expanded native flag coverage for tools such as sync, interchanges, fstat, files, dirs, streams, clients, labels, jobs, and sizes

  • Support for both workspace-facing and depot-to-depot diffing via p4.diff and p4.diff2

Configuration

Most installations only need a small set of variables.

Variable

Default

Purpose

P4_READONLY_MODE

true

Keep the server read-only by default.

P4_DISABLE_DELETE

true

Prevent delete operations unless explicitly enabled.

P4CONFIG

.p4config

Config file name used during upward discovery.

P4_PATH

p4 / p4.exe

Custom path to the Perforce CLI.

P4_PERFORMANCE_MODE

fast

Preset: fast, balanced, secure.

P4_WORKFLOW_CONCURRENCY

6

Max concurrent subcalls for composite tools.

P4_RESPONSE_CACHE

true

Enable read-response caching.

P4_RESPONSE_CACHE_TTL_MAP

unset

Per-tool cache TTL overrides.

LOG_LEVEL

warn

Server log level.

Perforce connection variables:

  • P4PORT

  • P4USER

  • P4CLIENT

  • P4PASSWD

  • P4CHARSET

  • P4COMMANDCHARSET

  • P4LANGUAGE

For full configuration tables and examples, see:

Development

npm install
npm run build
npm test
npm run test:integration

Current verification baseline:

  • npm run build

  • npm test

  • npm run test:integration

Documentation

License

MIT

Available Tools

59 tools
p4_addC

Add files to Perforce

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesFiles to add (required)
changelistNoChangelist number (optional, defaults to default changelist)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description alone must disclose behavior. 'Add files to Perforce' only communicates a mutating action; it does't mention that files are opened in a changelist, that they must be submitted to take effect, or any dependency on the current workspace. Slightly more concrete than a pure tautology, but far from transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero filler words. It earns its place as a concise action statement, though the brevity undersells the important context around file states and changelists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutating tool with no annotations and no output schema, the description is incomplete. It omits the crucial 'new files only' semantics, the default changelist behavior, and does not route the agent to alternative tools when files already exist in the depot. The schema handles parameters but not operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters with 100% coverage, including clear explanations for files, changelist, and workspacePath. The description adds no parameter-level meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

Identifies a clear verb and resource: adding files to Perforce. However, it doesn't clarify that 'add' means opening new/untracked files for submission, nor does it distinguish this from sibling tools like p4_edit or p4_copy. The core Perforce meaning of 'add' is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool vs alternatives. The sibling list contains p4_edit, p4_revert, p4_move, and p4_opy, but the descripion never says 'use p4_add for new files, p4_edit for existing files.' The usage context is entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_annotateC

Alias of p4.blame (line-by-line annotation)

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile to annotate (required)
filesNoFiles to annotate in one command (required if file is omitted)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only line-by-line annotation operation but does not describe output format, workspace requirements, or any side effects. The phrase 'Alias of p4.blame' is metadata rather than substantive behavior disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately short and front-loaded, with no filler. It is concise enough to parse quickly, though the alias framing could have been enriched with a bit more functional detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with no annotations and no output schema, the description provides the essential meaning but leaves gaps such as how files/workspacePath are used together and what the returned annotation looks like. It is minimally complete but not richly contextual.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the schema does the heavy lifting. The tool description adds no extra parameter semantics, but the baseline 3 applies because the schema already provides sufficient parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an alias for p4.blame and adds the parenthetical 'line-by-line annotation', making the core purpose clear. It does not explicitly distinguish it from the sibling p4_blame, but the alias relationship conveys what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use p4_annotate versus p4_blame or any alternative. Since p4_blame is a direct sibling and likely equivalent, an agent receives no routing or selection help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_auditB

Get audit log entries for compliance reporting (requires audit logging enabled)

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoFilter by tool name
userNoFilter by user
sinceNoFilter entries since this ISO date
formatNoOutput format (default: json)
resultNoFilter by result type
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It mentions the prerequisite but omits return format, ordering, pagination, permission requirements, or any side effects. For a tool an agent may invoke autonomously, this is thin behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence front-loads the verb and resource, and the prerequisite is tucked into a short parenthetical. No filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema covers all inputs and the description states the core purpose and prerequisite. With no output schema and no annotations, however, the description leaves return behavior and operational details unspecified, creating a moderate gap for a complete agent-facing definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all six parameters. The description adds no parameter-specific meaning, but none is needed because the schema handles it fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Get audit log entries' for 'compliance reporting'. This clearly identifies the object and intended use. It does not explicitly differentiate from sibling p4_compliance, but 'audit log entries' is specific enough for most routing decisions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a useful prerequisite ('requires audit logging enabled') and names the use case ('compliance reporting'), which implies when the tool is appropriate. However, it gives no explicit guidance about alternatives or when not to use this tool, leaving routing partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_blameB

Show file annotations with change history (like git blame)

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile to show blame for (required)
filesNoFiles to show blame for in one command (required if file is omitted)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden. It only says 'Show' and compares to git blame, which implies a read-only operation, but it does not disclose output format, line-level detail, authentication needs, performance considerations, or any other behavioral traits an agent should know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence that immediately states the action and the resource. It is appropriately sized for a simple tool and contains no filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-style tool with fully documented parameters, the description is mostly sufficient for calling it. However, it fails to disambiguate from the closely named sibling p4_annotate and does not describe the return format, which limits completeness in an agent-facing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented in the schema. The tool description adds no new parameter-level meaning beyond the analogy to git blame, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('show'), resource ('file annotations'), and adds the git-blame analogy to clarify intent. However, it does not distinguish this tool from the sibling tool p4_annotate, which likely covers very similar or identical functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to choose p4_blame over alternatives such as p4_annotate, p4_filelog, or p4_diff. The git-blame analogy gives a general hint about the use case, but there are no explicit when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_change_inspectA

Composite changelist inspection: describe + fixes + reviewers (+ optional file history)

ParametersJSON Schema
NameRequiredDescriptionDefault
changelistYesChangelist number to inspect (required)
diffFormatNoDiff format for describe when includeDiff=true
includeDiffNoInclude describe diff content in inspection output (optional, default false)
maxRevisionsNoMaximum revisions per filelog call (optional, default 5)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeFileHistoryNoInclude p4 filelog for affected files (optional, default false)
maxFilesWithHistoryNoMaximum files to fetch filelog for (optional, default 5)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full behavioral burden. It discloses the aggregate command set and optional file-history behavior, which implies a read-only inspection. However, it does not describe output shape, execution order, error behavior, or side effects, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single compact sentence with front-loaded composite identity and optional behavior at the end. Every word earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema fully covers invocation, and the description identifies the main output sections: describe, fixes, reviewers, and optional history. However, with no output schema and no annotations, it does not specify the returned structure or how options like includeDiff and maxRevisions shape results, which is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with every parameter documented including defaults and the diffFormat enum. The description reinforces the optional file-history behavior but adds no new parameter semantics, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: 'changelist inspection'. The 'Composite' prefix and enumerated components ('describe + fixes + reviewers + optional file history') clearly differentiate it from singular sibling tools like p4_describe or p4_fixes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for a combined inspection workflow, but it never names alternatives or states when to prefer this over p4_describe, p4_filelog, or p4_fixes individually. No explicit when-not conditions are given, so the agent must infer usage from the word 'Composite'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_changelist_createC

Create a new changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to include in changelist (optional)
descriptionYesChangelist description (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It only says 'Create a new changelist' and omits side effects, whether files listed are opened into the changelist, whether a workspace/client is required, and what the success or failure behavior looks like. This is essentially a restatement of the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short with no filler or redundant words. However, it is so terse that it borders on under-specification: it adds almost no information beyond the tool name, so it is concise but not a well-rounded description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is not complete enough. It does not explain the role of workspacePath or files, does not state return values, does not mention that this creates a pending changelist, and offers no guidance about preconditions or subsequent steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters clearly. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema carries that burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('create') and resource ('changelist'), and the word 'new' signals creation rather than update or submit. It clearly identifies the core action, though it does not explicitly distinguish it from sibling tools like p4_changelist_update or p4_changelist_submit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as p4_changelist_update, p4_changelist_submit, p4_add, or p4_edit. No prerequisites, exclusions, or contextual conditions are provided; usage is only implied by the tool name and the single verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_changelist_submitC

Submit a numbered changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
changelistYesChangelist number to submit (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It only states that the tool submits a changelist; it does not mention prerequisites like an existing pending changelist, effects on files, reversibility, or whether user confirmation is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with no wasted words. It is economical, though it sacrifices behavioral detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description does not convey return values, success/failure behavior, or important preconditions. For a mutating Perforce operation, this leaves an agent with insufficient context to confidently invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the changelist and workspacePath parameters. The description adds no additional meaning beyond restating that the changelist is numbered, which is already implied by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Submit a numbered changelist.' It is unambiguous about what the tool does, but it does not differentiate itself from the sibling tool p4_submit, which may also submit changelists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool instead of p4_submit or other changelist-related siblings. There is no context about when this is the right choice, no exclusions, and no alternative tool mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_changelist_updateC

Update an existing changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to include in changelist (optional)
changelistYesChangelist number (required)
descriptionNoNew description (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits on its own. It only says 'Update', revealing that the tool mutates state, but does not explain side effects, required preconditions, reversible nature, or what happens to the changelist's files and description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words, and the core purpose is front-loaded. However, it is so terse that it misses oportunities to add routing or behavioral context, but as a concise statement it works.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description is the only source of context. A simple 'Update an existing changelist' does not explain return values, side effects, prerequisites like a pending changelist, or how workspacePath factors in, leaving an agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters already explained in the input schema. The description adds no additional meaning about parameters, so baseline of 3 is appropriate since the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Update') and resource ('existing changelist'), which distinguishes it from create or submit siblings. However, it does not explicitly name or differentiate from sibling tools like p4_changelist_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool vs alternatives such as p4_changelist_create or p4_changelist_submit. The description only implies usage through the verb 'update', which does not help an agent decide between sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_changesB

List submitted changelists with advanced filtering

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
userNoFilter by user (optional)
clientNoFilter by client/workspace (optional)
statusNoFilter by changelist status (optional)
filespecNoFilter by filespec (optional)
filespecsNoFilter by multiple filespecs (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It communicates that the operation lists changelists, but it does not mention result format, default limits, ordering, or the fact that filtering by status can return pending and shelved changelists despite the 'submitted' wording.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence with no filler or redundant restatement. The core action and object are front-loaded, and 'advanced filtering' summarizes the parameter Surface area without unnecessary length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list-style tool with no output schema and no annotations, the description is minimally adequate but incomplete. It does not clarify default behavior, the meaning of the returned changelist summaries, or how status filtering expands beyond 'submitted', leaving an agent to infer important calling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds only a generic 'advanced filtering' qualifier and no parameter-specific detail, which matches the baseline of 3 for fully covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('List') and resource ('changelists') with a filtering qualifier, which clearly distinguishes it from detail-oriented siblings like p4_describe or p4_filelog. However, it narrows the scope to 'submitted' changelists while the status parameter also supports pending and shelved, so the stated scope is slightly incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as p4_opened, p4_describe, or p4_changelist_create. The phrase 'advanced filtering' implies a listing use case, but there are no explicit context cues, exclusions, or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_clientC

Get detailed client/workspace information

ParametersJSON Schema
NameRequiredDescriptionDefault
clientNoClient/workspace name (optional, defaults to current client)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get' information, implying a read operation, but does not mention output format, default behavior, potential errors, or any side effects. For a read tool this is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler. The verb and object are front-loaded, and every word contributes to conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read tool with no required parameters, but with no output schema and no annotations, the description should explain what 'detailed information' includes and how it behaves by default. It does not provide enough context for an agent to confidently distinguish this from nearby siblings or to anticipate the returned content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage with descriptions for both optional parameters, including their default behavior. The description itself adds no additional parameter meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('detailed client/workspace information'), making the core purpose clear. It does not explicitly differentiate from sibling tools like p4_clients, which likely list clients, but the singular 'client/workspace' focus is reasonably distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as p4_clients, p4_info, or p4_workspace_snapshot. There are no exclusions, prerequisites, or contextual hints beyond the obvious purpose of fetching client details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_clientsB

List Perforce clients/workspaces

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
userNoFilter by user (optional)
streamNoLimit workspaces to a dedicated stream using -S (optional)
serverIdNoLimit clients to a specific server using -s (optional)
unloadedNoList unloaded clients using -U (optional)
allServersNoList clients across all servers using -a (optional)
nameFilterNoWorkspace name filter using -e (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
caseInsensitiveNameFilterNoCase-insensitive workspace name filter using -E (optional)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'List' implies a read-only, non-destructive operation, but the description does not disclose output format, default scope, or whether unloaded/remote workspaces are included without flags. It covers the core behavior but little else.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded phrase with no filler words or redundant information. It is maximally concise and immediately communicates the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is rich and fully documents parameters, but there is no output schema and no annotations. A one-phrase description leaves the return shape and usage context underspecified, though it is adequate for a straightforward list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all 9 parameters with explicit flag mappings and defaults, so the description does not need to repeat parameter details. The description adds no extra parameter semantics, but the 100% schema coverage keeps this at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and identifies the resource as 'Perforce clients/workspaces', making the core purpose clear. However, it does not explicitly differentiate itself from sibling tools like p4_client or other listing commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no exclusions. The description implies a listing use case but provides no context about when it should or should not be selected.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_complianceB

Get compliance configuration and current status

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description's 'Get' verb is the sole signal that this is a read-only operation. It does not disclose side-effect behavior, permission requirements, or scope of the 'current status' result, but the low-risk read nature is reasonably conveyed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler, and the action verb is front-loaded. It is not overly verbose, though it provides no structural differentiation between configuration and status.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool with a fully described schema, the description is mostly sufficient. However, with no output schema, it does not clarify what fields or format the returned compliance status/config will contain, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the only parameter (workspacePath) with 100% coverage, including its optional/default behavior. The description adds no parameter semantics, but the schema carries the load, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Get') and a specific resource ('compliance configuration and current status'), which is enough to identify the tool's basic function. It does not explicitly contrast it with sibling tools, but the compliance scope is distinct from the other p4_* commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives, when not to use it, or what conditions apply (e.g., required permissions or workspace context). The only implication is that it is for reading compliance data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_config_detectC

Detect and show Perforce configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathNoPath to start config search from (optional, defaults to current directory)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It implies a read-only inspection by using 'Detect and show', but it does not explain what configuration is detected, whether it searches the filesystem, what output is produced, or whether it queries the Perforce server.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no filler or redundant clauses. It is front-loaded and easy to scan, though its brevity comes at the cost of useful detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only one optional parameter and no output schema, but the description still leaves out essential context: what the detected configuration looks like, what the command returns, and whether there are any side effects. An agent could invoke it but would not know what to expect from the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single optional parameter, so the schema already explains workspacePath. The description adds no additional semantic meaning beyond the schema, which is the baseline expectation when coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a verb ('Detect and show') and a resource ('Perforce configuration'), so it is not a pure tautology. However, it is vague about what kind of configuration is being detected and does not distinguish this tool from siblings like p4_info or p4_status that could also display configuration-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives, and no mention of prerequisites or typical use cases. The only contextual hint is the optional workspacePath parameter, which implicitly suggests a filesystem search, but the description never states this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_copyC

Copy files between locations

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource file path (required)
changelistNoChangelist number (optional)
destinationYesDestination file path (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it only says 'Copy files between locations'. It does not disclose that this is a server-side Perforce copy operation, whether integration history is recorded, what side effects occur in the depot, or what permissions are required. For a mutating operation with zero annotation coverage, this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence 'Copy files between locations' has no wasted words and is honestly concise. However, this is under-specification rather than effective conciseness — there is little substance to structure, and the sentence barely earns its place by clarifying only the most obvious verb-noun relationship.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with four parameters, no annotations, and no output schema, this description is severely incomplete. It fails to clarify what 'locations' means, how source/destination/workspacePath interact, why a changelist would be supplied, or what the operation returns or records. This is inadequate for an agent to select and invoke the tool correctly without external knowledge of Perforce.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema carries the load. The schema descriptions are thin (e.g., 'Source file path (required)') but present, so no penalty beyond baseline is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('copy') and resource ('files between locations'), so it is not a tautology. However, 'locations' is ambiguous in a Perforce context (depot paths vs. workspace paths vs. local files), and the description does nothing to distinguish this from siblings like p4_add, p4_sync, or p4_move. It is minimally clear but lacks scope or distinguishing detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many Perforce siblings (p4_add, p4_edit, p4_move, p4_sync, p4_integrated). No context, conditions, or exclusions are provided, so an agent must infer the tool's role from its name alone. The absence of any alternatives or usage conditions makes this a no-guidance case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_deleteB

Mark files for delete in Perforce

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesFiles to delete (required)
changelistNoChangelist number (optional, defaults to default changelist)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The word 'Mark' adds meaningful behavioral transparency beyond the tool name by indicating that this is a staging/opening operation rather than an immediate physical deletion. However, with no annotations provided, the description carries the full burden and does not mention effects on workspace files, changelists, reversibility, or the need to later submit. Some useful disclosure exists, but significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no redundant or filler content. It is appropriately front-loaded with the core operation. It could be more helpful by adding usage or behavior notes, but as a concise statement it succeeds.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a relatively simple tool with fully documented parameters, so the description does not need to explain return values or complex schemas. It conveys the core purpose and the important 'mark' nuance. However, it lacks practical context such as when to use it versus other Perforce commands and what happens to files before submission. For an agent operating Perforce, this context is useful and partially missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% description coverage for all three parameters, including 'files', 'changelist', and 'workspacePath'. The description itself adds no detail about parameter meaning or defaults. Given the high schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Mark', and names the resource, 'files', in the Perforce context. This clearly conveys the concept of opening files for deletion rather than physically destroying them, and distinguishes it from sibbling commands like p4_add or p4_edit. It does not explicitly contrast with alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus p4_revert, p4_submit, or other Perforce operations. The description implies deletion use case but does not state prerequisites, outcomes, or alternatives. This is insufficient routing guidance for an agent facing many siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_describeA

Describe a changelist with metadata, affected files, and optional diff content

ParametersJSON Schema
NameRequiredDescriptionDefault
changelistYesChangelist number (required)
diffFormatNoDiff format when includeDiff=true: u=unified, c=context, n=RCS, s=summary
includeDiffNoInclude patch/diff content from p4 describe -d* (optional, default false)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the behavioral disclosure burden. It accurately characterizes the operation as a read-only 'describe' and enumerates what is returned, but it does not explicitly state side-effect-free behavior, connection/auth expectations, or what happens for an invalid changelist. This is minimally adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with the action and target front-loaded and no filler. Every phrase contributes substantive information about scope or output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-like describe operation with fully documented parameters, the description gives a useful high-level summary of what is returned. The absence of an output schema and annotations means exact result formatting is not described, but the described content categories are sufficient for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter; the tool description is not required to add much. The phrase 'optional diff content' does loosely map to includeDiff/diffFormat, but it adds no new semantic information beyond what the schema states. This is the correct baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Describe') and a specific resource ('changelist') and further specifies the returned content: metadata, affected files, and optional diff content. This level of detail makes it clear what p4_describe actually does and helps it stand apart from inspection siblings such as p4_change_inspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to choose p4_describe over related tools like p4_change_inspect or p4_filelog, and it names no alternative or exclusion condition. The intended usage is only implied by the verb and return-value summary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_diffA

Show differences for workspace files (opened or local vs depot)

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to diff (optional, defaults to all opened files)
summaryNoShow summary only (optional, defaults to false)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The verb 'Show' implies a read-only operation, which is useful given that no annotations are provided. However, the description does not disclose output format, behavior for unopened or non-existent files, default handling of the summary flag, or whether a server connection is required. Some transparency exists, but significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Every phrase contributes meaning: 'Show differences', 'workspace files', and 'opened or local vs depot' all add specificity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All parameters are documented in the schema, but there is no output schema and no description of the return format or how the summary flag changes output. The absence of usage guidance and behavioral details also leaves the description somewhat incomplete, though the tool itself is relatively simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by clarifying the comparison direction ('workspace files ... vs depot') and the 'opened or local' distinction, which helps interpret the files parameter. It does not add detail about summary or workspacePath, but the schema already covers those adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Show'), a clear resource ('differences for workspace files'), and a precise scope ('opened or local vs depot'). This distinguishes it from p4_diff2, which compares depot-to-depot files, even though the sibling is not named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like p4_diff2, p4_status, or p4_opened. No exclusions, prerequisites, or selection criteria are provided, leaving the agent to infer appropriate usage from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_diff2A

Compare two depot paths server-side (depot-to-depot diff, no client mapping required)

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcePathYesFirst depot filespec/path to compare (required)
targetPathYesSecond depot filespec/path to compare (required)
summaryOnlyNoIf true, list differing files only like diff2 -q (default: true). If false, include full diff output.
workspacePathNoPath to workspace directory for config detection (optional, defaults to current directory)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral burden. It discloses the two decision-relevant traits — execution happens server-side and no client mapping is required — which directly affect whether an agent can invoke this tool in a given environment. It does not explicitly state read-only behavior or output format, but the verb 'Compare' strongly implies a non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no filler; every element ('server-side', 'depot-to-depot', 'no client mapping required') earns its place by adding differentiation. The core purpose is front-loaded, making the definition scannable in a tool list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with 100% schema coverage, all invocation details are present and well-documented. However, with no output schema, the description gives no hint about return shape, and the only output signal is the summaryOnly parameter inside the schema. The lack of explicit output expectations and named alternatives leaves a noticeable gap for an agent deciding how to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all four parameters, including the summaryOnly default behavior. The description adds marginal semantic value by clarifying that paths are depot paths (not workspace-relative paths), which aids interpretation of sourcePath and targetPath. Baseline 3 is appropriate since the structured fields carry the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Compare') and resource ('two depot paths'), and further differentiates itself from siblings like p4_diff by emphasizing 'server-side' and 'no client mapping required'. The 'depot-to-depot' qualifier removes ambiguity about whether paths are workspace or depot paths, making the tool's scope immediately recognizable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Server-side (depot-to-depot diff, no client mapping required)' provides clear context for when to choose this tool over client-side alternatives such as p4_diff, and signals it works without a configured workspace. It does not explicitly name sibling alternatives or state when not to use it, but the use case is strongly implied by the depot-only framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_dirsB

List directories in depot

ParametersJSON Schema
NameRequiredDescriptionDefault
streamNoLimit to directories mapped in a stream view using -S (optional)
filespecNoFilespec to list directories for (optional, defaults to all directories)
onlyHaveNoList directories containing files synced to the current workspace using -H (optional)
filespecsNoFilespecs to list directories for in one command (optional)
ignoreCaseNoIgnore case using -i (optional; incompatible with onlyClientMapped)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeDeletedNoInclude directories containing only deleted files using -D (optional)
onlyClientMappedNoList only directories in the current client view using -C (optional)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden; 'List directories in depot' accurately conveys a read-only listing operation. However, it does not disclose output format, ordering, recursion behavior, or how the many optional flags interact, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or repetition. It earns its place by stating the core operation clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema covers all parameter details, but the description is minimal for a tool with 8 optional parameters, no annotations, and no output schema. It does not describe the return shape of the directory listing or provide caveats about option combinations, making it minimally viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; every parameter is already documented with flag mappings, defaults, and an incompatibility note. The description itself adds no parameter-level meaning, but it does not need to because the schema is thorough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'List directories in depot,' so an agent immediately knows what the tool does. It does not explicitly differentiate itself from sibling tools like p4_files or p4_sizes, though the word 'directories' provides some distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus sibling tools such as p4_files or p4_sizes, and it does not mention exclusions, prerequisites, or alternative commands. It relies entirely on the schema to communicate usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_editB

Open files for edit in Perforce

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesFiles to edit (required)
changelistNoChangelist number (optional, defaults to default changelist)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description alone must disclose behavioral effects. It only states the action and does not explain that this opens files into a Perforce changelist, creates pending workspace state, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words or redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with fully documented parameters this is minimally adequate, but it omits output/return expectations and side-effect context. An agent gets the gist but not a complete operational picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already fully documented. The description adds no additional semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Open') and object ('files for edit in Perforce'), making the tool's core purpose clear. It distinguishes itself from siblings like p4_add and p4_delete, though it does not explicitly name any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as p4_add or p4_revert. Usage context must be inferred entirely from the tool name and the phrase 'for edit'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_file_inspectA

Composite file inspection: fstat + filelog + optional print/blame in one call

ParametersJSON Schema
NameRequiredDescriptionDefault
filespecNoSingle filespec to inspect
maxFilesNoMaximum files to inspect in one call (optional, default requested count capped at 25)
filespecsNoMultiple filespecs to inspect in one call
includeBlameNoInclude p4 annotate/blame output (optional, default false)
includeFstatNoInclude p4 fstat metadata (optional, default true)
maxRevisionsNoMaximum revisions per filelog call (optional, default 5)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeContentNoInclude p4 print content (optional, default false)
includeHistoryNoInclude p4 filelog history (optional, default true)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden; it does disclose that the tool invokes multiple Perforce read-style operations (fstat, filelog, optional print/blame). It does not, however, mention output shape, potential size/performance cost of print/blame, or whether any operation could have side effects beyond inspection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 12-word sentence with no filler; the composite nature and the component commands are front-loaded. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given nine parameters, no annotations, and no output schema, the one-line description is adequate for basic invocation but leaves the return contract and behavioral caveats unstated. The schema compensates for parameter semantics, but the absence of an output contract makes this only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter names and defaults carry the meaning; the description adds only the conceptual grouping of fstat/filelog/print/blame to the include* parameters. This meets the baseline but does not add substantive parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear composite operation ('fstat + filelog + optional print/blame in one call') with a specific resource domain (file inspection). This distinguishes it from siblings like p4_fstat, p4_filelog, p4_print, and p4_blame, which each perform only one component operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The composite wording and 'in one call' imply that this tool is for combined inspection requests, but the description never explicitly says when to prefer it over the individual sibling commands, nor does it state exclusions or prerequisites. Usage guidance is therefore only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_filelogC

Show file history

ParametersJSON Schema
NameRequiredDescriptionDefault
filespecNoFilespec to show history for (required)
filespecsNoFilespecs to show history for in one command (required if filespec is omitted)
maxRevisionsNoMaximum number of revisions to show (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description merely restates the tool's fuction without disclosing behavior such as output format, whether the workspace path affects results, or any limits. 'Show' implicitly suggests read-only, but this is also evident from the name, so the description adds little behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At three words, the description is certainly terse and front-loaded. But it is under-specified rather than efficiently complete; a single sentence stating the Perforce file-history context would be equally concise and more useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a very terse description, the definition lacks enough context for an agent to know exactly what will be returned, how to format filespecs, or how this command relates to sibling history tools. The schema helps with param meanings but not with usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description contributes no extra meaning to the parameters; filespec, filespecs, maxRevisions, workspacePath are documented only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Show') and resource ('file history'), so an agent can tell it is a read-only history command. However, it doesn't distinguish itself from closely related siblings like p4_describe or p4_changes, so it relies on the tool name to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use p4_filelog vs alternatives such as p4_blame, p4_describe, or p4_changes. There is no mention of exclusions or alternative selection criteria, leaving the agent to infer usage from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_filesB

List files in depot with metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
filespecNoFilespec to list (optional, defaults to all files)
filespecsNoFilespecs to list in one command (optional)
ignoreCaseNoIgnore case of the file argument using -i (optional)
allRevisionsNoDisplay all revisions in range using -a (optional)
archiveDepotNoInclude files in archive depots using -A (optional)
existingOnlyNoShow only revisions available for sync/integrate using -e (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It clearly implies a read-only operation through 'List', which is accurate, and mentions the output includes metadata. But it doesn't add further behavioral context such as default behavior, scoping, or return structure, so it is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler; the verb and object are front-loaded and the sentence is precisely scoped. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no annotations, no output schema, and a large sibling set, the description is too thin. It does not specify what 'metadata' includes, how the result is structured, or how this tool differs from p4_fstat (also file metadata). The schema covers parameters, but the overall definition lacks enough context for an agent to select and invoke the tool with confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – every one of the 8 parameters has a description (e.g., 'Maximum number of results (optional)' and 'Filespec to list (optional, defaults to all files)'). The tool description itself adds no parameter meaning beyond that, matching the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('files in depot') and notes the output includes metadata. However, it does not distinguish among sibling tools like p4_fstat (which also provides file metadata), p4_dirs, or p4_print, so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no exclusions, and names no alternatives. It merely states what it does; an agent has no help choosing between p4_files and p4_fstat or p4_print.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_fixesB

Show which changelists fix which jobs

ParametersJSON Schema
NameRequiredDescriptionDefault
jobNoFilter by job ID (optional)
filesNoOptional file/filespec filters for fixes
changelistNoFilter by changelist (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the burden of behavioral disclosure. It only says 'Show,' which implies a read operation, but it does not disclose output scope, default behavior with no filters, server/workspace requirements, or whether this is safe and non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence states the tool's purpose with no filler or repetition. It is front-loaded and easy for an agent to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description plus fully documented optional parameters is adequate for a simple filtering command, but there is no output schema and no note about default behavior when no filters are provided. The main gaps are return shape and unfiltered behavior, which matter because no annotations or output schema exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are documented in the schema, giving 100% schema description coverage. The description adds little parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Show') and a clear resource ('which changelists fix which jobs'), so the core function is understandable. It does not differentiate the tool from closely related siblings such as p4_jobs, p4_job, or p4_changes, so it is clear but not fully distinguishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description never states when to prefer p4_fixes over related tools like p4_jobs, p4_job, or p4_interchanges, and it does not mention exclusions, prerequisites, or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_fstatC

Get file metadata from depot/workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
fieldsNoSpecific tagged fields to return using -T (optional)
filterNofstat filter expression for -F (optional)
filespecNoFilespec to inspect (required)
filespecsNoFilespecs to inspect in one command (required if filespec is omitted)
changelistNoShow files modified by a specific changelist using -e (optional)
changeAfterNoShow files modified by or after a submitted changelist using -c (optional)
sortOptionsNoRaw -S option suffixes such as d, h, r, s, t (optional)
limitOptionsNoRaw -R option suffixes such as c, h, o, u (optional)
reverseOrderNoReverse the output sort order using -r (optional)
outputOptionsNoRaw -O option suffixes such as l, p, r, s (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
attributePatternNoRestrict attributes using -A pattern (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get file metadata' implies a read-only operation, but it does not explain side effects, permission requirements, workspace dependency, or output behavior beyond the main action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words. It is appropriately concise, though slightly more detail about the operation context would be valuable given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex 13-parameter tool with no annotations and no output schema, yet the description is only a short phrase. It does not explain what kind of metadata is returned, how options combine, or how it differs from similar file-listing tools. The schema covers parameters, but the operational context is underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters are already documented in the input schema. The description adds no additional parameter context, which is acceptable given the schema's thoroughness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (Get) and resource (file metadata from depot/workspace), so an agent can understand what the tool does at a glance. It does not explicitly distinguish it from sibling tools like p4_files or p4_file_inspect, but the wording is clear and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as p4_files, p4_print, or p4_file_inspect. The description implies it is for metadata retrieval, but it gives no explicit context, exclusions, or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_grepC

Search for text patterns across depot files

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesSearch pattern (required)
filespecNoFilespec to search in (optional)
filespecsNoFilespecs to search in (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
caseInsensitiveNoCase insensitive search (optional, defaults to false)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full behavioral disclosure burden. It only states that the tool searches text patterns and does not mention whether the operation is read-only, what matching semantics apply, what output shape is returned, or any side effects. For a search tool this is a notable gap because an agent cannot predict what will happen when invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler and puts the main action first. It is efficient and readable, though the brevity comes at the cost of behavioral and usage detail that other dimensions must compensate for. As a conciseness score, it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With five parameters, no annotations, and no output schema, the description needs to add substantial context about behavior, output, and tool selection. The one-sentence description covers none of that, so an agent has only the raw schema and sibling names to work with. This is insufficient for reliable tool invocation in non-obvious cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all five parameters with descriptions, so the schema already carries the parameter-level burden. The tool description adds no parameter-specific meaning beyond implying the pattern is central to the search. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Search'), a resource ('depot files'), and a focus ('text patterns'), so an agent can see the core action at a glance. It does not name or contrast sibling tools like p4_search_inspect, so the differentiation is incomplete. Overall it is clear but not fully distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use p4_grep versus siblings such as p4_search_inspect, p4_print, or p4_diff2. There is no mention of exclusions, fallbacks, or conditions that would route an agent to this tool instead of an alternative. Usage context is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_haveA

List files currently synced in workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
filespecNoFilespec to check (optional)
filespecsNoFilespecs to check in one command (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations at all, so the description carries the full burden of behavioral disclosure. The wording "List" accurately conveys a read-only, non-mutating operation, and "currently synced" explains the workspace-scoped nature. However, it says nothing about output format, default behavior when no filespec is provided, or potential scale/performance caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It communicates the exact purpose in a compact form and is appropriately sized for a simple query tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low parameter count and mostly self-documenting schema, the definition is adequate for basic invocation, but it lacks detail about the return value, which matters because no output schema is provided. It also does not clarify the distinction from related sibling tools, leaving some context for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters already have descriptions in the schema, including the optionality and default workspace path behavior, so the schema makes the parameters clear. The description does not add extra meaning beyond the schema, such as how filespec and filespecs interact or examples of accepted filespec syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: "List files currently synced in workspace." It clearly identifies the tool as a read-only inspection command and distinguishes it from mutating sync-related siblings like p4_sync. However, it does not explicitly compare itself to semantically overlapping sibling tools suich as p4_opened or p4_files, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the tool should be used to see which files are currently synced in the workspace, but it never states when to choose this over alternatives such as p4_opened, p4_files, or p4_path_synccheck. It provides a clear functional context but no exclusions or alternative routing criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_infoB

Get Perforce server and client information

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the behavioral disclosure burden. It only says Get information, giving no detail about output format, whether the command contacts the server, what happens with an invalid workspacePath, or whether any state is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, clear sentence with no filler. It conveys the core purpose immediately and is well-sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has low complexity and its parameter is fully described in the schema, so the description is minimally adequate. However, with no output schema, it does not explain what server and client information will actually be returned, leaving some ambiguity for an agent deciding whether this is the right tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single optional parameter workspacePath is fully documented in the schema with its default behavior. The description adds no extra semantic value, but with 100% schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb and resource: getting Perforce server and client information. It is specific enough to distinguish from many siblings, but it does not explicitly differentiate from p4_client, which also deals with client information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like p4_client, p4_fstat, or p4_where. The description simply states what it does without conditions, exclusions, or trade-offs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_integrateC

Integrate files from source to target

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource filespec/path (required)
targetYesTarget filespec/path (required)
changelistNoChangelist number (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior, yet it reveals nothing about side effects: p4 integrate typically opens files for integrate in a pending changelist, records integration history, and frequently requires a follow-up p4_resolve for conflicts. The description only implies a transfer of files and omits that this is a mutating operation with depot-level consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The six-word sentence is front-loaded with the verb and contains zero waste, so it is genuinely concise. However, it is under-sized for the behavioral complexity of a Perforce integration command, making this concision closer to under-specification than to appropriately sized brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, four parameters, and 50+ closely related siblings, yet the description supplies only the operation name and direction. It omits return value, pending-changelist behavior, resolve requirements, and differentiation from p4_merge/p4_copy — all material to correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters (source, target, changelist, workspacePath). The description's 'from source to target' merely restates the two required fields and adds no format, branch, or filespec semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Integrate files from source to target') and conveys directionality, which is minimally clear. However, it does not explain what 'integrate' means in Perforce terms (propagating revisions between branches/lines) and does nothing to distinguish this from closely related siblings such as p4_merge, p4_copy, or p4_sync among 50+ Perforce tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description is a single sentence with no guidance on when to invoke this tool versus alternatives. Given the dense sibling list (p4_copy, p4_merge, p4_resolve, p4_integrated), an agent gets no help deciding which operation fits the task, and no prerequisites (e.g., existing branch mapping, workspace) are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_integratedB

Show integration history for source/target paths

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoOptional file/filespec list for native p4 integrated filtering
sourcePathNoSource depot filespec/path (required)
targetPathNoOptional target depot filespec/path
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral disclosure burden. 'Show' implies a read-only operation, but it does not mention whether a workspace is required, how filespecs are expanded, or what the output format looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence states the action and the key scoping concept with no filler. It is appropriately sized for a straightforward read-only history tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the parameters are well documented, but there are no annotations and no output schema. The description does not cover return format, prerequisites, filespec syntax, or behavior differences from related Perforce tools, leaving moderate gaps for an agent to resolve elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters and the baseline of 3 applies. The description's reference to 'source/target paths' loosely maps to sourcePath and targetPath, but it adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Show' and the resource 'integration history', scoped to source/target paths, which is clear and specific. It does not explicitly differentiate itself from siblings like p4_integrate or p4_interchanges, but the core action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as p4_integrate, p4_interchanges, p4_merge, or p4_filelog. The description only states what the tool does, leaving usage context entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_interchangesC

List changelists not yet integrated between two paths

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of changelists to return (optional)
timeNoDisplay the time as well as the date using -t (optional)
userNoLimit results to changes submitted by a specific user (optional)
branchNoBranch spec name for p4 interchanges -b mode (optional)
streamNoStream path for p4 interchanges -S mode (optional)
reverseNoReverse branch or stream mapping direction using -r (optional)
sourcePathNoSource depot filespec/path (required)
targetPathNoTarget depot filespec/path (required)
targetPathsNoAdditional target depot filespecs for branch or path modes (optional)
parentStreamNoParent stream override for stream mode using -P (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
forceStreamFlowNoForce stream-mode interchanges to ignore expected flow using -F (optional)
longDescriptionNoInclude long descriptions (optional, equivalent to -l)
useBranchSourceNoUse branch -s mode where sourcePath becomes fromFile (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure burden. 'List' implies a read-only operation, but the description does not state permissions, output behavior, default limits, mode selection semantics, or whether the operation has any side effects. The rich schema hints at complex behavior that the description does not surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is concise and front-loads the core action and object. However, given the tool's complexity, some additional structured detail about modes would be earned without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 14 parameters, four mutually exclusive usage modes via anyOf, no output schema, and no annotations, yet the description is only one short sentence. It does not explain which mode to choose, what the output contains, or how this relates to sibling tools, so an agent will likely struggle to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 14 parameters. The description adds minimal extra meaning beyond 'between two paths', which aligns with sourcePath and targetPath but does not explain the branch, stream, reverse, or useBranchSource modes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a clear resource ('changelists'), and a distinctive condition ('not yet integrated between two paths'). This is a clear, non-tautological purpose, but it does not explicitly differentiate itself from closely related sibling tools such as p4_integrated or p4_changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no mention of branch/stream modes, and no exclusions. The intended usage is only implied by the tool name and one-line description, leaving the agent to infer when this is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_jobC

Get job details

ParametersJSON Schema
NameRequiredDescriptionDefault
jobYesJob ID (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get job details' implies a read operation but does not explain permissions, workspace behavior, server interaction, or potential side effects. It is not contradictory, but it is too sparse to be transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded with the action and target. No words are wasted. However, it is more under-specified than intentionally compact, so it does not earn a top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two parameters, one required, and the schema fully documents them, so it is minimally callable. Still, the absence of annotations, output expectations, and sibling routing leaves meaningful gaps for an agent selecting among many similar Perforce tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% parameter description coverage, including that 'job' is required and 'workspacePath' defaults to the current directory. The description adds no extra parameter meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get job details.' It is not tautological, and it clearly identifies the core operation. However, it does not differentiate this tool from siblings like p4_jobs or other inspection tools, so it lacks explicit sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or a preferred workflow, leaving an agent to infer usage solely from the tool name and parameter schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_jobsC

List jobs (if job tracking is enabled)

ParametersJSON Schema
NameRequiredDescriptionDefault
jobNoSpecific job to show (optional)
maxNoMaximum number of results (optional)
filesNoOptional file/filespec filters for jobs
jobViewNoJobview expression for -e (optional)
reverseOrderNoReverse job sort order using -r (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeIntegratedNoInclude fixes from integrated changelists using -i (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden of behavioral disclosure. It indicates a read-only listing operation but does not explain what happens when job tracking is disabled, what the output looks like, or how parameters like reverseOrder and includeIntegrated affect behavior. The conditional enabling note is the only behavioral context beyond the bare 'List jobs'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise and front-loaded, stating the core operation immediately. The parenthetical condition is brief and relevant. It is not overly verbose, though it sacrifices useful detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with seven optional parameters, no output schema, and no annotations, the description is incomplete. It does not cover expected return format, error behavior when job tracking is disabled, or which parameters are commonly used together. An agent would need to infer most usage context from parameter names and sibling tool names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all seven parameters documented in the schema. The tool description adds no additional parameter meaning or syntax guidance, so the baseline score of 3 is appropriate since the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'List jobs'. The parenthetical '(if job tracking is enabled)' adds a useful condition. However, it does not differentiate this tool from sibling tools like p4_job or p4_fixes, so it lacks the explicit sibling distinction needed for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives minimal usage context by noting that job tracking must be enabled, but it offers no guidance on when to use this tool versus alternatives such as p4_job or p4_fixes. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_labelB

Get label details

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesLabel name (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only implies read-only behavior through the verb 'Get'. It does not disclose authorization requirements, output format, or possible side effects, leaving the behavior largely undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four words with no filler, and the core action is front-loaded. It is appropriately concise for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with two parameters and a complete schema, so an agent can construct a valid call. However, with no annotations or output schema, the description does not clarify return details or when to select this over p4_labels, leaving notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully documented in the schema ('Label name (required)' and 'Path to workspace directory (optional, defaults to current directory)'). The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('label details'), making it clear the tool fetches details for one label. However, it does not distinguish this from the sibling p4_labels, which plausibly lists labels, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of siblings, and no mention of alternatives or exclusions. The agent must infer selection from the tool name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_labelsD

List labels

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
userNoFilter by user (optional)
labelNoSpecific label to show (optional)
filespecNoSingle filespec filter for labels containing matching files (optional)
serverIdNoLimit labels to a specific server using -s (optional)
unloadedNoList unloaded labels using -U (optional)
filespecsNoMultiple filespec filters for labels in one command (optional)
allServersNoList labels across all servers using -a (optional)
nameFilterNoLabel name filter using -e (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
autoreloadOnlyNoList only autoreload labels using -R (optional)
caseInsensitiveNameFilterNoCase-insensitive label name filter using -E (optional)

TDQS

D1.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses no behavioral traits such as read-only nature, output format, side effects, or authentication requirements. This is a significant gap for a tool with 12 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, almost a stub. While it is concise in word count, it is under-specified and fails to earn its place by adding any useful information. It is not front-loaded with key details because there are no details at all.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 optional parameters, no required parameters, and no output schema, a complete description should explain how parameters interact, output format, and typical use cases. The description provides none of this, making it highly incomplete for an agent to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter is already documented in the schema with descriptions. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate. It does not compensate for any gaps, but none exist in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List labels' states a verb and resource, making the basic purpose clear. However, it is vague and does not differentiate from siblings like p4_label or p4_files. It lacks specificity about scope or filtering, matching the 'vague purpose' criterion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. No context, scenarios, or exclusions are provided. The description only restates the action, leaving the agent to infer usage from the schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_mergeC

Merge files from source to target

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource filespec/path (required)
targetYesTarget filespec/path (required)
changelistNoChangelist number (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of explaining behavior. It only says files are merged, but does not disclose whether the operation mutates the target, opens files in a changelist, requires a workspace, or can be reverted. For a mutating operation this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence and is easy to parse, with the key source-to-target relationship front-loaded. However, it is so terse that it omits important operational details, making it under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, this description is the agent's primary source of context. It does not explain the merge semantics, effects on files, use of the optional changelist and workspacePath parameters, or expected outcome. For a tool with four parameters and two required ones, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains all four parameters. The description adds directional context by mapping the operation to source and target, but it does not clarify how changelist or workspacePath influence the merge behavior. This meets the baseline but adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('merge') with a clear resource direction ('from source to target'). It is not a tautology and gives the agent a basic sense of the operation. However, it does not distinguish the tool from siblings like p4_integrate, p4_copy, or p4_move, so the agent must infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance about when to use this tool instead of p4_integrate, p4_copy, p4_move, or p4_resolve. It does not mention prerequisites, workspace requirements, or typical merge scenarios. The agent is left to guess the appropriate context for calling this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_moveC

Move/rename files

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource file path (required)
changelistNoChangelist number (optional)
destinationYesDestination file path (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the entire behavioral disclosure burden. 'Move/rename files' only implies a mutating operation and provides no details about source deletion, pending changelists, workspace requirements, permission needs, or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, consisting of a bare phrase rather than meaningful guidance. Conciseness is beneficial, but here it veers into under-specification for a tool with multiple parameters and no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is not complete enough for an agent to confidently invoke the tool. It lacks usage context, behavioral caveats, and enough detail to differentiate p4_move from several closely related file-operation siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all four parameters with descriptions, so the baseline is met. The tool description adds no extra meaning beyond what the schema already provides for source, destination, changelist, and workspacePath.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation as move/rename on files, which is a specific verb and resource. It distinguishes the action from copy/integrate by using 'move/rename,' though it does not explicitly contrast with sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use p4_move versus alternatives like p4_copy, p4_integrate, or p4_merge. An agent is left to infer the intended use case from the operation name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_openedC

List opened files

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoOptional files/filespecs to check for opened state
changelistNoChangelist number (optional, shows all opened files if not specified)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action. It does not say whether the query is workspace-relative, whether it depends on the current client, or how results are grouped by changelist, which is relevant context for a Perforce command.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only three words and front-loads the core action with no filler. It is concise almost to a fault, but for such a simple read-only listing the brevity is structurally acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description leaves expected output shape and related-command separation unresolved. It is minimally adequate for a call with zero required parameters, but not sufficient for confident use within a large sibling group.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters are fully described in the input schema, so schema coverage is 100%. The description itself adds no parameter-level detail, but under the high-coverage baseline it does not need to repeat what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('List') and a well-defined resource ('opened files'), matching the p4_opened name and distinguishing it in intent from generic listings like p4_files or p4_have. It does not explicitly contrast with any sibling, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool over sibling commands such as p4_status, p4_have, or p4_files. No prerequisites, context, or exclusions are mentioned, so an agent must infer the appropriate situation from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_path_synccheckC

Composite path sync analysis using interchanges/integrated in one call

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcePathYesSource depot filespec/path (required)
targetPathYesTarget depot filespec/path (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
maxInterchangesNoMaximum interchanges per direction (optional, default 50)
includeIntegratedNoInclude p4 integrated history (optional, default true)
checkBothDirectionsNoRun reverse-direction comparison too (optional, default true)

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions composing interchanges/integrated, but it does not state whether the operation is read-only, whether a workspace is required, what side effects may occur, or how errors behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and contains no filler, but the single sentence is jargon-heavy and lacks definition of key terms. It is concise in length without being structurally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, no output schema, and no annotations, this one-line description is far from complete. It does not define the return value, the meaning of 'sync analysis', or how optional flags like maxInterchanges and checkBothDirections change behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all six parameters with descriptions, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides; sourcePath/targetPath direction and the effect of options are only implied by parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a resource ('path sync analysis') and names the underlying commands, but it uses the vague noun phrase 'Composite path sync analysis' rather than a specific verb or outcome. It does not explain what the analysis returns or how it differs from sibling tools like p4_interchanges or p4_integrated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus the sibling tools it wraps. 'In one call' weakly implies a batching use case, but no conditions, exclusions, or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_printA

Print file content from the depot

ParametersJSON Schema
NameRequiredDescriptionDefault
quietNoSuppress file headers (optional, defaults to true)
filespecNoDepot filespec to print (required)
filespecsNoDepot filespecs to print in one command (required if filespec is omitted)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only restates the basic operation and does not mention output behavior (e.g., text written to stdout), the effect of the 'quiet' flag on headers, or that it operates purely on the depot without touching the workspace. This adds little beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Every term ('print', 'file content', 'from the depot') contributes to identifying the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple print operation, the description plus a fully described schema covers the essential invocation details. Minor gaps remain, such as not explicitly stating that content is returned as output or how to choose between single and multiple filespecs, but these are largely inferable from the tool name and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for all four parameters (100% coverage), so the baseline applies. The description adds no additional meaning, such as the relationship between 'filespec' and 'filespecs' or the default behavior of 'quiet', leaving the schema as the sole source of parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('print') and resource ('file content from the depot'), making the tool's function unmistakable. It distinguishes itself from siblings like p4_files (which lists file names) and p4_grep (which searches content) without needing to mention them. This is concise and non-tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating what the tool does, but it provides no explicit guidance on when to prefer p4_print over alternatives such as p4_annotate or p4_blame. There are no exclusions, prerequisites, or conditional routing hints—leaving the agent to infer the right situation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_resolveC

Resolve merge conflicts

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to resolve (optional, resolves all if not specified)
strategyNoResolution strategy (optional)
changelistNoChangelist number (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Resolve merge conflicts' without revealing what happens to files, whether it modifies the workspace, how strategies affect the outcome, or any side effects. This is essentially a tautology of the tool name and provides no behavioral insight beyond the obvious action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one short phrase) but is under-specified for a tool with multiple parameters and an enum. It lacks structure and does not earn its place because it provides minimal value over the tool name. It is not appropriately sized for the complexity of the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that likely modifies files (resolving conflicts) and has four parameters including a strategy enum, the description is severely incomplete. It fails to explain what 'resolve' entails, how strategies work, the role of changelist, or what the expected outcome is. Without an output schema, the description must cover these aspects but does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (files, strategy, changelist, workspacePath) are already described in the schema. The description adds no additional meaning beyond what the schema provides. Per calibration, with high coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Resolve merge conflicts'. It is specific enough to indicate the action, and while it doesn't explicitly distinguish from siblings like p4_merge, the term 'resolve' is distinct from 'merge' in Perforce terminology. The purpose is clear but lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description merely states the action without any context about preconditions (e.g., having a merge conflict), when to choose a strategy, or how it relates to other tools like p4_merge or p4_revert. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_revertC

Revert files or all files in changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to revert (optional, if not provided reverts all files)
changelistNoChangelist number (optional, defaults to default changelist)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the behavioral burden. 'Revert' implies undoing changes, but the description does not disclose that this discards pending local edits, affects only opened files, or that the operation may effectively erase unsubmitted work.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler and the core action is front-loaded. It is appropriately terse, though it sacrifices behavioral nuance for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive mutation tool with no annotations and no output schema, yet the description only states the basic action. It does not explain the effect on the workspace, reversibility, or expected outcome after reverting, leaving the agent without enough safety-relevant context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter schema already documents all three optional parameters. The description adds a small clarification that omitting files reverts all files in a changelist, but it does not add format, constraints, or interactions beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Revert') and the target ('files or all files in changelist'), and p4_revert is unique among its siblings. However, it leaves slightly ambiguous that these are opened/pending files and which changelist is used when no parameter is supplied, so it is not maximally precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use p4_revert rather than related operations such as p4_shelve, p4_delete, or p4_submit. The wording mostly restates the operation and provides no routing cues, conditions, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_reviewB

List changelists pending review

ParametersJSON Schema
NameRequiredDescriptionDefault
counterNoReview counter/token used by p4 review -t (optional)
filespecNoOptional filespec to filter changelists
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'List' clearly signals a read-only operation, which is helpful, but it does not disclose details like whether a workspace/current directory is required, what 'pending review' means exactly, or what the output looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core verb and object. It wastes no words, but it is also somewhat terse and could earn more depth without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three optional parameters, no output schema, and many closely related siblings, a one-line description is insufficient. It does not explain the selection criteria, parameter roles, return format, or when this tool is the right choice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters at 100% coverage, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond the generic concept of listing pending changelists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb and resource: 'List changelists pending review.' It identifies what the tool does without ambiguity, though it does not explicitly distinguish itself from related siblings like p4_reviews or p4_change_inspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as p4_reviews, p4_review_prepare, or p4_change_inspect. The description is purely definitional and provides no context for choosing among the many related Perforce tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_review_bundleC

Composite review workflow: pending changes with optional details/reviewers

ParametersJSON Schema
NameRequiredDescriptionDefault
counterNoOptional review counter/token for p4 review -t
filespecNoOptional filespec filter
maxChangesNoMaximum changelists to include (optional, default 10)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeDescribeNoInclude p4 describe data per changelist (optional, default true)
includeReviewersNoInclude p4 reviews per changelist (optional, default true)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral disclosure burden. It reveals that the tool is a composite of pending changes plus optional details/reviewers, but it does not say whether the operation is read-only, what commands it composes, what it returns, or what side effects or performance expectations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no filler. It is not fully front-loaded because the more informative phrase 'pending changes with optional details/reviewers' appears after the generic 'Composite review workflow' label, but it remains appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six optional parameters, no output schema, and no annotations, the description should explain what the composite result contains, how the options interact, and when this tool is preferred over existing review siblings. The single sentence is too thin to fully support correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are fully documented in the schema itself. The description's mention of 'details/reviewers' loosely maps to includeDescribe and includeReviewers, but it adds no meaningful semantic value beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description points at pending changes and optional details/reviewers, so it is not a pure restatement of the name. However, 'Composite review workflow' lacks a concrete verb such as list, retrieve, or generate, and it does not distinguish this tool from siblings like p4_review, p4_reviews, or p4_review_prepare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided, and no sibling alternatives are named. 'Pending changes with optional details/reviewers' only vaguely implies a use case, leaving an agent to guess when this composite tool is preferable to the many related review tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_review_prepareC

Composite review preparation: discover or accept changelists, then build review-ready inspection bundles

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoUser filter used when discovering changelists
clientNoClient/workspace filter used when discovering changelists
statusNoStatus filter used when discovering changelists
filespecNoSingle filespec filter used when discovering changelists
filespecsNoMultiple filespec filters used when discovering changelists
changelistNoSingle changelist to inspect directly
diffFormatNoDiff format for inspection describe output when includeDiff=true
maxChangesNoMaximum changelists to inspect (optional, default 10)
changelistsNoMultiple changelists to inspect directly
includeDiffNoInclude changelist diff content in each inspection bundle (optional, default false)
maxRevisionsNoMaximum revisions per file history call (optional, default 5)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeFileHistoryNoInclude file history for files touched by each changelist (optional, default false)
maxFilesWithHistoryNoMaximum files per changelist to include history for (optional, default 5)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It mentions the high-level composite steps but does not state whether the tool mutates Perforce state, what side effects occur, what an 'inspection bundle' contains, whether output is returned, or if this involves multiple network calls. This is insufficient for a tool with 14 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, front-loading the 'composite' nature and then the two-phase workflow. It is efficient and easily scannable, though slightly terse for the complexity involved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters), lack of annotations, and absence of an output schema, the description is too high-level. It does not clarify what 'inspection bundles' are, what the tool returns, how the discovery/acceptance distinction maps to parameters, or what side effects might occur. An agent would need to inspect the schema and guess at workflow semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level meaning, but the schema already documents each parameter clearly (e.g., user, client, status, changelist). No additional compensation is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb phrase ('discover or accept changelists, then build review-ready inspection bundles') and identifies the resource as review preparation, so an agent can grasp the high-level purpose. It does not explicitly differentiate from sibling tools like p4_review_bundle or p4_change_inspect, though 'composite' implies orchestration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as p4_review_bundle, p4_search_inspect, or p4_change_inspect. The phrase 'review preparation' implies a broad use case, but there is no explicit context, exclusions, or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_reviewsA

List reviewers for files or a changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoOptional file list/filespecs to resolve reviewers for
changelistNoOptional changelist number to resolve reviewers for
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. 'List' signals a read-only operation, but the description does not mention result format, permission needs, or edge cases such as supplying both files and a changelist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every word contributes to defining the operation and its primary inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple read-only lookup with fully documented optional parameters. However, with no output schema or annotations, and no note about whether at least one of files/changelist is required, some ambiguity remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only echoes the 'files or changelist' options and adds no parameter-level detail or precedence information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('reviewers') and identifies the two input scopes ('files or a changelist'). This clearly distinguishes the tool from review-management siblings like p4_review and p4_review_prepare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over sibling tools, nor are any exclusions or alternative tool references provided. The description implies a reviewer-lookup use case but leaves selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_search_inspectC

Composite search helper: grep + optional fstat + optional content previews

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYesSearch pattern for p4 grep (required)
filespecNoSingle filespec to search
maxFilesNoMaximum matched files to include (optional, default 20)
filespecsNoMultiple filespecs to search in one call
includeFstatNoInclude p4 fstat metadata for matched files (optional, default true)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
caseInsensitiveNoCase insensitive search (optional, default false)
maxMatchesPerFileNoMaximum grep matches to retain per file (optional, default 20)
previewContextLinesNoContext lines before and after each match when includeContentPreview=true (optional, default 2)
includeContentPreviewNoInclude p4 print context snippets for matched files (optional, default false)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only states the composite structure and optional components. It does not mention that the operation is read-only, what the combined output looks like, or how limits like maxFiles affect returned data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise, front-loaded phrase that wastes no words. Every element—grep, fstat, previews—carries meaningful signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description offers only a high-level summary. It does not explain the returned shape, the order of combined operations, or the behavior when optional components are disabled, leaving a critical gap for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has full parameter coverage, so parameter semantics are already documented. The description's mention of optional fstat and content previews merely restates the includeFstat and includeContentPreview fields without adding new cnnections or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a search helper combining p4 grep with optional fstat and content previews, making its core function evident. It emphasizes the composite nature, which helps distinguish it from sibling single-command tools, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to prefer this composite helper over sibling tools like p4_grep, p4_fstat, or p4_print. It lacks use-case context, alternatives, or exclusions, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_shelveC

Shelve files for code review

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to shelve (optional, shelves all in changelist if not specified)
deleteNoDelete shelved files instead of creating (optional, defaults to false)
changelistYesChangelist number (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure, but it only states the action and purpose. It does not disclose that this is a mutating operation, whether the shelf is replaceable, what happens to files already shelved, or any permission/side-effect implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with no filler and front-loads the action. It is concise, though arguably too sparse to fully support a 4-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a mutation tool with no annotations and no output schema, the description should provide more context about side effects and the review workflow. The schema covers the parameters, but the description leaves behavioral and usage context for the shelf operation almost entirely implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 even though the description adds no parameter-level detail. The description does not mention changelist, files, delete, or workspacePath, but the schema already documents each parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Shelve files for code review' identifies the operation (shelving) and target (files), with the purpose of code review. It is concise and non-tautological, though it does not explicitly distinguish itself from sibling tools like p4_unshelve or p4_review_prepare.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to shelve versus using related tools, and no mention of prerequisites or when not to use it. 'For code review' gives a weak contextual hint but does not explain how this differs from p4_review_prepare or that p4_unshelve is the counterpart.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_sizesC

Get file sizes and disk usage statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoLimit output to the first max files using -m (optional)
filespecNoFilespec to get sizes for (optional, defaults to current directory)
blockSizeNoRound sizes up to a block size in bytes using -b (optional)
filespecsNoFilespecs to get sizes for in one command (optional)
shelvedOnlyNoDisplay size info for shelved files only using -S (optional)
allRevisionsNoList all revisions in the range using -a (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
omitLazyCopiesNoOmit lazy copies from totals using -z (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description alone must carry behavioral disclosure. It only implies a read operation through 'Get' and gives no detail on defaults, output shape, potential cost, or side effects, leaving the full burden partially unmet.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, redundant wording, or restatement of the tool name. It front-loads the action clearly, though it is terse enough to omit useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 optional parameters, no output schema, and no annotations, the one-line description is thin but the rich parameter schema partially compensates. It states the high-level result but omits default behavior and return format, leaving clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents 100% of parameters with explicit flag mappings, so the description adds no semantic value beyond the schema. With high schema coverage, the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('file sizes and disk usage statistics'), so an agent can identify this as a read-only size query. It is clear but does not explicitly differentiate itself from related siblings like p4_fstat or p4_files, so it stops short of full distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, exclusions, or alternative routing is provided. The generic purpose statement gives no indication of when p4_sizes should be chosen over sibling tools that also inspect files or workspaces.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_statusB

Get status of opened files and pending changes

ParametersJSON Schema
NameRequiredDescriptionDefault
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the behavioral disclosure burden. 'Get' implies a read-only query, and the scope ('opened files and pending changes') is stated, but no detail is given about return content, workspace scanning behavior, or Perforce connection requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every word contributes to identifying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only status tool, the description plus schema is minimally viable. However, with no output schema and no annotations, the description does not explain what the returned status looks like or how 'pending changes' is defined, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: workspacePath is already documented as optional and defaulting to current directory. The description adds no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get status of opened files and pending changes'. It is clear about the operation, but it does not distinguish p4_status from similar siblings like p4_opened or p4_fstat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance is provided. The agent is left to infer that this is the right tool for status queries; with p4_opened and p4_fstat as siblings, this is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_streamC

Get stream spec details

ParametersJSON Schema
NameRequiredDescriptionDefault
streamYesStream path/name (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states what the tool does (get stream spec details) without mentioning any behavioral traits such as whether it requires an existing workspace, what happens if the stream is not found, or whether it only reads data. The description adds no context beyond the action itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that is front-loaded and contains no filler. It earns its place in terms of conciseness, though it is sparse on detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no annotations, the description should compensate with more context. It does not specify what a stream spec is, what information will be returned, when to use this tool vs p4_streams, or any error/edge-case behavior. For a simple 2-parameter tool, an agent would still likely need additional clarification to know exactly what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the stream parameter is described as 'Stream path/name (required)' and workspacePath as 'Path to workspace directory (optional, defaults to current directory)'. The description adds no additional meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('stream spec details'), making it clear the tool retrieves details about a single stream spec. It does not explicitly differentiate from the sibling p4_streams, which likely lists streams, but the singular 'stream spec' implicitly indicates a specific stream rather than a listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as p4_streams, p4_fstat, or p4_describe. There is no mention of prerequisites, expected inputs, or cases where another tool would be more appropriate. An agent must infer usage from the tool name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_streamsC

List streams

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
filterNoStream filter expression for -F (optional)
streamNoOptional stream path filter
streamsNoOptional stream path filters to query in one command
unloadedNoInclude unloaded task streams using -U (optional)
viewMatchNoOne or more depot paths to pass with --viewmatch (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of behavioral disclosure. 'List streams' only conveys the basic operation; it doesn't say whether the result is a paginated list, what default filtering occurs, whether unloaded streams are included, or what the output structure looks like. It is not misleading, but it is behaviorally thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words with zero filller is economical, but the description is under-specified rather than well-structured. There is no place for the eye to land on scope, defaults, or output, so the conciseness is more a symptom of minimalism than a deliberate clean structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, and seven optional parameters with nontrivial semantics (filter expressions, viewMatch, multiple stream paths), the description does not provide enough context for reliable invocation and result interpretation. It also doesn't clarify relationship to p4_stream singular, making the tool context incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all seven parameters (max, filter, stream, streams, unloaded, viewMatch, workspacePath). The description adds no extra parameter meaning, but baseline 3 is appropriate because the schema carries the parameter-semantics burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List streams' has a specific verb ('List') and resource ('streams'), so an agent can tell this is a listing operation, not a mutation or detail lookup. It doesn't explicitly distinguish from the sibling p4_stream (singular) or p4_stream-like tools, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool vs alternatives like p4_stream, p4_clients, or p4_dirs. The agent must infer that 'List streams' means querying multiple stream definitions, but no conditions, exclusions, or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_submitC

Submit default changelist or create and submit new changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to submit (optional, defaults to all files in default changelist)
descriptionYesSubmit description (required for default changelist)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It discloses the core submit behavior but does not mention that submits are typically permanent or that files in the default changelist may be sent to the depot. No undo behavior, validation, or side-effect context is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, and the main action is front-loaded. It is appropriately short, though it sacrifices important behavioral and usage context for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation-type tool with no annotations and no output schema, the description is too thin. It omits when to use this versus sibling changelist tools, and does not communicate the potentially destructive/irreversible nature of submitting. The schema covers parameters but not the operational context an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds only a small amount of context by mentioning creation of a new changelist, and it does not significantly expand on what the schema already states about files, description, or workspace path. It is adequate but not compensatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Submit') and the resource ('changelist'), and explains the two modes: submitting an existing default changelist or creating and submitting a new one. It does not explicitly differentiate itself from the sibling p4_changelist_submit, which likely targets a specific changelist, so it misses the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as p4_changelist_submit or p4_changelist_create. The description implies one way to submit but does not state exclusions, prerequisites, or which tool should be used for a specific existing changelist ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_syncC

Sync files from Perforce depot

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoLimit sync to the first max files (optional)
forceNoForce sync (optional, defaults to false)
quietNoSuppress normal sync messages using -q (optional)
previewNoPreview sync without executing (optional, defaults to false)
filespecNoFilespec to sync (optional, defaults to current directory)
parallelNoParallel sync specification, for example threads=4,batch=8 (optional)
safeSyncNoEnable digest safety checks using -s (optional)
filespecsNoFilespecs to sync in one command (optional)
reopenMovedNoReopen moved files in new depot locations using -r (optional)
metadataOnlyNoUpdate have-list metadata only using -k (optional)
populateOnlyNoPopulate without updating server state using -p (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
summaryPreviewNoPreview only the sync summary using p4 sync -N (optional)
useListOptimizationNoUse the -L file list optimization for exact depot revisions (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full burden of disclosing behavior. It merely says 'Sync files from Perforce depot' without noting that this can overwrite local workspace files, updates the have-list, or that it is a mutating operation. Sync implies bringing files local, but consequences are not stated, which is a meaningful gap for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It could earn a 5 only if it packed more actionable context, but for pure conciseness it is very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite a rich schema covering 14 parameters, the tool is complex and has no output schema or annotations. The one-line description leaves out behavioral semantics, defaults, side effects, and return value info. An agent has to infer too much about what a 'sync' actually does in Perforce; this is inadequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descritions, so the description doesn't need to explain each flag. The description adds no param-specific context beyond the schema, meriting the baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Sync') and resource ('files from Perforce depot'), which makes the core purpose immediately understandable. However, it doesn't explicitly distinguish P4_SYNC from sibling file-mutating tools like p4_copy or p4_integrate, though the 'sync' concept is reasonably distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool vs alternatives, no prerequisites, and no mention of contexts where other operations (copy, integrat, merge) would be more appropriate. The description only states what it does, leaving an agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_unshelveB

Unshelve files from a shelved changelist

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFiles to unshelve (optional, unshelves all if not specified)
forceNoForce unshelve even if files are opened (optional, defaults to false)
changelistYesChangelist number (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations provided, so the description must carry the full behavioral disclosure burden. It only states the action without revealing side effects, such as whether unshelving overwrites workspace files, whether force is required for open files, or what happens if the changelist is already integrated. This is a meaningful gap for a mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with zero filler words. It front-loads the core verb and object, making the purpose instantly scannable. No space is wasted on redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and an output schema, the description is too sparse to be fully actionable. It does not explain return values, failure modes, force behavior, or the effect of the optional files parameter. The schema covers parameter syntax, but the behavior around a Perforce unshelve operation is left undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the schema already documents changelist, files, force, and workspacePath. The description adds no parameter-level meaning, but the baseline of 3 applies because the schema carries the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Unshelve') and resource ('files from a shelved changelist'), making the operation immediately identifiable. It clearly distinguishes itself from the sibling p4_shelve and other p4 operations without requiring the agent to inspect the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case: restoring files from a shelf. However, it does not explicitly state when to choose this over alternatives like p4_shelve, nor does it mention prerequisites such as needing an existing client workspace or a connection to Perforce. The usage context is understandable but left mostly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_userB

Get user information

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoUser to get info for (optional, defaults to current user)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description's 'Get' verb conveys a non-mutating read operation, which is the main behavioral trait needed for a simple retrieval tool. It does not disclose additional context such as authentication requirements or error behavior, but for a low-risk getter this is minimally acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with no wasted words. It is appropriately sized for a simple tool, though the phrase could have been made more specific.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the two optional, well-described parameters and simple read-only nature, this is minimally viable. However, there is no output schema and the description does not clarify what information is returned or how p4_user differs from p4_users, leaving notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented in the input schema. The description adds no extra meaning about the user or workspacePath parameters, matching the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Get') and resource ('user information'), making the basic purpose understandable. However, it does not distinguish this singular-user tool from the sibling p4_users, so it falls short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives such as p4_users, p4_client, or p4_info. The description only restates the purpose without offering selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_usersC

List Perforce users

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNoMaximum number of results (optional)
userNoSpecific user to show (optional)
usersNoSpecific users to show in one command (optional)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
includeServiceUsersNoInclude service and operator users using -a (optional)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It only says 'List', implying a read-only operation, but does not disclose default exclusions, such as service users being omitted unless includeServiceUsers is set, nor any output format or workspace-related behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded and easy to parse, though it is somewhat terse given the tool's five parameters and missing behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and many sibling tools, the description is too minimal to fully inform an agent. It lacks return-value expectations, default behavior, and selection guidance, making it only partially complete for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the schema already documents all five optional parameters. The description adds no additional parameter meaning beyond the schema, which meets the baseline but provides no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List Perforce users'. It is clear and unambiguous, but it does not explicitly distinguish itself from sibling p4_user or other listing tools like p4_clients.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as p4_user or p4_clients. No conditions, exclusions, or preferred scenarios are described, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_whereA

Show depot/local/workspace mappings for files

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesFiles to show mappings for (required)
workspacePathNoPath to workspace directory (optional, defaults to current directory)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states 'Show', which implies read-only behavior, but it does not disclose side effects, authentication/client requirements, error behavior, or output format. For a tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that front-loads the tool's purpose. There is no filler or redundant content; every word contributes to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mapping query with fully documented schema parameters, the description plus schema adequately covers inputs. However, with no output schema and no annotations, the description does not specify what the returned mappings look like or whether a workspace context is required, leaving notable gaps for an agent to invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters with 100% coverage: 'files' is described as required and 'workspacePath' as optional defaulting to current directory. The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Show') and identifies the exact resource ('depot/local/workspace mappings for files'). This clearly distinguishes it from sibling p4 tools focused on searching, editing, or submitting, and none of the siblings appear to cover path mappings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need path mappings for files, but it does not state when to prefer this tool over alternatives such as p4_fstat or p4_path_synccheck. It also lacks prerequisites like being inside a workspace or requiring an active client, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

p4_workspace_snapshotB

Composite workspace snapshot: info + status + optional config/opened/recent changes

ParametersJSON Schema
NameRequiredDescriptionDefault
includeConfigNoInclude p4.config.detect output (optional, default true)
includeOpenedNoInclude full p4.opened output (optional, default false)
workspacePathNoPath to workspace directory (optional, defaults to current directory)
recentChangesMaxNoMaximum recent changelists to include (optional, default 10)
includeRecentChangesNoInclude recent changelists via p4.changes (optional, default false)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the burden of behavioral disclosure. It does reveal that the tool always includes info/status and optionally includes config/opened/recent changes, and 'snapshot' implies a read-only operation. However, it does not describe return aggregation, failure behavior, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single information-dense sentence with no filler. The key qualifier 'composite workspace snapshot' is front-loaded, and every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All parameters and defaults are fully covered by the schema, and the description supplies the overall behavior and always-on components. It is adequate for a read-only snapshot tool, though the lack of an output schema means the exact return shape is only implied by the component names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the schema already documents all five parameters with defaults. The description adds a small bit of context by framing config/opened/recent changes as optional and implying info/status are always present, but it does not materially extend the schema's parameter explanations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a composite workspace snapshot and enumerates its components: info, status, and optional config/opened/recent changes. This differentiates it from individual p4_* commands, though it lacks an explicit verb like 'get' or 'retrieve'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to prefer this aggregate snapshot over calling p4_info, p4_status, p4_opened, p4_changes, or p4_config_detect individually. The word 'composite' implies a combined use-case, but alternatives and exclusions are not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 59 tool updatesv3.3.0
    • First observedp4_add
    • First observedp4_annotate
    • First observedp4_audit
    • First observedp4_blame
    • First observedp4_change_inspect
    • First observedp4_changelist_create
    • First observedp4_changelist_submit
    • First observedp4_changelist_update
    • First observedp4_changes
    • First observedp4_client
    • First observedp4_clients
    • First observedp4_compliance
    • First observedp4_config_detect
    • First observedp4_copy
    • First observedp4_delete
    • First observedp4_describe
    • First observedp4_diff
    • First observedp4_diff2
    • First observedp4_dirs
    • First observedp4_edit
    • First observedp4_file_inspect
    • First observedp4_filelog
    • First observedp4_files
    • First observedp4_fixes
    • First observedp4_fstat
    • First observedp4_grep
    • First observedp4_have
    • First observedp4_info
    • First observedp4_integrate
    • First observedp4_integrated
    • First observedp4_interchanges
    • First observedp4_job
    • First observedp4_jobs
    • First observedp4_label
    • First observedp4_labels
    • First observedp4_merge
    • First observedp4_move
    • First observedp4_opened
    • First observedp4_path_synccheck
    • First observedp4_print
    • First observedp4_resolve
    • First observedp4_revert
    • First observedp4_review
    • First observedp4_review_bundle
    • First observedp4_review_prepare
    • First observedp4_reviews
    • First observedp4_search_inspect
    • First observedp4_shelve
    • First observedp4_sizes
    • First observedp4_status
    • First observedp4_stream
    • First observedp4_streams
    • First observedp4_submit
    • First observedp4_sync
    • First observedp4_unshelve
    • First observedp4_user
    • First observedp4_users
    • First observedp4_where
    • First observedp4_workspace_snapshot

TDQS

C2.7/5.0
Disambiguation2/5

Several tools have ambiguous boundaries: p4_annotate is an alias of p4_blame, p4_submit and p4_changelist_submit overlap, and p4_review/p4_reviews/p4_review_prepare/p4_review_bundle are easy to mix up. The singular/plural pairs and composite inspect helpers also require careful reading to select correctly.

Naming Consistency3/5

The p4_ prefix creates an apparent uniform convention, but the suffixes mix raw verbs, plural nouns, reversed noun_verb forms like changelist_create, and composite names like workspace_snapshot. There is no single predictable pattern beyond the prefix.

Tool Count2/5

At 59 tools, the server exposes a very large surface for an MCP agent. While Perforce is complex, many calls could be consolidated or omitted without hurting typical workflows, making the count clearly exceed a manageable scope.

Completeness4/5

Core Perforce workflows are thoroughly covered: file lifecycle, changelists, sync, shelving, resolving, integrating, labeling, streaming, job tracking, and review tooling. Minor gaps like branch-spec management and some administrative commands keep this from being perfect.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iPraBhu/mcp-perforce-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server