phabricator-mcp
Provides tools for interacting with Phabricator's Conduit API, enabling management of tasks, code reviews, repositories, users, projects, pastes, wiki documents, blogs, and more.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@phabricator-mcplist my recent revisions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Phabricator MCP Server
Installation
Claude Code (CLI)
claude mcp add --scope user phabricator -- npx @freelancercom/phabricator-mcp@latestOr 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@latestThe --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-cacheThen 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@latestFor 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 URLPHABRICATOR_API_TOKEN- Conduit API token
You can get an API token from your Phabricator instance at: Settings > Conduit API Tokens
Recommended: Allow Read-Only Tool Permissions
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 |
| Search tasks with filters (status, assignee, project, etc.) |
| Create a new task |
| Edit an existing task |
| Add a comment to a task |
| List all available task statuses on the instance |
| List all available task priorities on the instance |
Code Reviews (Differential)
Tool | Description |
| Search code review revisions |
| Edit a revision (accept, reject, abandon, add reviewers, comment, etc.) |
| Create an inline comment on a specific line of a diff |
| Get the raw diff/patch content for a diff by ID |
| Search diffs (code change snapshots within a revision) |
| Get the list of changed file paths for a revision |
Repositories (Diffusion)
Tool | Description |
| Search repositories |
| Search commits |
| Browse a repository directory tree |
| Read file contents from a repository |
| List branches in a repository |
| List tags in a repository |
| Get commit history for a file path |
| Search (grep) file contents within a repository |
| Create or edit a Diffusion repository |
Users
Tool | Description |
| Get current authenticated user |
| Search users |
Projects
Tool | Description |
| Search projects |
| Create or edit a project |
| Search workboard columns |
Pastes
Tool | Description |
| Search pastes |
| Create a paste |
| Edit an existing paste |
Wiki (Phriction)
Tool | Description |
| Search wiki documents |
| Create a new wiki document |
| Edit a wiki document title or content |
| Add a comment to a wiki document |
Blogs (Phame)
Tool | Description |
| Search Phame blogs |
| Create or edit a Phame blog |
| Search blog posts |
| Create a new blog post |
| Edit an existing blog post |
| Add a comment to a blog post |
Transactions
Tool | Description |
| Search transactions (comments, status changes, etc.) on any object |
Files
Tool | Description |
| Upload a file and get an ID for embedding in descriptions/comments via |
| Search for files |
| Get file metadata (name, size, MIME type, URI) |
Builds (Harbormaster)
Tool | Description |
| Search buildables (revisions/commits with builds) |
| Search builds (CI/build results) |
| Search build targets (individual build steps) |
| Search build logs (output from build steps) |
| Report build status to Harbormaster (pass, fail, work) |
| Search build plans (CI pipeline configurations) |
Code Ownership (Owners)
Tool | Description |
| Search code ownership packages |
Activity Feed
Tool | Description |
| Query the activity feed (recent task updates, revision changes, commits, etc.) |
Chat (Conpherence)
Tool | Description |
| Search chat rooms/threads |
| Create a new chat room/thread |
| Edit a chat room (rename, manage participants) |
| Read messages from a chat thread |
| Send a message to a chat thread |
Audits
Tool | Description |
| Search commit audit requests |
PHID Utilities
Tool | Description |
| Look up PHIDs by name (e.g., "T123", "@username") |
| Get details about PHIDs |
Server
Tool | Description |
| 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 modeArchitecture
src/index.ts- Entry point, MCP server with stdio transportsrc/config.ts- Config loader (reads~/.arcrcor env vars)src/client/conduit.ts- Phabricator Conduit API clientsrc/tools/*.ts- Tool implementations per Phabricator application
License
MIT
Available Tools
60 toolsphabricator_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.
| Name | Required | Description | Default |
|---|---|---|---|
| auditorPHIDs | No | Auditor user/project PHIDs | |
| commitPHIDs | No | Commit PHIDs to check audit status for | |
| status | No | Audit status filter: "audit-status-any" (default), "audit-status-open", "audit-status-concern", "audit-status-accepted", "audit-status-partial" | |
| limit | No | Maximum results (max 100) | |
| offset | No | Result offset for pagination |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | No | Blog PHID or ID. Omit to create a new blog. | |
| name | No | Blog name | |
| subtitle | No | Blog subtitle | |
| description | No | Blog description (Remarkup) | |
| domainFullURI | No | Custom full domain URI for the blog | |
| parentSite | No | Parent site name | |
| parentDomain | No | Parent domain URL | |
| status | No | Blog status | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add | |
| removeSubscriberPHIDs | No | Subscriber PHIDs to remove |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Post PHID or ID | |
| comment | Yes | Comment text (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Post title | |
| body | Yes | Post body content (supports Remarkup) | |
| blogPHID | Yes | PHID of the blog to post to | |
| subtitle | No | Post subtitle | |
| visibility | No | Visibility: 0 (draft, default), 1 (published), 2 (archived) | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Post PHID or ID | |
| title | No | New post title | |
| subtitle | No | New post subtitle | |
| body | No | New post body content (supports Remarkup) | |
| visibility | No | Visibility: 0 (draft), 1 (published), 2 (archived) | |
| blogPHID | No | Move post to a different blog (PHID) | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add | |
| removeSubscriberPHIDs | No | Subscriber PHIDs to remove | |
| comment | No | Add a comment alongside the edit (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "live", "draft", "archived" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
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.
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.
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.
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.
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.
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_blog_searchC
Search Phame blogs
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active", "archived" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
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, sorting, or required permissions. The description adds no value beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words) but under-specified. It lacks structure and fails to convey useful information beyond the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal description, the tool's behavior is unclear. It does not explain return values, pagination, or typical usage, leaving the agent without sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameters. The description adds no additional explanation beyond the schema, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search Phame blogs' clearly states the verb (search) and the resource (Phame blogs), which distinguishes it from sibling tools like phabricator_blog_post_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention when not to use it or provide context for specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_branch_searchB
List branches in a Diffusion repository
| Name | Required | Description | Default |
|---|---|---|---|
| repository | Yes | Repository callsign, short name, or PHID | |
| branch | No | Branch name | |
| contains | No | Only branches containing this commit | |
| patterns | No | Filter branches by glob patterns | |
| closed | No | Filter by open/closed status (Mercurial only) | |
| limit | No | Maximum results (max 100) | |
| offset | No | Result offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states 'List branches' without any behavioral context such as pagination behavior, performance implications, or how branches are ordered. The agent gets no insight beyond the parameter schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 6 words. No wasted text, but lacks structure (e.g., bullet points for key info). Appropriate for a simple tool, but could be slightly more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, so description should explain return values or behavior; it does not. Also, pagination parameters (limit, offset) are present but no mention of how they affect results. Incomplete for a tool with 7 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond what is already in the schema. Each parameter's purpose is clear from schema comments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List branches in a Diffusion repository' clearly states the action and resource. It distinguishes from sibling tools like phabricator_repository_browse which deals with file browsing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There are many sibling repository tools (e.g., phabricator_repository_browse, phabricator_commit_search) but no comparison or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_buildable_searchC
Search Harbormaster buildables (objects that can be built, like revisions or commits)
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all" | |
| constraints | No | Search constraints | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It only states what is searched, without disclosing traits like pagination behavior, required permissions, or return format. The description adds no behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence with clear front-loading of purpose. However, it is slightly too terse and could include more structured guidance without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, nested objects, and no output schema, the description is minimal. It does not elaborate on return format or pagination behavior. The high schema coverage partially compensates, but the lack of output schema and annotations leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 tool description does not add any extra meaning to parameters beyond what the schema already provides. For example, it doesn't explain how constraints work or the significance of order.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the resource ('Harbormaster buildables') and action ('Search') with examples. However, it does not explicitly distinguish from sibling search tools like phabricator_build_search or phabricator_build_target_search, though the examples help differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or when not to use it. Lacks any context about prerequisites, limitations, or comparison with other search tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| buildTargetPHID | Yes | PHID of the build target (PHID-HMBT-...) to send the message to | |
| type | Yes | Message type: "pass" (target passed), "fail" (target failed), "work" (target still working, resets timeout) | |
| unit | No | Unit test results to report | |
| lint | No | Lint results to report |
TDQS
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.
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.
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.
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.
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.
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_build_log_searchA
Search Harbormaster build logs (output from build steps). Use phabricator_build_target_search to find target PHIDs first.
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all" | |
| constraints | No | Search constraints | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It indicates it searches build logs and mentions prerequisite target PHIDs but does not describe pagination, rate limits, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words; first sentence states purpose, second provides key usage advice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema included and description does not explain return values or pagination behavior, leaving gaps for a tool with 6 parameters and nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 minimal value beyond the schema, only reinforcing the use of buildTargetPHIDs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Harbormaster build logs, distinguishing it from sibling tools like phabricator_build_target_search and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests using phabricator_build_target_search first to obtain target PHIDs, providing clear usage context, though it lacks when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_build_plan_searchA
Search Harbormaster build plans (CI pipeline configurations)
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active" | |
| constraints | No | Search constraints | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It describes a search operation (implied read-only) but does not disclose pagination behavior, authentication requirements, or any side effects. The schema details are extensive but the description adds no additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately conveys the tool's purpose. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the full schema coverage, and the absence of an output schema, the description adequately covers the essential context. It could mention that results are build plan objects, but the schema constrains the query and the description identifies the resource type, making this sufficient for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 6 parameters, so the schema already provides the meaning of each parameter. The description does not add further semantic value beyond what is in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches 'Harbormaster build plans (CI pipeline configurations)', using a specific verb and resource. It distinguishes itself from sibling tools like phabricator_build_search by targeting the build plan entity, not builds or targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Sibling tools include many other search tools (e.g., phabricator_build_search), but the description does not explain when to choose this one or what differentiates it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_build_searchB
Search Harbormaster builds (CI/build results)
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "initiated", "waiting", "active", "completed" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like pagination, read-only nature, or result limits. The brief description offers none, leaving the agent to infer behavior solely from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's purpose. While efficient, it could be slightly expanded without losing conciseness, hence a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 7 parameters and no output schema, the description omits key context such as built-in queries, constraint capabilities, or pagination behavior. It is too minimal for a non-trivial search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for all 7 parameters, so the description adds no additional meaning. Baseline 3 is appropriate as the schema already documents parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as searching Harbormaster builds, which is distinct from sibling tools like phabricator_buildable_search or phabricator_build_plan_search. It uses a specific verb and resource, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Given numerous sibling search tools, it lacks any context for appropriate usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_build_target_searchB
Search Harbormaster build targets (individual build steps within a build)
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all" | |
| constraints | No | Search constraints | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The one-line description does not mention pagination behavior (despite cursor parameters in schema), rate limits, authentication requirements, or any side effects. For a search tool, more details on result handling are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 without any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite moderate complexity (6 parameters, nested objects), the description lacks completeness regarding return values (no output schema) and fails to explain the relationship between builds and build targets. The schema covers parameters well, but the description should provide additional context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 any additional meaning beyond what the schema already provides for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search', the resource 'Harbormaster build targets', and provides clarifying context that these are 'individual build steps within a build'. This distinguishes it from siblings like phabricator_build_search which searches entire builds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, it does not indicate that this is for searching individual build steps while phabricator_build_search is for builds, nor does it 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_column_searchB
Search project workboard columns
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all" | |
| constraints | No | Search constraints | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only says 'Search' which implies read-only but does not explicitly mention safety, side effects, or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise phrase with zero wasted words, fitting within the ideal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or description of return values; the tool has nested constraints but the description does not explain behavior or pagination, leaving significant gaps for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no additional meaning beyond what the schema already provides for the 6 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search project workboard columns' clearly states the verb and resource, distinguishing it from sibling tools like project search or task search by specifying columns on workboards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 other search tools; no context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_commit_searchC
Search Diffusion commits
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active", "authored", "audited" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, pagination behavior, or result ordering. Only the schema hints at pagination, but explicit disclosure is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It provides only the bare minimum, and while it is front-loaded, it does not earn its place with additional useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, nested objects, no output schema), the one-sentence description is insufficient. It omits details about return format, pagination usage, and typical use cases, leaving the agent with limited contextual information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter documented. The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search') and the resource ('Diffusion commits'), which is specific to Phabricator's code repository. This distinguishes it from sibling tools like phabricator_revision_search or phabricator_task_search, though it does not elaborate on what Diffusion is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Given the many search tools among siblings (e.g., phabricator_diff_search, phabricator_revision_search), explicit usage context is missing.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Thread title | |
| topic | No | Room topic/description | |
| message | No | Initial message (supports Remarkup) | |
| participantPHIDs | No | Participant user PHIDs to add |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Room monogram (e.g., "Z123"), numeric ID, or PHID | |
| title | No | New room title | |
| topic | No | Room topic/description | |
| addParticipantPHIDs | No | Participant PHIDs to add | |
| removeParticipantPHIDs | No | Participant PHIDs to remove | |
| comment | No | Send a message alongside the edit (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| roomID | No | Numeric room ID (provide this or roomPHID) | |
| roomPHID | No | Room PHID (provide this or roomID) | |
| limit | No | Maximum messages to return | |
| offset | No | Result offset for pagination |
TDQS
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.
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.
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.
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.
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.
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_searchC
Search Conpherence chat rooms/threads
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "participant" | |
| constraints | No | Search constraints | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as pagination, rate limits, or return format. For a search tool, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence, but it lacks substance beyond the basic purpose. Could be expanded without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 parameters, nested objects, and no output schema, the description is insufficient. It does not explain how to use constraints or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 6 parameters with descriptions (100% coverage). Description adds no extra meaning beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search Conpherence chat rooms/threads' with a specific verb and resource. It distinguishes from sibling tools like phabricator_conpherence_read and phabricator_conpherence_send, but could be more precise about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like phabricator_conpherence_read or other search tools. Missing when-not and exclusion criteria.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Room monogram (e.g., "Z123"), numeric ID, or PHID | |
| message | Yes | Message text (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| diffID | Yes | The diff ID (numeric, e.g., 1392561). Use phabricator_diff_search to find this from a revision. |
TDQS
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.
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.
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.
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.
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.
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_diff_searchB
Search Differential diffs (code change snapshots within a revision). A revision may have multiple diffs as it gets updated.
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order: "newest", "oldest" | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention that the tool is read-only, requires authentication, or has rate limits. Pagination cursor parameters exist but no behavior description. The description adds little beyond stating what it searches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, very concise, and front-loaded. Every word serves a purpose, but it could benefit from a bit more information without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and no annotations, the description is too minimal. It explains what diffs are but lacks details on return values, pagination behavior, or usage context. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter is already documented. The description adds no additional parameter context. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches 'Differential diffs' and explains they are code change snapshots within a revision. This specific verb and resource distinction helps differentiate from sibling tools like phabricator_revision_search or phabricator_commit_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., when to search diffs instead of revisions). The description only provides minimal context about revisions having multiple diffs, but no explicit when/when-not or alternative recommendations.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Document slug, PHID, or ID (e.g., "projects/myproject/") | |
| comment | Yes | Comment text (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Document slug/path (e.g., "projects/myproject/") | |
| title | Yes | Document title | |
| content | Yes | Document content (Remarkup) | |
| description | No | Edit description/summary |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Document slug/path (e.g., "projects/myproject/") | |
| title | No | New document title | |
| content | No | New document content (Remarkup) | |
| description | No | Edit description/summary |
TDQS
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.
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.
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.
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.
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.
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_document_searchC
Search Phriction wiki documents
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as pagination, read-only status, rate limits, or output format. The schema hints at pagination via 'after'/'before' parameters, but the description offers no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence, concise and front-loaded. However, it could be slightly expanded to include high-level usage context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a rich schema, the description fails to explain return values, pagination behavior, or how to combine constraints. For a tool with many parameters and no output schema, the description is insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself adds no additional meaning beyond the schema; it merely restates the tool's purpose. No parameter-specific explanation is provided in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'Phriction wiki documents'. It distinguishes from sibling tools (e.g., phabricator_blog_search) by mentioning the specific resource, but lacks additional specificity about types of searches supported.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_document_create for creating documents). The description does not mention prerequisites, exclusions, or comparison with siblings.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| filterPHIDs | No | Only show activity involving these PHIDs (user, project, task, etc.) | |
| view | No | Output format: "data" (structured, default), "text" (human-readable), "html" (rendered HTML), "html-summary" (title only) | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for pagination (chronological key from previous results) | |
| before | No | Cursor for reverse pagination |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | File ID (provide this or phid) | |
| phid | No | File PHID (provide this or id) |
TDQS
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.
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.
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.
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.
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.
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_searchC
Search for files in Phabricator
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "authored" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose any behavioral traits like read-only nature, destructive actions, rate limits, or pagination details. It only repeats the tool's name effectively, relying entirely on the input schema for parameter-level behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks substance. It is not verbose, but it does not add sufficient value to earn a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain return values or behavior. For a tool with 7 parameters, including nested objects and no required parameters, the description is incomplete. It fails to mention pagination, result order, or how constraints interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search for files in Phabricator', which is a clear verb+resource but very generic. It does not specify the type of search (e.g., by name, constraints, or built-in queries) and does not distinguish it from other search tools among siblings like phabricator_task_search or phabricator_document_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_file_info or phabricator_file_upload. There is no mention of prerequisites, context, or when not to use it.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filename with extension (e.g. "screenshot.png") | |
| data_base64 | Yes | Base64-encoded file content | |
| viewPolicy | No | File visibility policy (e.g., "public", "users", or a custom policy PHID) | |
| canCDN | No | Whether the file can be served over CDN (for public assets) |
TDQS
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.
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.
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.
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.
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.
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_owners_searchA
Search Owners packages (code ownership). Find who owns a code path or list ownership packages.
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active", "authority" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read-like search operation, but does not disclose authentication needs, rate limits, or pagination behavior beyond schema. Lacks explicit statement of being read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the primary purpose. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description does not describe the return format or fields, though it states the result type. With 7 parameters and nested objects, it could provide more context about available filters and pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already documents parameters. The description adds minimal extra meaning, only hinting at 'paths' or 'name' use cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Owners packages for code ownership, with two specific use cases: finding who owns a code path or listing packages. It is distinct from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (find ownership), but does not provide explicit guidance on when to use this tool vs. alternatives, nor does it mention when not to use it. No exclusions or comparisons with siblings.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Paste title | |
| content | Yes | Paste content | |
| language | No | Syntax highlighting language | |
| status | No | Status: active or archived | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add | |
| addProjectPHIDs | No | Project PHIDs to tag |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Paste PHID or ID (e.g., "P123") | |
| title | No | New title | |
| content | No | New content | |
| language | No | Syntax highlighting language | |
| status | No | Status: active or archived | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add | |
| removeSubscriberPHIDs | No | Subscriber PHIDs to remove | |
| addProjectPHIDs | No | Project PHIDs to add | |
| removeProjectPHIDs | No | Project PHIDs to remove | |
| comment | No | Add a comment alongside the edit (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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_paste_searchC
Search Phabricator pastes
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active", "authored" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose behavioral traits such as pagination, maximum limit, read-only nature, authentication requirements, or what is returned. The word 'Search' implies a read operation but provides no additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (three words), but it lacks substance. While not verbose, it misses the opportunity to add value. A sentence or two would improve informativeness without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (7 parameters, nested objects) and lack of output schema, the description should explain what the tool returns or how it behaves. It does not, leaving the agent without guidance on response format or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains each parameter. The overall description adds no extra meaning beyond what the schema provides, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Search Phabricator pastes', which combines a specific verb and resource. It distinguishes from sibling search tools like phabricator_task_search by focusing on pastes. However, it does not elaborate on the scope or features beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Siblings include other search tools and paste-specific tools (create, edit), but the description offers no context for tool selection.
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")
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | Names to look up (e.g., ["T123", "D456", "@john"]) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| phids | Yes | PHIDs to query |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | No | Project PHID or ID. Omit to create a new project. | |
| name | No | New name | |
| description | No | Project description (supports Remarkup) | |
| icon | No | New icon | |
| color | No | New color | |
| addMemberPHIDs | No | Add members | |
| removeMemberPHIDs | No | Remove members | |
| space | No | Space PHID (for multi-space installations) | |
| parent | No | Parent project PHID (to create as a subproject) | |
| milestone | No | Parent project PHID (to create as a milestone of that project) | |
| slug | No | Project URL slug (replaces ALL existing slugs with this one) |
TDQS
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.
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.
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.
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.
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.
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_project_searchC
Search Phabricator projects
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active" (non-archived), "joined", "watching" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
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 read-only status, pagination behavior, rate limits, or required permissions. The agent cannot infer important safety or performance characteristics from the description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, given the tool's complexity (many parameters, nested objects), a slightly more detailed description could improve usability without harming conciseness. Still, it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is very incomplete for a tool with 7 parameters and no output schema. It does not explain return values, pagination, or how to combine constraints. The agent would need to rely solely on the schema, which may not provide full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description in the schema. The tool description itself adds no additional meaning to the parameters, but the schema already handles that. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search Phabricator projects' clearly states the verb and resource, but it lacks differentiation from sibling search tools like phabricator_blog_search. The name itself includes 'project', so it's reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. There is no information on when to use this tool versus alternatives, nor any mention of when not to use it. The single sentence does not help the agent decide between this and other project-related tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to browse (default: "/") | |
| repository | No | Repository callsign, short name, or PHID | |
| commit | No | Commit hash or branch name (default: HEAD). Pass branch names here. | |
| needValidityOnly | No | Only check path validity without loading the full tree | |
| limit | No | Maximum entries to return | |
| offset | No | Result offset for pagination |
TDQS
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.
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.
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.
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.
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.
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_code_searchB
Search (grep) file contents within a Diffusion repository
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory path to search within (default: root) | |
| repository | Yes | Repository callsign, short name, or PHID | |
| query | Yes | Search query / pattern | |
| commit | No | Commit hash or branch (default: HEAD) | |
| branch | No | Branch name | |
| limit | No | Maximum results (max 100) | |
| offset | No | Result offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. The description only says 'grep', omitting details like case sensitivity, regex support, result structure, or performance implications. The minimal phrasing leaves agents uncertain about search behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence without redundancy. However, for a tool with 7 parameters, it could be slightly more structured to include key distinguishing notes without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is too brief. It does not explain return values, pagination behavior, or how to interpret results, leaving significant gaps for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, setting a baseline of 3. The description does not add any additional semantics beyond what each parameter's description already provides (e.g., path, repository, query).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool does a 'Search (grep) file contents within a Diffusion repository', which is a specific verb and resource. It distinguishes itself from sibling tools like phabricator_repository_browse (directory listing) and phabricator_commit_search (commit metadata) by focusing on file content search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_repository_browse or phabricator_repository_file_content. There are no examples, prerequisites, or exclusions mentioned.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | No | Repository PHID, ID, callsign, or short name (omit to create new) | |
| vcs | No | Version control system (required for creation) | |
| name | No | Repository name | |
| callsign | No | Repository callsign (short uppercase identifier) | |
| shortName | No | Repository short name (URL slug) | |
| description | No | Repository description (Remarkup) | |
| defaultBranch | No | Default branch name | |
| status | No | Repository status | |
| addProjectPHIDs | No | Project PHIDs to add | |
| removeProjectPHIDs | No | Project PHIDs to remove | |
| space | No | Space PHID (for multi-space installations) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path in the repository (e.g., "src/index.ts") | |
| repository | No | Repository callsign, short name, or PHID | |
| commit | Yes | Commit hash or branch name | |
| branch | No | Branch name | |
| timeout | No | Query timeout in seconds | |
| byteLimit | No | Maximum file size in bytes to return |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory path in the repository | |
| repository | No | Repository callsign, short name, or PHID | |
| commit | Yes | Commit hash or branch to start from | |
| branch | No | Branch name | |
| against | No | Compare against another commit | |
| needDirectChanges | No | Include direct change info per path entry | |
| needChildChanges | No | Include child change info per path entry | |
| limit | No | Maximum results (default: 100) | |
| offset | No | Result offset for pagination (default: 0) |
TDQS
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.
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.
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.
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.
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.
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_repository_searchC
Search Diffusion repositories
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as pagination behavior, returned data structure, or any side effects. The agent receives no insight beyond the bare verb 'search'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 words), which is positive, but it lacks any structure or prioritization of information. It sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, and the presence of 7 parameters and nested objects, the description is severely incomplete. It does not explain return values, pagination, or how to effectively use constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents parameters. The description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Diffusion repositories, which directly conveys the tool's purpose. However, among many sibling search tools (e.g., phabricator_commit_search, phabricator_revision_search), it does not differentiate itself from similar tools like phabricator_repository_browse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of suitable scenarios, prerequisites, or when to avoid using it.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Revision PHID or ID (e.g., "D123") | |
| title | No | New title | |
| summary | No | New summary | |
| testPlan | No | New test plan | |
| addReviewerPHIDs | No | Add reviewers. Prefix with "blocking(PHID)" to add as blocking reviewer | |
| removeReviewerPHIDs | No | Remove reviewers | |
| setReviewerPHIDs | No | Replace all reviewers with this list. Prefix with "blocking(PHID)" for blocking | |
| addProjectPHIDs | No | Add projects | |
| removeProjectPHIDs | No | Remove projects | |
| comment | No | Add a comment | |
| action | No | Revision action to take. Each action is sent as its own transaction type with value true. | |
| draft | No | Hold revision as draft (true) or release from draft (false) | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add | |
| removeSubscriberPHIDs | No | Subscriber PHIDs to remove | |
| repositoryPHID | No | Repository PHID to associate with the revision | |
| addTaskPHIDs | No | Maniphest task PHIDs to associate | |
| removeTaskPHIDs | No | Maniphest task PHIDs to remove | |
| addParentPHIDs | No | Parent revision PHIDs to add (dependencies) | |
| removeParentPHIDs | No | Parent revision PHIDs to remove | |
| addChildPHIDs | No | Child revision PHIDs to add (dependents) | |
| removeChildPHIDs | No | Child revision PHIDs to remove |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| revisionID | Yes | Numeric revision ID (e.g., 123). Do not include the "D" prefix. | |
| diffID | Yes | Diff ID to comment on. Use phabricator_diff_search to find this. | |
| filePath | Yes | Path to the file being commented on | |
| lineNumber | Yes | Line number in the file | |
| lineLength | No | Number of lines the comment spans (default: 0 for single line) | |
| content | Yes | Comment text (supports Remarkup) | |
| isNewFile | No | Whether the line number refers to the new file (true) or old file (false). Default: true |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| revision_id | Yes | Numeric revision ID (e.g., 123). Do not include the "D" prefix. |
TDQS
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.
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.
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.
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.
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.
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_revision_searchB
Search Differential revisions (code reviews)
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active", "authored" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order: "newest", "oldest", "updated", "relevance" | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only says 'Search Differential revisions (code reviews)'. It does not disclose read-only nature, pagination behavior, rate limits, or what data is returned. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 5-word sentence. It is concise but overly minimal, lacking structure or front-loading of key information. It is not wasteful but could be improved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (many parameters, nested constraints, no output schema), the description is incomplete. It does not explain return format, pagination, or effective usage of constraints, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what is in the schema, meriting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search Differential revisions (code reviews)' clearly states the verb (search), resource (revisions), and context (code reviews). It effectively distinguishes from sibling tools like phabricator_revision_edit or phabricator_commit_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Sibling tools include many other search tools (e.g., phabricator_commit_search, phabricator_diff_search), but the description offers no differentiation or situational advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_tag_searchC
List tags in a Diffusion repository
| Name | Required | Description | Default |
|---|---|---|---|
| repository | Yes | Repository callsign, short name, or PHID | |
| branch | No | Branch name | |
| names | No | Filter to specific tag names | |
| commit | No | Show tags reachable from this commit | |
| needMessages | No | Include tag messages in results | |
| limit | No | Maximum results (max 100) | |
| offset | No | Result offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description must cover behavioral traits. It does not specify whether the operation is read-only, whether authentication is needed, or any side effects. The description is too brief to convey 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is efficient. However, given the tool has 7 parameters and a rich domain (Diffusion tags), slightly more context could be warranted without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain what a tag is or how parameters like 'commit' or 'branch' affect results. The description lacks sufficient detail for an agent to understand the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema, effectively restating the tool's purpose. No parameter details or examples are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (List) and resource (tags in a Diffusion repository). While the name and description align, there is no explicit differentiation from sibling tools like phabricator_branch_search or phabricator_commit_search, which could cause confusion. A 4 is given because the purpose is clear but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention any prerequisites, exclusions, or typical usage scenarios. This leaves the agent without context for selection.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Task PHID or ID (e.g., "T123") | |
| comment | Yes | Comment text (supports Remarkup) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task title | |
| description | No | Task description (supports Remarkup) | |
| ownerPHID | No | Assigned owner PHID | |
| priority | No | Priority keyword (unbreak, triage, high, normal, low, wish) or numeric value | |
| projectPHIDs | No | Project PHIDs to tag | |
| subscriberPHIDs | No | Subscriber PHIDs | |
| status | No | Initial status | |
| subtype | No | Task subtype (e.g. "default", "incident") | |
| parentPHIDs | No | Parent task PHIDs | |
| subtaskPHIDs | No | Subtask PHIDs | |
| commitPHIDs | No | Commit PHIDs to associate (for actual commits only, not revisions) | |
| revisionIDs | No | Differential revision IDs to link (e.g. ["D223125"] or ["PHID-DREV-xxx"]). Creates a bidirectional link between the revision and the task. | |
| points | No | Story points value (if points are enabled on this instance) | |
| space | No | Space PHID to place the task in (for multi-space installations) | |
| comment | No | Initial comment on the task (supports Remarkup) | |
| customFields | No | Custom 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
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Task PHID or ID (e.g., "T123" or PHID) | |
| title | No | New title | |
| description | No | New description | |
| ownerPHID | No | New owner PHID (null to unassign) | |
| priority | No | New priority | |
| status | No | New status: open, resolved, wontfix, invalid, spite, duplicate | |
| subtype | No | Task subtype (e.g. "default", "incident") | |
| addProjectPHIDs | No | Project PHIDs to add | |
| removeProjectPHIDs | No | Project PHIDs to remove | |
| addSubscriberPHIDs | No | Subscriber PHIDs to add | |
| removeSubscriberPHIDs | No | Subscriber PHIDs to remove | |
| addParentPHIDs | No | Parent task PHIDs to add | |
| removeParentPHIDs | No | Parent task PHIDs to remove | |
| addSubtaskPHIDs | No | Subtask PHIDs to add | |
| removeSubtaskPHIDs | No | Subtask PHIDs to remove | |
| addCommitPHIDs | No | Commit PHIDs to associate (for actual commits only, not revisions) | |
| removeCommitPHIDs | No | Commit PHIDs to disassociate (for actual commits only, not revisions) | |
| addRevisionIDs | No | Differential revision IDs to link (e.g. ["D223125"] or ["PHID-DREV-xxx"]). Creates a bidirectional link between the revision and the task. | |
| removeRevisionIDs | No | Differential revision IDs to unlink (e.g. ["D223125"] or ["PHID-DREV-xxx"]). | |
| points | No | Story points value (null to clear) | |
| columnPHID | No | Move to workboard column | |
| space | No | Space PHID to move the task to (for multi-space installations) | |
| comment | No | Add a comment alongside the edit (supports Remarkup) | |
| customFields | No | Custom 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
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.
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.
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.
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.
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.
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_task_priority_searchA
List all available task priorities configured on this Phabricator instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description adequately indicates a read-only listing operation. No contradictory behavior disclosed, but additional context like safety or authentication could be added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence, front-loaded, no waste. Perfectly sized for the simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and no output schema. Description fully covers what the tool does and returns, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4. Description adds value by specifying the output is a list of priorities, not tasks themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all available task priorities, using specific verb and resource. Distinguishes from siblings like phabricator_task_search and phabricator_task_status_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives. Purpose implies it's for retrieving valid priority values, but lacks explicit context 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_searchB
Search Maniphest tasks with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "open", "authored", "assigned", "subscribed" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments to include | |
| order | No | Result order: "priority", "updated", "outdated", "newest", "oldest", "closed", "title", "relevance" | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It correctly implies a read-only search but does not mention pagination, rate limits, or the nature of the return data. The explanation of 'optional filters' is vague; the schema provides details but the description 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loads the purpose. However, it could be expanded with additional context without being overly verbose. Still, it earns a 4 for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (7 parameters with nested constraints and no output schema), the description is too minimal. It does not provide an overview of typical use cases, how parameters combine, or what the return format is. The schema is rich but the description lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds no additional meaning beyond what is in the schema, and no inter-parameter dependencies or usage hints are provided. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'Maniphest tasks', and mentions 'optional filters' which accurately reflects the capabilities. It distinguishes from sibling tools like phabricator_task_create or phabricator_commit_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when to prefer a different search tool or how to choose between queryKey and constraints. Given the extensive sibling list, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_task_status_searchA
List all available task statuses configured on this Phabricator instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It indicates a read-only list operation, which is clear. However, it does not disclose any performance implications, caching behavior, or output format beyond 'list'. For a simple config query this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with key information. Every word contributes meaning, and there is no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 sufficiently covers the tool's purpose. It implies the return is a list of statuses, which is enough for an agent to understand. However, a brief note on output format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema description coverage is 100%. The description adds value by stating the scope ('all available task statuses'). Per calibration, 0 parameters earns a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'List' and specifies the resource 'all available task statuses configured on this Phabricator instance'. This distinguishes it from sibling tools like 'phabricator_task_search' (which lists tasks) and 'phabricator_task_priority_search' (which lists priorities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives. Given the large number of sibling tools, explicit context (e.g., 'Use this to fetch the set of possible statuses before filtering tasks') would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_transaction_searchA
Search transactions (comments, status changes, etc.) on a Phabricator object (e.g., "D123", "T456")
| Name | Required | Description | Default |
|---|---|---|---|
| objectIdentifier | Yes | Object ID (e.g., "D123", "T456") or PHID to get transactions for | |
| constraints | No | Search constraints | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description identifies the operation as a search (read) and lists transaction types (comments, status changes), but does not disclose pagination behavior or error handling; no annotations are provided to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action 'Search' and includes key details; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is adequate for a search tool with well-documented schema but does not explain return value structure or provide behavioral context beyond the schema; no output schema exists to fill gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3; description adds context for the primary parameter (objectIdentifier) but does not enhance understanding of constraints or pagination parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Search', resource 'transactions on a Phabricator object', and provides examples 'D123', 'T456', distinguishing it from sibling tools that search for objects themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for retrieving transactions on a specific object, but lacks explicit guidance on when to use versus alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phabricator_user_searchC
Search Phabricator users
| Name | Required | Description | Default |
|---|---|---|---|
| queryKey | No | Built-in query: "all", "active", "approval" | |
| constraints | No | Search constraints | |
| attachments | No | Data attachments | |
| order | No | Result order | |
| limit | No | Maximum results (max 100) | |
| after | No | Cursor for next-page pagination | |
| before | No | Cursor for previous-page pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral traits such as read-only nature, pagination behavior, performance characteristics, or required permissions. The description does not contradict annotations since none exist, but offers no transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and front-loaded. However, it is so brief that it sacrifices substance; a slightly longer description with key context would be more helpful while remaining concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, nested objects, and no output schema, the description is far too minimal. It does not explain search behavior, pagination (parameters 'after' and 'before'), or return structure, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters, so the description does not need to add parameter details. The tool's description adds nothing beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Phabricator users, which distinguishes it from sibling search tools focused on other resources like tasks or revisions. However, it does not specify any scope or filtering nuance, making it less specific than higher-scoring examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The agent receives no information about context, prerequisites, or trade-offs, leaving it to guess based on the tool name alone.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
60 tool updates
v2.0.19- First observed
phabricator_audit_query - First observed
phabricator_blog_edit - First observed
phabricator_blog_post_add_comment - First observed
phabricator_blog_post_create - First observed
phabricator_blog_post_edit - First observed
phabricator_blog_post_search - First observed
phabricator_blog_search - First observed
phabricator_branch_search - First observed
phabricator_build_command - First observed
phabricator_build_log_search - First observed
phabricator_build_plan_search - First observed
phabricator_build_search - First observed
phabricator_build_target_search - First observed
phabricator_buildable_search - First observed
phabricator_column_search - First observed
phabricator_commit_search - First observed
phabricator_conpherence_create - First observed
phabricator_conpherence_edit - First observed
phabricator_conpherence_read - First observed
phabricator_conpherence_search - First observed
phabricator_conpherence_send - First observed
phabricator_diff_raw - First observed
phabricator_diff_search - First observed
phabricator_document_add_comment - First observed
phabricator_document_create - First observed
phabricator_document_edit - First observed
phabricator_document_search - First observed
phabricator_feed_query - First observed
phabricator_file_info - First observed
phabricator_file_search - First observed
phabricator_file_upload - First observed
phabricator_owners_search - First observed
phabricator_paste_create - First observed
phabricator_paste_edit - First observed
phabricator_paste_search - First observed
phabricator_phid_lookup - First observed
phabricator_phid_query - First observed
phabricator_project_edit - First observed
phabricator_project_search - First observed
phabricator_repository_browse - First observed
phabricator_repository_code_search - First observed
phabricator_repository_edit - First observed
phabricator_repository_file_content - First observed
phabricator_repository_file_history - First observed
phabricator_repository_search - First observed
phabricator_revision_edit - First observed
phabricator_revision_inline_comment - First observed
phabricator_revision_paths - First observed
phabricator_revision_search - First observed
phabricator_tag_search - First observed
phabricator_task_add_comment - First observed
phabricator_task_create - First observed
phabricator_task_edit - First observed
phabricator_task_priority_search - First observed
phabricator_task_search - First observed
phabricator_task_status_search - First observed
phabricator_transaction_search - First observed
phabricator_user_search - First observed
phabricator_user_whoami - First observed
phabricator_version
TDQS
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.
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.
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.
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
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
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Connects AI assistants to QCDatabase.AI for everyday construction quality-control work.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered frontend code review and unit test generation for Phabricator diffs, supporting React/TypeScript analysis, multi-dimensional code review (performance, security, accessibility, i18n), and intelligent test case generation with Vitest/Jest support.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Phabricator for task management and code review workflows, including viewing and commenting on tasks, managing differential revisions, and providing intelligent review analysis with code context.7MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Bitbucket Cloud and self-hosted instances for pull request reviews, code search, repository operations, and managing PR comments and approvals.19GPL 3.0
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Bitbucket Server/Data Center for reviewing pull requests, managing repositories, searching users, and more.1494MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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