phabricator-mcp
An MCP server that wraps Phabricator’s Conduit API, exposing tools to read and write across Phabricator applications.
Search, create, edit, and comment on Maniphest tasks; list statuses and priorities.
Search/edit Differential revisions, read raw diffs, list changed paths, and manage inline comments including drafts, publishing, replies, suggestions, and Done state.
Search repositories and commits; browse trees; read files; list branches/tags; view file history; grep code; create/edit repositories.
Search users, projects, and workboard columns; create/edit projects.
Search/create/edit pastes; search/create/edit wiki documents and add comments.
Search/create/edit Phame blogs and posts; add comments to posts.
Search transactions and edit your published comments.
Upload/search files and get file metadata.
Search Harbormaster buildables, builds, targets, logs, and plans; report build status with unit/lint results.
Search Owners packages and the activity feed.
Create/edit/read/send Conpherence chat room messages.
Query commit audits, look up/query PHIDs, get the current user, and get server version.
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 "Deploy 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_revision_inline_search",
"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_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
The server hides tools that Phabricator cannot serve, such as the Conpherence tools when Conpherence is not installed. It learns which Conduit methods the instance offers from conduit.query and caches the list in ~/.cache/phabricator-mcp/, so later starts don't wait for Phabricator. Each start refreshes the cache in the background, and if the list has changed, for example after an upgrade, the server tells the client its tool list changed. On the first start the server waits up to 5 seconds for the list; if it gets no answer, every tool is listed.
Task Management (Maniphest)
Tool | Description |
| Search tasks with filters (status, assignee, project, etc.) |
| Create a new task |
| Edit an existing task, including its due date |
| Add a comment to a task |
| List all available task statuses on the instance |
| List all available task priorities on the instance |
phabricator_task_edit's dueDate sets the Deadline field of Freelancer's Phabricator extension (maniphest:deadline in phabricator_task_search): a YYYY-MM-DD date with the full year, read as the start of that day in your Phabricator timezone; null removes it. An epoch is also accepted, but only to copy one back from maniphest:deadline.epoch: a computed one is easily a day out in another timezone. A Phabricator without that field, or with a version of the extension that cannot set it through Conduit, refuses the whole edit (has invalid type "maniphest:deadline") and changes nothing.
Code Reviews (Differential)
Tool | Description |
| Search code review revisions |
| Edit a revision (accept, reject, abandon, add reviewers, comment, etc.) |
| Create a draft inline comment on a line or character range, optionally with a suggested edit, or a threaded reply to a published one |
| List a revision's inline comments with side, range, suggested edit and Done state |
| Publish your draft inline comments as one review, like "Submit" in the web UI |
| Check or uncheck "Done" on an inline comment |
| Replace the text and suggested edit of your draft inline comment |
| Delete your draft inline comment |
| 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 |
The phabricator_revision_inline_* tools call the differential.inline.* Conduit methods, which stock Phabricator does not ship. Without them, phabricator_revision_inline_comment still creates plain line comments through differential.createinline, but those drafts cannot be published through Conduit. Replies (replyToInlineID) need a version of the extension that supports them; an older one refuses the call (does not define these parameters: 'replyToInlineID') and creates nothing.
Repositories (Diffusion)
Tool | Description |
| Search repositories |
| Search commits |
| Browse a repository directory tree |
| Read a file's text from a repository, whole or by line range |
| 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 |
| Replace the text of your published comment on any object |
phabricator_transaction_comment_edit calls the transaction.comment.edit Conduit method, which stock Phabricator does not ship; the server hides the tool on an instance without it.
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 |
| Create a new chat room/thread, with you as a participant |
| 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"
"Set the due date of T12345 to 20 November 2026"
"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"
"Suggest an edit for lines 10-12 of src/config.ts in D6789, then publish my review"
"Reword my draft inline comment on src/config.ts in D6789, and delete the one on line 12"
"Address the unresolved inline comments on D6789"
"Reply to the inline comments on D6789 that ask me a question, then publish"
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"
"Fix the typo in my last comment on T12345"
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 test
npm run dev # watch modeSee CONTRIBUTING.md for how to check a change against a real Phabricator before opening a pull request.
Architecture
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
65 toolsphabricator_audit_queryARead-only
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.
Inputs: limit, offset, status, commitPHIDs, +1 more.
phabricator_blog_editADestructive
Create or edit a Phame blog. Omit objectIdentifier to create a new blog (name is required for creation).
Inputs: name, status, subtitle, parentSite, +6 more.
phabricator_blog_post_add_commentC
Add a comment to a Phame blog post
Inputs: comment (required), objectIdentifier (required).
phabricator_blog_post_createC
Create a new Phame blog post
Inputs: body (required), title (required), blogPHID (required), subtitle, +2 more.
phabricator_blog_post_editCDestructive
Edit an existing Phame blog post
Inputs: objectIdentifier (required), body, title, comment, +5 more.
phabricator_blog_post_searchCRead-only
Search Phame blog posts
Inputs: after, limit, order, before, +3 more.
phabricator_blog_searchCRead-only
Search Phame blogs
Inputs: after, limit, order, before, +3 more.
phabricator_branch_searchCRead-only
List branches in a Diffusion repository
Inputs: repository (required), limit, branch, closed, +3 more.
phabricator_buildable_searchBRead-only
Search Harbormaster buildables (objects that can be built, like revisions or commits)
Inputs: after, limit, order, before, +2 more.
phabricator_build_commandADestructive
Send a command to a Harbormaster build target. Report build status (pass/fail/work) with optional unit test and lint results.
Inputs: type (required), buildTargetPHID (required), lint, unit.
phabricator_build_log_searchARead-only
Search Harbormaster build logs (output from build steps). Use phabricator_build_target_search to find target PHIDs first.
Inputs: after, limit, order, before, +2 more.
phabricator_build_plan_searchBRead-only
Search Harbormaster build plans (CI pipeline configurations)
Inputs: after, limit, order, before, +2 more.
phabricator_build_searchCRead-only
Search Harbormaster builds (CI/build results)
Inputs: after, limit, order, before, +3 more.
phabricator_build_target_searchCRead-only
Search Harbormaster build targets (individual build steps within a build)
Inputs: after, limit, order, before, +2 more.
phabricator_column_searchCRead-only
Search project workboard columns
Inputs: after, limit, order, before, +2 more.
phabricator_commit_searchCRead-only
Search Diffusion commits
Inputs: after, limit, order, before, +3 more.
phabricator_conpherence_createB
Create a Conpherence room; you are always a participant.
Inputs: title (required), topic, message, participantPHIDs.
phabricator_conpherence_editBDestructive
Edit a Conpherence chat room/thread. Rename it or manage participants.
Inputs: objectIdentifier (required), title, topic, comment, +2 more.
phabricator_conpherence_readARead-only
Read messages from a Conpherence chat room/thread (returned in reverse chronological order). Uses conpherence.querytransaction (the only Conduit method that returns message content).
Inputs: limit, offset, roomID, roomPHID.
phabricator_conpherence_sendB
Send a message to a Conpherence chat room/thread
Inputs: message (required), objectIdentifier (required).
phabricator_diff_rawARead-only
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.
Inputs: diffID (required).
phabricator_diff_searchBRead-only
Search Differential diffs (code change snapshots within a revision). A revision may have multiple diffs as it gets updated.
Inputs: after, limit, order, before, +3 more.
phabricator_document_add_commentB
Add a comment to a Phriction wiki document
Inputs: comment (required), objectIdentifier (required).
phabricator_document_createB
Create a new Phriction wiki document. Uses phriction.create (the only method that can create documents).
Inputs: slug (required), title (required), content (required), description.
phabricator_document_editBDestructive
Edit an existing Phriction wiki document title or content. Uses phriction.edit (the only method that can update document content).
Inputs: slug (required), title, content, description.
phabricator_document_searchCRead-only
Search Phriction wiki documents
Inputs: after, limit, order, before, +3 more.
phabricator_feed_queryBRead-only
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).
Inputs: view, after, limit, before, +1 more.
phabricator_file_infoARead-only
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).
Inputs: id, phid.
phabricator_file_searchCRead-only
Search for files in Phabricator
Inputs: after, limit, order, before, +3 more.
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}.
Inputs: data_base64 (required), name, canCDN, viewPolicy.
phabricator_owners_searchBRead-only
Search Owners packages (code ownership). Find who owns a code path or list ownership packages.
Inputs: after, limit, order, before, +3 more.
phabricator_paste_createC
Create a new Phabricator paste
Inputs: content (required), title, status, language, +2 more.
phabricator_paste_editCDestructive
Edit an existing Phabricator paste
Inputs: objectIdentifier (required), title, status, comment, +6 more.
phabricator_paste_searchCRead-only
Search Phabricator pastes
Inputs: after, limit, order, before, +3 more.
phabricator_phid_lookupBRead-only
Look up PHIDs by human-readable names (e.g., "T123", "D456", "@username")
Inputs: names (required).
phabricator_phid_queryARead-only
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).
Inputs: phids (required).
phabricator_project_editADestructive
Create or edit a Phabricator project. Omit objectIdentifier to create a new project (name is required for creation).
Inputs: icon, name, slug, color, +7 more.
phabricator_project_searchCRead-only
Search Phabricator projects
Inputs: after, limit, order, before, +3 more.
phabricator_repository_browseBRead-only
Browse a repository directory tree at a given path and commit/branch. Pass a branch name via the commit parameter.
Inputs: path, limit, commit, offset, +2 more.
phabricator_repository_code_searchBRead-only
Search (grep) file contents within a Diffusion repository
Inputs: query (required), repository (required), path, limit, +3 more.
phabricator_repository_editADestructive
Create or edit a Diffusion repository. To create, omit objectIdentifier and provide vcs + name.
Inputs: vcs, name, space, status, +7 more.
phabricator_repository_file_contentARead-only
Read a file's text at a path and commit/branch. Long files are paged: follow the closing note or set startLine/lineCount. A branch or other ref is resolved to a commit, which the note names so later pages read the same version. Binary files return metadata; files over byteLimit return tooHuge.
Inputs: path (required), commit (required), branch, timeout, +5 more.
phabricator_repository_file_historyBRead-only
Get commit history for a file or directory path in a Diffusion repository
Inputs: path (required), commit (required), limit, branch, +5 more.
phabricator_repository_searchCRead-only
Search Diffusion repositories
Inputs: after, limit, order, before, +3 more.
phabricator_revision_editBDestructive
Edit a Differential revision. Supports actions like accept, reject, abandon, request-review, plan-changes, and commandeer. Can also add/remove reviewers, subscribers, and comments.
Inputs: objectIdentifier (required), draft, title, action, +17 more.
phabricator_revision_inline_commentA
Create a draft inline comment on a Differential diff, optionally highlighting a character range and attaching a suggested edit, or a draft reply to a published inline comment (replyToInlineID). Drafts are visible only to you until you call phabricator_revision_inline_publish; a plain comment via phabricator_revision_edit does NOT publish them. Ranges, suggestions and replies need the differential.inline.* Conduit extension; without it, plain line comments fall back to differential.createinline.
Inputs: content (required), revisionID (required), diffID, filePath, +7 more.
phabricator_revision_inline_deleteADestructive
Delete your own draft inline comment. Published comments cannot be deleted. Needs the differential.inline.* Conduit extension.
Inputs: inlineID (required).
phabricator_revision_inline_doneADestructiveIdempotent
Check or uncheck "Done" on a Differential inline comment. Allowed for the revision author, or for the comment author while it is still a draft. A check by the revision author stays pending (isDonePending) until they next publish, e.g. with phabricator_revision_inline_publish. Needs the differential.inline.* Conduit extension.
Inputs: isDone (required), inlineID (required).
phabricator_revision_inline_editADestructiveIdempotent
Replace the text and suggested edit of your own draft inline comment, keeping its place in the diff. Published comments cannot be edited. Needs the differential.inline.* Conduit extension.
Inputs: content (required), inlineID (required), suggestionText.
phabricator_revision_inline_publishADestructive
Publish your draft inline comments on a Differential revision, with an optional top-level comment, as one review: the same as pressing "Submit" in the web UI. Also publishes pending "Done" changes you made as the revision author. Without inlineIDs, EVERY draft you have on the revision is published, including ones started in a browser. Needs "Can Edit" on the revision and the differential.inline.* Conduit extension. If a call times out, search before retrying: naming an already-published inline fails.
Inputs: revisionID (required), message, inlineIDs.
phabricator_revision_inline_searchARead-only
List inline comments on a Differential revision with their side (isNewFile), line range, character range, suggested edit and Done state. Returns every published comment plus your own drafts, newest first. Needs the differential.inline.* Conduit extension.
Inputs: revisionID (required), after, limit, before.
phabricator_revision_pathsBRead-only
Get the list of changed file paths for a Differential revision. Returns an array of file path strings.
Inputs: revision_id (required).
phabricator_revision_searchBRead-only
Search Differential revisions (code reviews)
Inputs: after, limit, order, before, +3 more.
phabricator_tag_searchCRead-only
List tags in a Diffusion repository
Inputs: repository (required), limit, names, branch, +3 more.
phabricator_task_add_commentB
Add a comment to a Maniphest task
Inputs: comment (required), objectIdentifier (required).
phabricator_task_createC
Create a new Maniphest task
Inputs: title (required), space, points, status, +12 more.
phabricator_task_editCDestructive
Edit an existing Maniphest task
Inputs: objectIdentifier (required), space, title, points, +21 more.
phabricator_task_priority_searchARead-only
List all available task priorities configured on this Phabricator instance
Inputs: no named parameters.
phabricator_task_searchCRead-only
Search Maniphest tasks with optional filters
Inputs: after, limit, order, before, +4 more.
phabricator_task_status_searchARead-only
List all available task statuses configured on this Phabricator instance
Inputs: no named parameters.
phabricator_transaction_comment_editADestructive
Edit your own published comment (saves a new version). Not for inline comments.
Inputs: content (required), transactionPHID (required), objectIdentifier (required).
phabricator_transaction_searchARead-only
Search transactions (comments, status changes, etc.) on a Phabricator object (e.g., "D123", "T456")
Inputs: objectIdentifier (required), after, limit, before, +1 more.
phabricator_user_searchCRead-only
Search Phabricator users
Inputs: after, limit, order, before, +3 more.
phabricator_user_whoamiARead-only
Get information about the current authenticated user
Inputs: no named parameters.
phabricator_versionARead-only
Get the version of the running phabricator-mcp server
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 65 tools
Tools are strongly namespaced by application (task_, revision_, diff_, repository_, document_, blog_, build_, conpherence_) so most are trivially distinguishable. Minor overlaps remain: revision_inline_comment vs revision_edit (which also adds comments), transaction_search vs the inline/search tools for comments, and phid_lookup vs phid_query are near-neighbors that require reading descriptions to separate.
The set overwhelmingly follows a phabricator_<domain>_<verb>_<noun> snake_case convention (task_create, revision_search, build_target_search), which is predictable. Deviations exist: version, user_whoami, diff_raw, revision_paths, phid_lookup/phid_query, and inconsistent use of search vs query (feed_query, audit_query, but task_search).
65 tools is far beyond a manageable surface for an agent, even accounting for Phabricator's breadth across ~11 applications. Individual applications are reasonably scoped, but the aggregate is too large and includes deep clusters (five differential.inline.* tools alone) that push selection cost high.
Coverage spans tasks, revisions, diffs, repositories, users, projects, pastes, wiki docs, blogs, files, builds, owners, feed, chat, and audit — genuinely broad with create/edit/search per domain. Notable gaps: no way to create a Differential revision or upload a diff (create-side of code review is missing), and project columns are search-only (no column create/edit), plus no user or flag editing.
Maintenance
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…
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
- AlicenseNot 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.1MIT
- 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
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to Bitbucket Server/Data Center for reviewing pull requests, managing repositories, searching users, and more.149 npm4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Atlassian Confluence and Jira for searching, updating, and managing content and issues.MIT