Skip to main content
Glama

phabricator-mcp

An MCP (Model Context Protocol) server that wraps Phabricator's Conduit API, enabling any MCP client to interact with Phabricator tasks, code reviews, repositories, and more.

Star History

Star History Chart

Related MCP server: Phabricator MCP Server

Installation

Claude Code (CLI)

claude mcp add --scope user phabricator -- npx @freelancercom/phabricator-mcp@latest

Or with environment variables (if not using ~/.arcrc):

claude mcp add --scope user phabricator \
  -e PHABRICATOR_URL=https://phabricator.example.com \
  -e PHABRICATOR_API_TOKEN=api-xxxxx \
  -- npx @freelancercom/phabricator-mcp@latest

The --scope user flag installs the server globally, making it available in all projects.

Codex (OpenAI CLI)

Add to your Codex config (~/.codex/config.json):

{
  "mcpServers": {
    "phabricator": {
      "command": "npx",
      "args": ["@freelancercom/phabricator-mcp@latest"],
      "env": {
        "PHABRICATOR_URL": "https://phabricator.example.com",
        "PHABRICATOR_API_TOKEN": "api-xxxxxxxxxxxxx"
      }
    }
  }
}

opencode

Add to your opencode config (~/.config/opencode/config.json):

{
  "mcp": {
    "servers": {
      "phabricator": {
        "command": "npx",
        "args": ["@freelancercom/phabricator-mcp@latest"],
        "env": {
          "PHABRICATOR_URL": "https://phabricator.example.com",
          "PHABRICATOR_API_TOKEN": "api-xxxxxxxxxxxxx"
        }
      }
    }
  }
}

VS Code with Claude Extension

Add to your VS Code settings.json:

{
  "claude.mcpServers": {
    "phabricator": {
      "command": "npx",
      "args": ["@freelancercom/phabricator-mcp@latest"],
      "env": {
        "PHABRICATOR_URL": "https://phabricator.example.com",
        "PHABRICATOR_API_TOKEN": "api-xxxxxxxxxxxxx"
      }
    }
  }
}

Cursor

Add to your Cursor MCP config (~/.cursor/mcp.json):

{
  "mcpServers": {
    "phabricator": {
      "command": "npx",
      "args": ["@freelancercom/phabricator-mcp@latest"],
      "env": {
        "PHABRICATOR_URL": "https://phabricator.example.com",
        "PHABRICATOR_API_TOKEN": "api-xxxxxxxxxxxxx"
      }
    }
  }
}

GitHub Copilot (VS Code)

Add to your VS Code settings.json:

{
  "github.copilot.chat.mcp.servers": {
    "phabricator": {
      "command": "npx",
      "args": ["@freelancercom/phabricator-mcp@latest"],
      "env": {
        "PHABRICATOR_URL": "https://phabricator.example.com",
        "PHABRICATOR_API_TOKEN": "api-xxxxxxxxxxxxx"
      }
    }
  }
}

Upgrading

The default install uses @freelancercom/phabricator-mcp@latest, which tells npx to check for updates on each run. No action needed.

If you pinned a specific version (e.g. @freelancercom/phabricator-mcp@1.0.0) or omitted the version suffix, npx caches the package and won't pick up new versions. To upgrade:

npx clear-npx-cache

Then restart your MCP client.

Migrating from github:freelancer/phabricator-mcp

If you previously installed using the GitHub URL, update your config to use the npm package instead:

# Remove old server
claude mcp remove phabricator -s user

# Add new one
claude mcp add --scope user phabricator -- npx @freelancercom/phabricator-mcp@latest

For JSON configs, replace ["github:freelancer/phabricator-mcp"] with ["@freelancercom/phabricator-mcp@latest"] in your args.

Configuration

The server automatically reads configuration from ~/.arcrc (created by Arcanist). No additional configuration is needed if you've already set up arc.

Alternatively, set environment variables (which take precedence over .arcrc):

  • PHABRICATOR_URL - Phabricator instance URL

  • PHABRICATOR_API_TOKEN - Conduit API token

You can get an API token from your Phabricator instance at: Settings > Conduit API Tokens

By default, Claude Code will prompt you for permission each time a Phabricator tool is called. It's recommended to allowlist the read-only tools so they run without prompts, while keeping write operations (create, edit, comment) behind a confirmation step.

Add to your ~/.claude/settings.json:

{
  "permissions": {
    "allow": [
      "mcp__phabricator__phabricator_task_search",
      "mcp__phabricator__phabricator_task_status_search",
      "mcp__phabricator__phabricator_task_priority_search",
      "mcp__phabricator__phabricator_revision_search",
      "mcp__phabricator__phabricator_diff_search",
      "mcp__phabricator__phabricator_diff_raw",
      "mcp__phabricator__phabricator_revision_paths",
      "mcp__phabricator__phabricator_repository_search",
      "mcp__phabricator__phabricator_commit_search",
      "mcp__phabricator__phabricator_repository_browse",
      "mcp__phabricator__phabricator_repository_file_content",
      "mcp__phabricator__phabricator_branch_search",
      "mcp__phabricator__phabricator_tag_search",
      "mcp__phabricator__phabricator_repository_file_history",
      "mcp__phabricator__phabricator_repository_code_search",
      "mcp__phabricator__phabricator_user_whoami",
      "mcp__phabricator__phabricator_user_search",
      "mcp__phabricator__phabricator_project_search",
      "mcp__phabricator__phabricator_column_search",
      "mcp__phabricator__phabricator_paste_search",
      "mcp__phabricator__phabricator_document_search",
      "mcp__phabricator__phabricator_blog_search",
      "mcp__phabricator__phabricator_blog_post_search",
      "mcp__phabricator__phabricator_file_search",
      "mcp__phabricator__phabricator_file_info",
      "mcp__phabricator__phabricator_buildable_search",
      "mcp__phabricator__phabricator_build_search",
      "mcp__phabricator__phabricator_build_target_search",
      "mcp__phabricator__phabricator_build_log_search",
      "mcp__phabricator__phabricator_build_plan_search",
      "mcp__phabricator__phabricator_owners_search",
      "mcp__phabricator__phabricator_feed_query",
      "mcp__phabricator__phabricator_conpherence_search",
      "mcp__phabricator__phabricator_conpherence_read",
      "mcp__phabricator__phabricator_audit_query",
      "mcp__phabricator__phabricator_phid_lookup",
      "mcp__phabricator__phabricator_phid_query",
      "mcp__phabricator__phabricator_transaction_search",
      "mcp__phabricator__phabricator_version"
    ]
  }
}

To allowlist all tools including write operations, use "mcp__phabricator__*" instead.

Available Tools

Task Management (Maniphest)

Tool

Description

phabricator_task_search

Search tasks with filters (status, assignee, project, etc.)

phabricator_task_create

Create a new task

phabricator_task_edit

Edit an existing task

phabricator_task_add_comment

Add a comment to a task

phabricator_task_status_search

List all available task statuses on the instance

phabricator_task_priority_search

List all available task priorities on the instance

Code Reviews (Differential)

Tool

Description

phabricator_revision_search

Search code review revisions

phabricator_revision_edit

Edit a revision (accept, reject, abandon, add reviewers, comment, etc.)

phabricator_revision_inline_comment

Create an inline comment on a specific line of a diff

phabricator_diff_raw

Get the raw diff/patch content for a diff by ID

phabricator_diff_search

Search diffs (code change snapshots within a revision)

phabricator_revision_paths

Get the list of changed file paths for a revision

Repositories (Diffusion)

Tool

Description

phabricator_repository_search

Search repositories

phabricator_commit_search

Search commits

phabricator_repository_browse

Browse a repository directory tree

phabricator_repository_file_content

Read file contents from a repository

phabricator_branch_search

List branches in a repository

phabricator_tag_search

List tags in a repository

phabricator_repository_file_history

Get commit history for a file path

phabricator_repository_code_search

Search (grep) file contents within a repository

phabricator_repository_edit

Create or edit a Diffusion repository

Users

Tool

Description

phabricator_user_whoami

Get current authenticated user

phabricator_user_search

Search users

Projects

Tool

Description

phabricator_project_search

Search projects

phabricator_project_edit

Create or edit a project

phabricator_column_search

Search workboard columns

Pastes

Tool

Description

phabricator_paste_search

Search pastes

phabricator_paste_create

Create a paste

phabricator_paste_edit

Edit an existing paste

Wiki (Phriction)

Tool

Description

phabricator_document_search

Search wiki documents

phabricator_document_create

Create a new wiki document

phabricator_document_edit

Edit a wiki document title or content

phabricator_document_add_comment

Add a comment to a wiki document

Blogs (Phame)

Tool

Description

phabricator_blog_search

Search Phame blogs

phabricator_blog_edit

Create or edit a Phame blog

phabricator_blog_post_search

Search blog posts

phabricator_blog_post_create

Create a new blog post

phabricator_blog_post_edit

Edit an existing blog post

phabricator_blog_post_add_comment

Add a comment to a blog post

Transactions

Tool

Description

phabricator_transaction_search

Search transactions (comments, status changes, etc.) on any object

Files

Tool

Description

phabricator_file_upload

Upload a file and get an ID for embedding in descriptions/comments via {F<id>}

phabricator_file_search

Search for files

phabricator_file_info

Get file metadata (name, size, MIME type, URI)

Builds (Harbormaster)

Tool

Description

phabricator_buildable_search

Search buildables (revisions/commits with builds)

phabricator_build_search

Search builds (CI/build results)

phabricator_build_target_search

Search build targets (individual build steps)

phabricator_build_log_search

Search build logs (output from build steps)

phabricator_build_command

Report build status to Harbormaster (pass, fail, work)

phabricator_build_plan_search

Search build plans (CI pipeline configurations)

Code Ownership (Owners)

Tool

Description

phabricator_owners_search

Search code ownership packages

Activity Feed

Tool

Description

phabricator_feed_query

Query the activity feed (recent task updates, revision changes, commits, etc.)

Chat (Conpherence)

Tool

Description

phabricator_conpherence_search

Search chat rooms/threads

phabricator_conpherence_create

Create a new chat room/thread

phabricator_conpherence_edit

Edit a chat room (rename, manage participants)

phabricator_conpherence_read

Read messages from a chat thread

phabricator_conpherence_send

Send a message to a chat thread

Audits

Tool

Description

phabricator_audit_query

Search commit audit requests

PHID Utilities

Tool

Description

phabricator_phid_lookup

Look up PHIDs by name (e.g., "T123", "@username")

phabricator_phid_query

Get details about PHIDs

Server

Tool

Description

phabricator_version

Get the version of the running phabricator-mcp server

Usage

Once connected, just ask your AI assistant to perform Phabricator tasks in natural language:

Tasks

  • "Show my assigned tasks"

  • "Create a task titled 'Fix login bug' in project Backend"

  • "Add a comment to T12345 saying the fix is ready for review"

  • "Close task T12345"

  • "What custom fields are available for incident tasks?"

  • "Set the start date and root cause category on T12345"

  • "Make T456 a subtask of T123"

  • "Upload this screenshot and add it to the description of T789"

Code Reviews

  • "Show my open diffs"

  • "What's the status of D6789?"

  • "Review the code changes in D6789"

  • "Add @alice as a reviewer to D6789"

  • "Accept D6789"

  • "Leave an inline comment on line 42 of src/index.ts in D6789"

Repositories & Builds

  • "Show me the contents of src/config.ts in repo Backend"

  • "Browse the /src directory in the main repo"

  • "Is the build passing on D6789?"

  • "Show me the build logs for D6789"

  • "Who owns the code in /src/auth/?"

Search & Lookup

  • "Find user john.doe"

  • "Search for projects with 'backend' in the name"

  • "Search commits by author alice"

  • "Look up T123 and D456"

  • "Show me the comments on D6789"

Wiki & Pastes

  • "Find wiki pages about deployment"

  • "Create a paste with this error log"

Blogs

  • "Search for blog posts about release notes"

  • "Create a new draft blog post titled 'Q1 Update' on the engineering blog"

  • "Publish blog post J42"

  • "Add a comment to blog post J15"

The appropriate tools are called automatically based on your request.

Development

git clone https://github.com/freelancer/phabricator-mcp.git
cd phabricator-mcp
npm install
npm run build
npm run dev  # watch mode

Architecture

  • src/index.ts - Entry point, MCP server with stdio transport

  • src/config.ts - Config loader (reads ~/.arcrc or env vars)

  • src/client/conduit.ts - Phabricator Conduit API client

  • src/tools/*.ts - Tool implementations per Phabricator application

License

MIT

Available Tools

60 tools
phabricator_audit_queryA

Search commit audit requests using the legacy audit.query endpoint. For most use cases, prefer phabricator_commit_search with the auditors attachment. This frozen endpoint provides audit-specific status filtering not available in the modern API.

ParametersJSON Schema
NameRequiredDescriptionDefault
auditorPHIDsNoAuditor user/project PHIDs
commitPHIDsNoCommit PHIDs to check audit status for
statusNoAudit status filter: "audit-status-any" (default), "audit-status-open", "audit-status-concern", "audit-status-accepted", "audit-status-partial"
limitNoMaximum results (max 100)
offsetNoResult offset for pagination

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the endpoint is frozen/legacy and mentions the availability of audit-specific status filtering. However, it doesn't mention pagination behavior or potential limitations of the legacy endpoint.

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?

Two sentences, front-loaded with the core purpose, followed by usage guidance and a key differentiator. No wasted words.

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?

With no output schema, the description does not explain the return format. However, the tool's purpose is clear, and all parameters are documented in the schema. The description covers the essential behavioral differences from the modern API.

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 baseline is 3. The description does not add additional parameter details beyond what the schema provides, but it reinforces that status filtering is a key feature.

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 clearly states it searches commit audit requests using the legacy audit.query endpoint, and distinguishes it from phabricator_commit_search by highlighting that this endpoint provides audit-specific status filtering not available in the modern API.

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

Usage Guidelines5/5

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

Explicitly advises using phabricator_commit_search for most use cases, and explains when to use this endpoint (when audit-specific status filtering is needed).

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

phabricator_blog_editA

Create or edit a Phame blog. Omit objectIdentifier to create a new blog (name is required for creation).

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierNoBlog PHID or ID. Omit to create a new blog.
nameNoBlog name
subtitleNoBlog subtitle
descriptionNoBlog description (Remarkup)
domainFullURINoCustom full domain URI for the blog
parentSiteNoParent site name
parentDomainNoParent domain URL
statusNoBlog status
addSubscriberPHIDsNoSubscriber PHIDs to add
removeSubscriberPHIDsNoSubscriber PHIDs to remove

TDQS

A3.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 must cover behavior. It only explains the create/edit mode switch and the name requirement. It does not disclose side effects, permissions, or what happens during an edit (e.g., whether existing fields are overwritten). This is minimal transparency for a 10-parameter tool.

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 only two sentences, front-loading the main purpose and key usage condition. Every sentence contributes essential information without redundancy.

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 has 10 parameters and no output schema, the description is too brief. It lacks details on default behavior, validation, or interactions between parameters. The context is incomplete for an agent to use the tool reliably without additional inference.

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 baseline is 3. The description adds value by clarifying that name is required for creation, which is not explicitly stated in the schema. However, it does not elaborate on other parameters beyond their schema descriptions.

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 clearly states 'Create or edit a Phame blog,' specifying the verb and resource. It distinguishes from sibling tools like phabricator_blog_post_edit by focusing on blogs, not posts.

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?

The description provides clear guidance on when to create vs edit by omitting or providing objectIdentifier. It explicitly states that name is required for creation. However, it does not compare with other tools or mention when not to use this tool.

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

phabricator_blog_post_add_commentB

Add a comment to a Phame blog post

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesPost PHID or ID
commentYesComment text (supports Remarkup)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the action, omitting details like whether the comment is appended or replaces existing comments, if authentication is required, or if there are side effects. The lack of transparency could lead to misuse.

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 that efficiently conveys the tool's purpose with no unnecessary words. It earns its place.

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 simplicity of the tool (2 required params, no output schema), the description is barely adequate. It does not mention return values, error conditions, or any post-action context, leaving gaps that an agent might need 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?

Schema coverage is 100% with descriptions for both parameters ('Post PHID or ID' and 'Comment text (supports Remarkup)'). The description adds no further meaning beyond the schema, so it meets the baseline of 3 without adding value.

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 'Add a comment to a Phame blog post' clearly states the action (add comment), the resource (Phame blog post), and is specific enough to distinguish from sibling tools like phabricator_task_add_comment or phabricator_document_add_comment. The name reinforces the purpose.

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 vs alternatives like phabricator_revision_inline_comment or phabricator_task_add_comment. There is no mention of prerequisites, when not to use it, or why one would choose this over other comment tools.

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

phabricator_blog_post_createC

Create a new Phame blog post

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPost title
bodyYesPost body content (supports Remarkup)
blogPHIDYesPHID of the blog to post to
subtitleNoPost subtitle
visibilityNoVisibility: 0 (draft, default), 1 (published), 2 (archived)
addSubscriberPHIDsNoSubscriber PHIDs to add

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. Only states 'Create', implying a write operation. No mention of permissions, idempotency, or side effects. Does not describe what the tool returns or how errors are handled.

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?

Extremely concise: one sentence, six words. No fluff. Front-loaded with action and resource.

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 create tool with 6 parameters and no output schema, the description is too minimal. Does not explain the concept of a Phame blog post, default behavior, or return value. Agents need more context to invoke 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 coverage is 100% with good descriptions for each parameter. The tool description adds no additional meaning beyond the schema, 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?

Description clearly states the action (Create) and the resource (a new Phame blog post). However, it does not differentiate from sibling tools like phabricator_blog_post_edit, but the verb 'create' is distinctive enough.

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 on when to use this tool vs alternatives. Does not mention prerequisites like having a blogPHID, or that visibility defaults to draft. No context for exclusions.

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

phabricator_blog_post_editB

Edit an existing Phame blog post

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesPost PHID or ID
titleNoNew post title
subtitleNoNew post subtitle
bodyNoNew post body content (supports Remarkup)
visibilityNoVisibility: 0 (draft), 1 (published), 2 (archived)
blogPHIDNoMove post to a different blog (PHID)
addSubscriberPHIDsNoSubscriber PHIDs to add
removeSubscriberPHIDsNoSubscriber PHIDs to remove
commentNoAdd a comment alongside the edit (supports Remarkup)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like permissions required, idempotency, or side effects. It only states the action, leaving the agent unaware of important behavioral aspects.

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 (one sentence) and front-loaded with the verb and resource. While it is appropriately sized, it could include more useful detail without being verbose.

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 9 parameters and no output schema, the description lacks information about return values, error conditions, or the effect of the edit. This is insufficient for an agent to fully understand the tool's 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?

Schema coverage is 100%, and the input schema already provides clear descriptions for all parameters. The tool description does not add additional meaning beyond what is in the schema, meeting the baseline of 3.

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 'Edit an existing Phame blog post' clearly identifies the action (edit) and resource (existing blog post), distinguishing it from sibling tools like create or comment.

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 such as phabricator_blog_post_create or phabricator_blog_post_add_comment. The description does not mention any prerequisites or context.

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

phabricator_blog_post_searchC

Search Phame blog posts

ParametersJSON Schema
NameRequiredDescriptionDefault
queryKeyNoBuilt-in query: "all", "live", "draft", "archived"
constraintsNoSearch constraints
attachmentsNoData attachments
orderNoResult order
limitNoMaximum results (max 100)
afterNoCursor for next-page pagination
beforeNoCursor for previous-page pagination

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 does not disclose any behavioral traits such as pagination behavior, authentication needs, or what happens with empty results. The schema includes cursors but the description does not explain their use.

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 concise (one sentence), but it under-specifies the tool's capabilities. It is not 'appropriately sized' given the complexity of the input schema and the presence of many sibling tools.

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 rich schema and parameter count of 7, the description fails to explain the tool's purpose in context (e.g., return type, pagination, how constraints work together). The lack of output schema increases the need for description completeness, which is not met.

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 all parameters have descriptions. The tool description adds no extra meaning beyond the schema. Baseline 3 is appropriate as the schema does the work.

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 'Search Phame blog posts' clearly states the verb (Search) and resource (Phame blog posts). It is not a tautology, but it lacks differentiation from sibling tools like 'phabricator_blog_search' or 'phabricator_task_search'.

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. With many sibling search tools (e.g., phabricator_commit_search, phabricator_document_search), the agent has no context to choose this tool.

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

phabricator_build_commandA

Send a command to a Harbormaster build target. Report build status (pass/fail/work) with optional unit test and lint results.

ParametersJSON Schema
NameRequiredDescriptionDefault
buildTargetPHIDYesPHID of the build target (PHID-HMBT-...) to send the message to
typeYesMessage type: "pass" (target passed), "fail" (target failed), "work" (target still working, resets timeout)
unitNoUnit test results to report
lintNoLint results to report

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. The description says 'send a command' but does not disclose if it mutates state, requires special permissions, or has any side effects. It lacks detail on behavior beyond the action.

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 sentence, no fluff. Clearly states the core purpose and optional payload. Efficient and well-structured.

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?

Missing output schema, response details, error conditions, and prerequisites. The description is adequate for a simple send command but not comprehensive given no annotations.

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%; all parameters have descriptions. The description adds only a summary of status types and optional results, which is already clear from the schema. No new meaning beyond what the schema provides.

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 clearly states the tool sends a command to a Harbormaster build target and reports status with optional unit/lint results. It uses a specific verb and resource, and distinguishes from sibling tools like phabricator_build_search.

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 for reporting build status, but does not explicitly state when to use this tool vs alternatives like phabricator_buildable_search. No when-not or exclusion criteria are given.

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

phabricator_conpherence_createB

Create a new Conpherence chat room/thread

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThread title
topicNoRoom topic/description
messageNoInitial message (supports Remarkup)
participantPHIDsNoParticipant user PHIDs to add

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as side effects (e.g., notifications), idempotency, or authorization requirements for creation.

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 sentence, which is concise but too minimal. It lacks front-loading of key details and could be slightly expanded without losing 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?

For a tool with 4 parameters and no output schema or annotations, the description is insufficient. It does not explain what a Conpherence room is, whether participantPHIDs are needed for functionality, or the implications of creating without participants.

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 description adds no extra meaning beyond the parameter descriptions already present in the schema. Baseline 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?

The description clearly states the action ('Create') and resource ('new Conpherence chat room/thread'), which is distinct from sibling tools like edit, read, search, and send.

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 on when to use this tool versus alternatives such as phabricator_conpherence_edit for updating an existing room. No prerequisites or context provided.

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

phabricator_conpherence_editC

Edit a Conpherence chat room/thread. Rename it or manage participants.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesRoom monogram (e.g., "Z123"), numeric ID, or PHID
titleNoNew room title
topicNoRoom topic/description
addParticipantPHIDsNoParticipant PHIDs to add
removeParticipantPHIDsNoParticipant PHIDs to remove
commentNoSend a message alongside the edit (supports Remarkup)

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 full burden. It indicates a mutating operation but provides no details on side effects (e.g., irreversible participant removal), permissions, or logging. Minimal transparency.

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. However, it does not cover all possible actions (topic, comment), making it slightly incomplete.

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 6-parameter mutation tool with no output schema, the description is sparse. It fails to explain usage patterns, optionality, or interaction between fields. Insufficient for complete understanding.

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 descriptions for all parameters. The description adds no new meaning beyond 'rename or manage participants,' missing topic and comment fields. Baseline score of 3 due to 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 it edits a Conpherence chat room/thread, specifically renaming or managing participants. This distinguishes it from siblings like create, read, search, and send. However, it omits the ability to change the topic or add a comment, which are in 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 Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as phabricator_conpherence_create or phabricator_conpherence_send. An agent would need to infer usage from context.

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

phabricator_conpherence_readA

Read messages from a Conpherence chat room/thread (returned in reverse chronological order). Uses conpherence.querytransaction (the only Conduit method that returns message content).

ParametersJSON Schema
NameRequiredDescriptionDefault
roomIDNoNumeric room ID (provide this or roomPHID)
roomPHIDNoRoom PHID (provide this or roomID)
limitNoMaximum messages to return
offsetNoResult offset for pagination

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries the burden. It states the tool reads messages (non-destructive) and returns them in reverse chronological order, and names the underlying method. However, it doesn't cover permissions, rate limits, or error behavior.

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?

Two concise sentences, front-loaded with the primary purpose, followed by relevant technical context. No unnecessary words.

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?

No output schema and description doesn't describe return value format, which is important for a read operation. It mentions pagination via offset/limit but doesn't explain the structure of 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 coverage is 100%, so parameters are already described in detail. The description adds minimal extra meaning (e.g., mentioning that roomID or roomPHID should be provided, though both are optional in schema). Baseline score 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?

Clearly states it reads messages from a Conpherence chat room/thread, with the specific detail of reverse chronological order. Distinguishes from sibling tools like phabricator_conpherence_send and phabricator_conpherence_create.

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?

No explicit when-to-use or when-not-to-use guidance. The mention that it's the only Conduit method returning message content implies it's the correct tool for reading messages, but no alternatives are suggested for other operations.

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

phabricator_conpherence_sendB

Send a message to a Conpherence chat room/thread

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesRoom monogram (e.g., "Z123"), numeric ID, or PHID
messageYesMessage text (supports Remarkup)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description must cover behavioral traits. It only states 'Send a message' without mentioning permissions, rate limits, message size restrictions, or what happens on failure. This is insufficient.

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. However, it lacks structural elements like bullet points or sections that could improve readability.

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 two required parameters and no output schema. The description fails to mention return value, error behavior, or usage context (e.g., requires a room ID). It is minimally adequate but 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 coverage is 100%, so baseline is 3. The description repeats the schema's parameter explanations without adding significant new meaning, e.g., it confirms Remarkup support but that's already present.

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 clearly states the action (Send) and the resource (message to a Conpherence chat room/thread), distinguishing it from sibling tools like create, edit, read, and search.

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?

No explicit when-to-use or when-not-to-use guidance is provided, nor are alternatives mentioned. The context implies it's for sending messages, but lacks explicit differentiation from similar tools.

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

phabricator_diff_rawA

Get the raw diff/patch content for a Differential diff by diff ID. Use phabricator_diff_search to find the diff ID from a revision PHID first.

ParametersJSON Schema
NameRequiredDescriptionDefault
diffIDYesThe diff ID (numeric, e.g., 1392561). Use phabricator_diff_search to find this from a revision.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description must disclose behavior. It states 'raw diff/patch content' but does not specify the format, size limits, or whether it is read-only. Basic functionality is clear but lacks important behavioral details.

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?

Two concise sentences with no redundant information. Front-loaded with the main action and necessary 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?

No output schema, so description should hint at return value. It mentions 'raw diff/patch content' but does not clarify format (e.g., string, JSON). For a simple tool, it is mostly complete but could be improved with output format details.

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?

Only one parameter (diffID) with 100% schema description coverage. The description adds no additional meaning beyond the schema, which already explains the parameter's purpose and how to find it.

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 clearly states the tool's function: getting raw diff/patch content for a Differential diff by diff ID. It also distinguishes itself by referencing phabricator_diff_search for finding the diff ID.

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

Usage Guidelines5/5

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

Explicit guidance provided: 'Use phabricator_diff_search to find the diff ID from a revision PHID first.' This clearly tells the agent when to use this tool and what prerequisite step is needed.

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

phabricator_document_add_commentA

Add a comment to a Phriction wiki document

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesDocument slug, PHID, or ID (e.g., "projects/myproject/")
commentYesComment text (supports Remarkup)

TDQS

A4/5.0
Behavior3/5

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

No annotations provided; the description indicates it is a write operation ('Add') but does not disclose potential side effects, auth requirements, or details about comment behavior beyond appending.

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 sentence with no extraneous content.

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?

The tool is simple with two parameters and no output schema; the description covers the basic action, but lacks prerequisites like document existence. Still adequate for a straightforward 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%, and the description adds no additional meaning beyond the parameter names and their provided descriptions.

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 clearly states the verb 'Add' and the resource 'comment to a Phriction wiki document', distinguishing it from sibling tools like phabricator_task_add_comment and phabricator_revision_inline_comment.

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?

The description implies usage for Phriction documents, but does not explicitly state when to use or contrast with alternatives. It is clear enough for context differentiation among sibling comment tools.

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

phabricator_document_createA

Create a new Phriction wiki document. Uses phriction.create (the only method that can create documents).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesDocument slug/path (e.g., "projects/myproject/")
titleYesDocument title
contentYesDocument content (Remarkup)
descriptionNoEdit description/summary

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. The description lacks details on side effects, authentication requirements, rate limits, or error scenarios. It only mentions the underlying API method, which adds minimal 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?

Two sentences with no wasted words. The first sentence states the purpose, and the second adds a technical detail about the API method. Perfectly concise.

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 4 parameters (3 required) and no output schema or annotations, the description is functional but lacks information on return value, error handling, or prerequisites like existing parent slugs. Adequate but not comprehensive.

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 provides 100% coverage for all 4 parameters with descriptions. The tool description does not add extra meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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 clearly states 'Create a new Phriction wiki document' with a specific verb and resource. It distinguishes from siblings like phabricator_document_edit and phabricator_document_search, which are for editing or searching documents.

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?

No explicit when-to-use or when-not-to-use guidance. The description implies creation is for new documents, but does not mention alternatives or when to use other tools like edit or search.

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

phabricator_document_editA

Edit an existing Phriction wiki document title or content. Uses phriction.edit (the only method that can update document content).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesDocument slug/path (e.g., "projects/myproject/")
titleNoNew document title
contentNoNew document content (Remarkup)
descriptionNoEdit description/summary

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It mentions mutation but does not specify if edits are incremental or overwriting, required permissions, or side effects. The reference to phriction.edit is insufficient for full behavioral clarity.

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?

Two concise sentences that efficiently convey the purpose and key distinction. No unnecessary words.

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?

With no output schema and no annotations, the description adequately covers the edit operation. It could mention what the tool returns, but the essential context (edit existing, update title/content) is present. Sibling tools provide good complement.

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 descriptions for each parameter. The description adds minimal value: 'edit title or content' clarifies optionality, but overall meaning is already conveyed by 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?

Clearly states action (edit), resource (Phriction wiki document), and what can be edited (title or content). Distinguishes from siblings by noting it's the only method that updates content.

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?

Indicates use for updating document content and implies it's the method for content changes. Lacks explicit when-not-to-use or alternatives, but the context with sibling tools provides reasonable guidance.

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

phabricator_feed_queryA

Query the Phabricator activity feed. Returns recent activity (task updates, revision changes, commits, etc.) as an object keyed by story PHID. Uses feed.query (the only Conduit method for feed data).

ParametersJSON Schema
NameRequiredDescriptionDefault
filterPHIDsNoOnly show activity involving these PHIDs (user, project, task, etc.)
viewNoOutput format: "data" (structured, default), "text" (human-readable), "html" (rendered HTML), "html-summary" (title only)
limitNoMaximum results (max 100)
afterNoCursor for pagination (chronological key from previous results)
beforeNoCursor for reverse pagination

TDQS

A3.7/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 full burden. It mentions the return format but does not address any behavioral traits such as read-only nature, pagination behavior, authentication requirements, or potential side effects. A query tool likely is read-only, but this is not confirmed.

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 two sentences, front-loaded with the main purpose and return structure, then adds specific context about the method. No unnecessary words.

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 explains the return format and the method used. However, it does not mention pagination behavior despite parameters 'after' and 'before'. The schema covers these, but the description could be more complete regarding iteration.

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% (all 5 parameters have descriptions). The tool description adds context about the underlying Conduit method but does not provide additional parameter details 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 clearly states the tool queries the Phabricator activity feed, listing specific activity types (task updates, revision changes, commits) and the return format (object keyed by story PHID). It distinguishes itself from sibling tools which are specialized for other entities like audit, blog, or revision.

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?

The description notes that this uses 'feed.query (the only Conduit method for feed data)', implying it is the sole tool for this kind of data. However, it does not explicitly state when not to use it or provide direct alternatives beyond the sibling list.

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

phabricator_file_infoA

Get metadata about a file (name, size, MIME type, URI). Use the returned URI to download. Provide at least one of id or phid. Uses file.info (the only Conduit method that returns download URIs).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoFile ID (provide this or phid)
phidNoFile PHID (provide this or id)

TDQS

A4.4/5.0
Behavior4/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 that the tool returns metadata including a download URI and notes it's the only method returning URIs. It could mention error cases or authorization needs, but the description is fairly transparent.

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 concise, two sentences, with key information front-loaded: purpose, key output, usage condition, and unique aspect. Every sentence adds value.

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?

Without an output schema, the description lists the key returned fields (name, size, MIME type, URI) and mentions download use. It covers the essential information for a file info tool, but could mention if additional fields exist or response format.

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 already has 100% description coverage for both parameters. The description adds 'Provide at least one of id or phid', which clarifies the mutual dependency and adds value 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 clearly states the tool gets metadata (name, size, MIME type, URI) and mentions downloading via the URI. It distinguishes itself from sibling tools like file_search and file_upload by specifying it's for a single file's info and uses the file.info Conduit method.

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?

It provides a clear usage guideline: 'Provide at least one of id or phid'. It also advises using the returned URI to download. However, it does not explicitly state when not to use this tool versus alternatives, but the context of siblings makes it clear.

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

phabricator_file_uploadA

Upload a file to Phabricator. Returns a file PHID that can be used with phabricator_file_info to get the file ID for embedding in Remarkup via {F}.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilename with extension (e.g. "screenshot.png")
data_base64YesBase64-encoded file content
viewPolicyNoFile visibility policy (e.g., "public", "users", or a custom policy PHID)
canCDNNoWhether the file can be served over CDN (for public assets)

TDQS

A3.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 must carry the full burden. It only states the basic action and return value, without disclosing behavioral traits such as file size limits, permissions required, or whether the upload is destructive/reversible. This is insufficient for a mutation tool with no annotation support.

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?

Two sentences: first clearly states action and return, second adds contextual follow-up usage. Every sentence adds value, no wasted words. Front-loaded with key information.

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?

The description explains the return value and how to use it, which is good given no output schema. However, it lacks details on constraints such as file size limits, permanence, or error handling, which would be helpful for an upload 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 baseline is 3. The description does not add additional parameter meaning beyond what the schema already provides (e.g., encoding requirements for data_base64 or accepted formats for viewPolicy).

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?

Description clearly states it uploads a file to Phabricator and returns a PHID. It also explains the follow-up usage with phabricator_file_info to get the file ID for embedding in Remarkup, which distinguishes it from other file-related tools like phabricator_file_info and phabricator_file_search.

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?

Description implies the tool is for uploading files and provides context on how to use the returned PHID. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions, but the workflow is clear.

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

phabricator_paste_createC

Create a new Phabricator paste

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoPaste title
contentYesPaste content
languageNoSyntax highlighting language
statusNoStatus: active or archived
addSubscriberPHIDsNoSubscriber PHIDs to add
addProjectPHIDsNoProject PHIDs to tag

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. It only states 'create', which implies a write operation, but does not mention side effects, return value, or required permissions. This is insufficient for a mutation tool.

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 no unnecessary words. It is highly concise and front-loaded, effectively conveying the core purpose with minimal text.

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, the description should indicate what the tool returns (e.g., the created paste or PHID). It also does not clarify parameter roles or usage context, leaving the agent without key information for a creation 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 coverage is 100%, so the schema already documents all 6 parameters. The description adds no additional meaning beyond what is in the schema, meeting the baseline expectation but not exceeding it.

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 'Create a new Phabricator paste' clearly states the verb (create) and resource (paste), which distinguishes it from sibling tools like edit and search. However, it does not elaborate on scope or additional features, leaving room for ambiguity.

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 phabricator_paste_edit. There is no mention of prerequisites, scenarios, or exclusions, leaving the agent to infer usage.

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

phabricator_paste_editB

Edit an existing Phabricator paste

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesPaste PHID or ID (e.g., "P123")
titleNoNew title
contentNoNew content
languageNoSyntax highlighting language
statusNoStatus: active or archived
addSubscriberPHIDsNoSubscriber PHIDs to add
removeSubscriberPHIDsNoSubscriber PHIDs to remove
addProjectPHIDsNoProject PHIDs to add
removeProjectPHIDsNoProject PHIDs to remove
commentNoAdd a comment alongside the edit (supports Remarkup)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so the description fully carries the behavioral burden. It only says 'Edit' with no details on mutation scope, idempotency, permissions, or side effects like archiving or subscriber changes.

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 wasted words, efficient but lacks depth. Not as concise as it could be given the 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?

With 10 parameters, no output schema, and no annotations, the description is too minimal to be complete. It fails to explain return values or overall behavior beyond 'edit'.

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 each parameter described in the schema, so the tool description adds no additional meaning beyond what is already present. Baseline 3 is appropriate.

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 clearly states 'Edit an existing Phabricator paste', specifying the action (edit) and resource (existing paste), and distinguishes it from related tools like create or search.

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 on when to use this tool versus alternatives like phabricator_paste_create or phabricator_paste_search; no prerequisites, limitations, or typical use cases mentioned.

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

phabricator_phid_lookupA

Look up PHIDs by human-readable names (e.g., "T123", "D456", "@username")

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesNames to look up (e.g., ["T123", "D456", "@john"])

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behaviors but only states a lookup action. It omits details like error handling for invalid names, rate limits, or whether the lookup is read-only. The description is minimally sufficient but lacks depth.

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 wasted words. It front-loads the main action and input format, making it efficient for quick comprehension.

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 tool with one parameter and no output schema, the description is adequate but minimal. It does not mention return values, pagination, or limitations, which would be helpful for an agent to fully understand behavior.

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?

The schema has 100% coverage for the single 'names' parameter. The description adds value by providing concrete examples of acceptable input formats (T123, D456, @username), which is informative 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 ('Look up') and resource ('PHIDs'), with clear examples of input formats like 'T123', 'D456', '@username'. It distinguishes from other tools by focusing on human-readable name lookup.

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 like 'phabricator_phid_query'. No context about prerequisites or preferred use cases is given.

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

phabricator_phid_queryA

Get handle information (name, URI, type, status) for PHIDs. For full object data, use application-specific search tools (e.g., phabricator_task_search, phabricator_revision_search).

ParametersJSON Schema
NameRequiredDescriptionDefault
phidsYesPHIDs to query

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so the description carries the full burden. It discloses the type of data returned (name, URI, type, status) and implies a read-only operation, but does not explicitly state non-destructive behavior or permission 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?

Two concise sentences, front-loaded with the purpose, and no wasted words.

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

Completeness5/5

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

For a simple tool with full schema coverage, the description is complete: it explains the output type, when to use, and when to use alternatives.

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 a single parameter described. The description adds context that the tool returns handle information for the given PHIDs, but does not add new details beyond the schema's description.

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 explicitly states it gets handle information (name, URI, type, status) for PHIDs, and distinguishes from sibling tools by directing to application-specific search tools for full object data.

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

Usage Guidelines5/5

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

It clearly specifies when to use this tool (for handle information) and when not to (for full object data), naming alternative tools like phabricator_task_search and phabricator_revision_search.

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

phabricator_project_editA

Create or edit a Phabricator project. Omit objectIdentifier to create a new project (name is required for creation).

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierNoProject PHID or ID. Omit to create a new project.
nameNoNew name
descriptionNoProject description (supports Remarkup)
iconNoNew icon
colorNoNew color
addMemberPHIDsNoAdd members
removeMemberPHIDsNoRemove members
spaceNoSpace PHID (for multi-space installations)
parentNoParent project PHID (to create as a subproject)
milestoneNoParent project PHID (to create as a milestone of that project)
slugNoProject URL slug (replaces ALL existing slugs with this one)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description must carry behavioral disclosure. It only states basic create/edit logic, but lacks details on destructive potential, permissions, rate limits, or return value. For a mutation tool, this is insufficient.

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?

Two short sentences with front-loaded purpose and key condition. No extraneous words; every sentence 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 11 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, behavior of slug replacement, or mutual exclusivity of some parameters. More context is needed.

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 each parameter has a description. The tool description does not add significant meaning beyond restating the objectIdentifier usage. Baseline 3 is appropriate as schema already documents parameters.

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 clearly states 'Create or edit a Phabricator project' with specific verb and resource. It distinguishes between create and edit based on presence of objectIdentifier, which is helpful for an agent.

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?

Explicit guidance on when to omit objectIdentifier (create) and that name is required for creation. However, it does not provide exclusions or compare with sibling tools like search; since no alternative edit tool exists, this is adequate.

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

phabricator_repository_browseA

Browse a repository directory tree at a given path and commit/branch. Pass a branch name via the commit parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoPath to browse (default: "/")
repositoryNoRepository callsign, short name, or PHID
commitNoCommit hash or branch name (default: HEAD). Pass branch names here.
needValidityOnlyNoOnly check path validity without loading the full tree
limitNoMaximum entries to return
offsetNoResult offset for pagination

TDQS

A3.6/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 says 'Browse', implying a read operation but offering no details on side effects, authentication requirements, rate limits, or error behavior. The description carries the full burden for transparency but fails to disclose common behavioral traits for a file browsing tool.

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 concise at one sentence, front-loading the purpose immediately. It could be slightly more structured by separating the purpose from the usage hint, but it remains efficient without redundant information.

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 tool has 6 parameters (path, repository, commit, needValidityOnly, limit, offset) and no output schema, the description only covers path and commit. It omits important context like the optional validity check mode, pagination parameters, and the expected return structure (list of files/directories), which are critical for complete agent understanding.

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?

While the schema already has 100% description coverage, the description adds valuable semantic context by clarifying that the 'commit' parameter can accept branch names ('Pass branch names here'), which is not obvious from the schema's 'Commit hash or branch name'. This reduces ambiguity.

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 clearly states the verb 'Browse' and the resource 'repository directory tree', specifying the key parameters path and commit/branch. It effectively distinguishes from sibling tools like phabricator_repository_file_content (get file content) or phabricator_repository_code_search (search code), as it focuses on directory listing.

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 gives one explicit usage hint ('Pass a branch name via the commit parameter'), which aids parameter assignment. However, it lacks guidance on when to use this tool vs alternatives like code search or file history, and does not mention when not to use it (e.g., for large repositories requiring pagination hints).

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

phabricator_repository_editA

Create or edit a Diffusion repository. To create, omit objectIdentifier and provide vcs + name.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierNoRepository PHID, ID, callsign, or short name (omit to create new)
vcsNoVersion control system (required for creation)
nameNoRepository name
callsignNoRepository callsign (short uppercase identifier)
shortNameNoRepository short name (URL slug)
descriptionNoRepository description (Remarkup)
defaultBranchNoDefault branch name
statusNoRepository status
addProjectPHIDsNoProject PHIDs to add
removeProjectPHIDsNoProject PHIDs to remove
spaceNoSpace PHID (for multi-space installations)

TDQS

A3.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 carries the full burden. It fails to disclose behavioral traits such as whether editing overwrites or merges fields, authentication requirements, or side effects. The description is too sparse for a mutation tool.

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 two short, front-loaded sentences with no wasted words. Every sentence contributes essential information.

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 having 11 parameters and no output schema, the description does not explain return values, update semantics (partial vs full), or error handling. For a complex mutation tool, this leaves significant 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 coverage is 100% with all parameters described. The description adds only a small clarification about required parameters for creation, which is already implied by the schema. Baseline 3 is appropriate since the description adds minimal value 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 clearly states the verb (create/edit) and resource (Diffusion repository). It distinguishes between creation ('omit objectIdentifier and provide vcs + name') and editing, making the purpose unambiguous.

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?

The description provides explicit guidance for when to create vs edit ('To create, omit objectIdentifier and provide vcs + name'). It doesn't list exclusions or alternatives, but no sibling tools overlap with this operation, so it is clear.

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

phabricator_repository_file_contentA

Read file contents from a Diffusion repository at a given path and commit/branch. Returns the file content as a base64-encoded blob. If the file is too large, returns tooHuge: true with no content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path in the repository (e.g., "src/index.ts")
repositoryNoRepository callsign, short name, or PHID
commitYesCommit hash or branch name
branchNoBranch name
timeoutNoQuery timeout in seconds
byteLimitNoMaximum file size in bytes to return

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses base64 encoding and large file handling ('tooHuge: true'). Missing details on error handling for invalid paths or permissions, but still adds significant value beyond schema.

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?

Two concise sentences front-loading the purpose and key behavioral details. No fluff or redundancy.

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?

Given no output schema, the description adequately explains the return format and large file behavior. It could include error scenarios, but is largely complete for a straightforward file read 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 coverage is 100%, and the description does not add substantial meaning beyond what the parameter descriptions already provide. The mention of 'path and commit/branch' echoes schema fields.

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 clearly states the action (read), resource (file contents), and scope (from Diffusion repository at given path and commit/branch). It is specific and distinguishable from sibling tools like phabricator_repository_browse and phabricator_repository_code_search.

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?

No explicit guidance on when to use this tool versus alternatives. The context is clear enough to infer usage, but no exclusions or when-not-to-use information is provided.

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

phabricator_repository_file_historyB

Get commit history for a file or directory path in a Diffusion repository

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile or directory path in the repository
repositoryNoRepository callsign, short name, or PHID
commitYesCommit hash or branch to start from
branchNoBranch name
againstNoCompare against another commit
needDirectChangesNoInclude direct change info per path entry
needChildChangesNoInclude child change info per path entry
limitNoMaximum results (default: 100)
offsetNoResult offset for pagination (default: 0)

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 full responsibility for disclosing behavior. It only states 'Get commit history' without mentioning that the operation is read-only, whether special permissions are required, or what the response format looks like (e.g., list of commits). Pagination behavior (implied by limit/offset params) is not described.

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, clear sentence that efficiently conveys the core purpose. It is front-loaded and contains no unnecessary words. However, it could be slightly expanded to include brief usage context without becoming verbose.

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 9 parameters and lack of output schema, the description is insufficient. It does not explain the return value (e.g., list of commits with diff details), how pagination works, or the relationship between parameters like commit and branch. An agent would need to infer these from the parameter names alone.

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 schema already describes all parameters. The description adds no additional meaning beyond what is in the schema, such as clarifying the role of optional parameters like against, needDirectChanges, or needChildChanges. Baseline 3 is appropriate as the description is redundant with 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 clearly states the tool's function: 'Get commit history for a file or directory path in a Diffusion repository'. It uses a specific verb ('Get') and resource ('commit history'), differentiating it from sibling tools like phabricator_repository_file_content (gets file content) and phabricator_commit_search (searches commits). The scope is well-defined.

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 phabricator_repository_browse or phabricator_commit_search. It does not mention prerequisites, typical use cases, or when not to use it, leaving the agent to infer 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.

phabricator_revision_editB

Edit a Differential revision. Supports actions like accept, reject, abandon, request-review, plan-changes, and commandeer. Can also add/remove reviewers, subscribers, and comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesRevision PHID or ID (e.g., "D123")
titleNoNew title
summaryNoNew summary
testPlanNoNew test plan
addReviewerPHIDsNoAdd reviewers. Prefix with "blocking(PHID)" to add as blocking reviewer
removeReviewerPHIDsNoRemove reviewers
setReviewerPHIDsNoReplace all reviewers with this list. Prefix with "blocking(PHID)" for blocking
addProjectPHIDsNoAdd projects
removeProjectPHIDsNoRemove projects
commentNoAdd a comment
actionNoRevision action to take. Each action is sent as its own transaction type with value true.
draftNoHold revision as draft (true) or release from draft (false)
addSubscriberPHIDsNoSubscriber PHIDs to add
removeSubscriberPHIDsNoSubscriber PHIDs to remove
repositoryPHIDNoRepository PHID to associate with the revision
addTaskPHIDsNoManiphest task PHIDs to associate
removeTaskPHIDsNoManiphest task PHIDs to remove
addParentPHIDsNoParent revision PHIDs to add (dependencies)
removeParentPHIDsNoParent revision PHIDs to remove
addChildPHIDsNoChild revision PHIDs to add (dependents)
removeChildPHIDsNoChild revision PHIDs to remove

TDQS

B3.4/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 burden. It mentions actions like 'accept' and 'reject' but does not explain their effects, side effects, or required permissions. For a mutation tool, more detail on state changes and notifications is needed.

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 two sentences, front-loaded with the core purpose, and each word adds value. It is concise and efficiently conveys the tool's capabilities without redundancy.

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 has 21 parameters and no output schema, the description is brief and does not explain return values or provide examples. It fails to cover important aspects like what happens after an action is taken, making it incomplete 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?

Schema coverage is 100%, and the schema descriptions for parameters are fairly detailed, including prefixes for blocking reviewers and the action enum's behavior. The tool description adds marginal value beyond the schema, so baseline 3 is appropriate.

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 clearly states 'Edit a Differential revision,' which is a specific verb and resource. It then lists supported actions and additional capabilities, effectively distinguishing it from sibling tools like phabricator_revision_search (for querying) and phabricator_task_edit (for tasks).

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 does not explicitly state when to use this tool versus alternatives. It lacks guidance on prerequisites, exclusions, or suitability. While the purpose is clear from the name and description, there is no comparative context with sibling tools.

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

phabricator_revision_inline_commentA

Create an inline comment on a specific line of a Differential diff. The comment will appear as a draft — publish it by calling phabricator_revision_edit with a comment on the same revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
revisionIDYesNumeric revision ID (e.g., 123). Do not include the "D" prefix.
diffIDYesDiff ID to comment on. Use phabricator_diff_search to find this.
filePathYesPath to the file being commented on
lineNumberYesLine number in the file
lineLengthNoNumber of lines the comment spans (default: 0 for single line)
contentYesComment text (supports Remarkup)
isNewFileNoWhether the line number refers to the new file (true) or old file (false). Default: true

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description reveals the draft behavior, which is a critical behavioral trait. It does not cover permissions, reversibility, or notifications, but the draft disclosure adds value beyond the schema.

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?

Two concise sentences front-load the action and immediately provide the essential context about drafts, with no redundancy or fluff.

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?

Given the tool's complexity (7 params, no output schema), the description covers the purpose, draft lifecycle, and the need to publish. It could optionally mention the return format or confirmation behavior, but the provided information is sufficient for correct usage.

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 parameters are already well-described in the schema. The tool description does not add additional parameter-level guidance, meeting the baseline expectation.

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 clearly identifies the action ('Create an inline comment on a specific line of a Differential diff') and distinguishes it by mentioning the draft-and-publish workflow, which no other sibling 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 Guidelines4/5

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

It explicitly states that the comment is a draft and must be published via phabricator_revision_edit, providing a clear follow-up action. However, it does not specify when not to use this tool or compare it to alternatives.

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

phabricator_revision_pathsB

Get the list of changed file paths for a Differential revision. Returns an array of file path strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
revision_idYesNumeric revision ID (e.g., 123). Do not include the "D" prefix.

TDQS

B3.4/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 fully disclose behavior. It only states it returns file path strings without specifying path format (absolute/relative), inclusion of deleted files, ordering, or any potential side effects or permissions needed.

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?

Two concise sentences efficiently convey purpose and output. Could be slightly restructured for better readability, but no extraneous 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 one-parameter tool with no output schema, the description covers the basic functionality but omits details like result format, error conditions, or usage contexts. Sibling tools exist but are not referenced.

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% and the schema parameter description is detailed (numeric ID, no 'D' prefix). The description adds no extra parameter meaning beyond the schema, so baseline score of 3 is appropriate.

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 clearly states it retrieves changed file paths for a Differential revision and specifies the return type as an array of strings. This distinct purpose separates it from siblings like revision search or diff retrieval.

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?

No explicit guidelines on when to use this tool versus alternatives like phabricator_diff_raw for diff content. The context among many sibling tools suggests a need for clearer differentiation.

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

phabricator_task_add_commentB

Add a comment to a Maniphest task

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesTask PHID or ID (e.g., "T123")
commentYesComment text (supports Remarkup)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and description does not disclose behavioral traits (e.g., whether comment is appended or replaces existing, authentication requirements, rate limits). Only basic action stated.

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?

Single sentence, no wasted words. Appropriate for a simple tool but lacks enrichment that would improve usability.

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?

Tool has low complexity (2 simple params, no output schema). Description is adequate but does not mention return values, required permissions, or whether comment is immediately visible. Could be more 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?

Parameter schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond schema; it does not elaborate on format or constraints for parameters.

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?

Description clearly states 'Add a comment to a Maniphest task', providing specific verb and resource. It distinguishes from sibling add-comment tools like phabricator_blog_post_add_comment by specifying the context ('Maniphest task').

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 on when to use this tool versus alternatives like phabricator_task_edit (which might also add comments via transactions). No exclusions or prerequisites mentioned.

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

phabricator_task_createC

Create a new Maniphest task

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title
descriptionNoTask description (supports Remarkup)
ownerPHIDNoAssigned owner PHID
priorityNoPriority keyword (unbreak, triage, high, normal, low, wish) or numeric value
projectPHIDsNoProject PHIDs to tag
subscriberPHIDsNoSubscriber PHIDs
statusNoInitial status
subtypeNoTask subtype (e.g. "default", "incident")
parentPHIDsNoParent task PHIDs
subtaskPHIDsNoSubtask PHIDs
commitPHIDsNoCommit PHIDs to associate (for actual commits only, not revisions)
revisionIDsNoDifferential revision IDs to link (e.g. ["D223125"] or ["PHID-DREV-xxx"]). Creates a bidirectional link between the revision and the task.
pointsNoStory points value (if points are enabled on this instance)
spaceNoSpace PHID to place the task in (for multi-space installations)
commentNoInitial comment on the task (supports Remarkup)
customFieldsNoCustom field transactions. Keys are transaction types (e.g. "custom.my-field"), values are the field values. Check your Phabricator Conduit console (conduit/method/maniphest.edit/) for available fields.

TDQS

C2.8/5.0
Behavior1/5

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

No annotations provided, and the description only states the action without disclosing any behavioral traits such as side effects, return value, permissions, or error conditions. The agent receives no useful 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.

Conciseness3/5

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

The description is a single sentence, making it concise but overly minimal. It lacks structural elements like use cases or behavior notes, which diminishes its value.

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 16 parameters, no output schema, and no annotations, the description should provide high-level context about the tool's purpose and return value. Instead, it only says 'Create a new Maniphest task', leaving the agent without critical 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?

Schema description coverage is 100%, so all parameters are well-documented in the schema. The description adds no additional parameter information beyond what the schema provides, meeting the baseline expectation.

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?

Description explicitly states 'Create a new Maniphest task', clearly identifying the action (create) and the resource (Maniphest task). This distinguishes it from sibling tools like phabricator_task_edit and phabricator_task_search.

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 on when to use this tool versus alternatives (e.g., phabricator_task_edit for modifications). The description lacks any context about prerequisites or exclusions.

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

phabricator_task_editC

Edit an existing Maniphest task

ParametersJSON Schema
NameRequiredDescriptionDefault
objectIdentifierYesTask PHID or ID (e.g., "T123" or PHID)
titleNoNew title
descriptionNoNew description
ownerPHIDNoNew owner PHID (null to unassign)
priorityNoNew priority
statusNoNew status: open, resolved, wontfix, invalid, spite, duplicate
subtypeNoTask subtype (e.g. "default", "incident")
addProjectPHIDsNoProject PHIDs to add
removeProjectPHIDsNoProject PHIDs to remove
addSubscriberPHIDsNoSubscriber PHIDs to add
removeSubscriberPHIDsNoSubscriber PHIDs to remove
addParentPHIDsNoParent task PHIDs to add
removeParentPHIDsNoParent task PHIDs to remove
addSubtaskPHIDsNoSubtask PHIDs to add
removeSubtaskPHIDsNoSubtask PHIDs to remove
addCommitPHIDsNoCommit PHIDs to associate (for actual commits only, not revisions)
removeCommitPHIDsNoCommit PHIDs to disassociate (for actual commits only, not revisions)
addRevisionIDsNoDifferential revision IDs to link (e.g. ["D223125"] or ["PHID-DREV-xxx"]). Creates a bidirectional link between the revision and the task.
removeRevisionIDsNoDifferential revision IDs to unlink (e.g. ["D223125"] or ["PHID-DREV-xxx"]).
pointsNoStory points value (null to clear)
columnPHIDNoMove to workboard column
spaceNoSpace PHID to move the task to (for multi-space installations)
commentNoAdd a comment alongside the edit (supports Remarkup)
customFieldsNoCustom field transactions. Keys are transaction types (e.g. "custom.my-field"), values are the field values. Check your Phabricator Conduit console (conduit/method/maniphest.edit/) for available fields.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only states 'Edit an existing Maniphest task', which implies mutation but lacks details on permissions, side effects (e.g., overwriting fields not provided), or response behavior.

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 concise (one sentence) but lacks important context for a tool with 24 parameters. While brevity is valued, the content is insufficient, falling between efficient and under-specified.

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 (24 parameters, no output schema, no annotations), the description is far too minimal. It does not cover return values, error conditions, or partial update behavior, leaving the agent underinformed.

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 baseline is 3. The description adds no additional parameter context beyond the schema; it merely states the tool's action. No added 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 'Edit an existing Maniphest task' clearly states the action (edit) and the resource (Maniphest task), distinguishing it from sibling tools like phabricator_task_create and phabricator_task_search.

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 does not indicate when to use this tool versus alternatives, such as when to add a comment vs. edit a task, nor any prerequisites or context for invoking the tool.

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

phabricator_user_whoamiA

Get information about the current authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 bears full responsibility. It only states the basic function without any behavioral details such as whether it's read-only, performance characteristics, or authentication requirements. The name 'whoami' implies identity, but no extra context is given.

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 extraneous words. Every word earns its place, making it highly concise and easy to parse.

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 no parameters and no output schema, the description is adequately but minimally complete. It could be improved by listing typical returned fields (e.g., username, email) to fully inform the agent of the tool's output.

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?

With zero parameters and 100% schema coverage, the description adds meaning by specifying that the tool returns information about the current authenticated user, which goes beyond the empty schema. However, it could further detail the kind of information returned.

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 ('Get') and resource ('information about the current authenticated user'), clearly defining the tool's action. It is distinct from sibling tools that query or search other entities, so the purpose is well differentiated.

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 on when to use this tool versus alternatives like phabricator_user_search or other query tools. There is no explicit mention of when to use it or when not to, leaving the agent to infer usage from context only.

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

phabricator_versionA

Get the version of the running phabricator-mcp server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, but the nature of the tool (version retrieval) implies it is read-only and non-destructive. The description does not add behavioral details beyond the purpose, but for this simple tool it is sufficient.

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 sentence that is concise, front-loaded, and contains no wasted words. It clearly communicates the tool's purpose.

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

Completeness5/5

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

Given there are no parameters and no output schema, the description fully explains what the tool does. It is complete enough for an agent to select and invoke correctly.

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?

There are zero parameters, and schema coverage is 100%. The baseline for 0 parameters is 4. The description does not add param-specific meaning, but none is needed.

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 clearly states the action ('get') and the resource ('version of the running phabricator-mcp server'). It is specific and distinguishes itself from sibling tools, which are all about queries or mutations on other entities.

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?

No explicit guidance on when to use this tool versus alternatives. However, for a simple version check, the context is clear. It does not mention any prerequisites or exclusions.

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. 60 tool updatesv2.0.19
    • First observedphabricator_audit_query
    • First observedphabricator_blog_edit
    • First observedphabricator_blog_post_add_comment
    • First observedphabricator_blog_post_create
    • First observedphabricator_blog_post_edit
    • First observedphabricator_blog_post_search
    • First observedphabricator_blog_search
    • First observedphabricator_branch_search
    • First observedphabricator_build_command
    • First observedphabricator_build_log_search
    • First observedphabricator_build_plan_search
    • First observedphabricator_build_search
    • First observedphabricator_build_target_search
    • First observedphabricator_buildable_search
    • First observedphabricator_column_search
    • First observedphabricator_commit_search
    • First observedphabricator_conpherence_create
    • First observedphabricator_conpherence_edit
    • First observedphabricator_conpherence_read
    • First observedphabricator_conpherence_search
    • First observedphabricator_conpherence_send
    • First observedphabricator_diff_raw
    • First observedphabricator_diff_search
    • First observedphabricator_document_add_comment
    • First observedphabricator_document_create
    • First observedphabricator_document_edit
    • First observedphabricator_document_search
    • First observedphabricator_feed_query
    • First observedphabricator_file_info
    • First observedphabricator_file_search
    • First observedphabricator_file_upload
    • First observedphabricator_owners_search
    • First observedphabricator_paste_create
    • First observedphabricator_paste_edit
    • First observedphabricator_paste_search
    • First observedphabricator_phid_lookup
    • First observedphabricator_phid_query
    • First observedphabricator_project_edit
    • First observedphabricator_project_search
    • First observedphabricator_repository_browse
    • First observedphabricator_repository_code_search
    • First observedphabricator_repository_edit
    • First observedphabricator_repository_file_content
    • First observedphabricator_repository_file_history
    • First observedphabricator_repository_search
    • First observedphabricator_revision_edit
    • First observedphabricator_revision_inline_comment
    • First observedphabricator_revision_paths
    • First observedphabricator_revision_search
    • First observedphabricator_tag_search
    • First observedphabricator_task_add_comment
    • First observedphabricator_task_create
    • First observedphabricator_task_edit
    • First observedphabricator_task_priority_search
    • First observedphabricator_task_search
    • First observedphabricator_task_status_search
    • First observedphabricator_transaction_search
    • First observedphabricator_user_search
    • First observedphabricator_user_whoami
    • First observedphabricator_version

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct Phabricator application and action (e.g., task, revision, repository, file, etc.). Descriptions explicitly clarify purpose, and no two tools appear to perform the same function.

Naming Consistency5/5

All tools follow the consistent pattern 'phabricator_<app>_<action>' in snake_case (e.g., phabricator_task_create, phabricator_revision_search). Even utility tools like phabricator_phid_lookup fit this pattern.

Tool Count3/5

With 60 tools, this is a very large set. While Phabricator is a complex platform, the number exceeds typical recommended ranges (3-15). Each tool has a specific purpose, but the sheer volume may overwhelm agents.

Completeness5/5

The tool surface covers all major Phabricator applications (Maniphest, Differential, Diffusion, Phriction, Conpherence, Harbormaster, etc.) with CRUD operations, search, and comments. Only minor gaps exist (e.g., no workboard column creation), but core workflows are fully supported.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

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/freelancer/phabricator-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server