phabricator-mcp

An MCP server that lets your AI assistant talk to Phabricator. Search tasks, review diffs, manage wikis — without leaving your editor.

$ claude mcp add --scope user phabricator -- npx @freelancercom/phabricator-mcp@latest
Added stdio MCP server phabricator with command: npx @freelancercom/phabricator-mcp@latest
$ claude
> show my open diffs

You have 3 open revisions:
  D1042 · Fix auth token refresh · Needs Review
  D1038 · Add rate limiting to API · Changes Planned
  D1035 · Update deployment docs · Accepted

Install

If you already have ~/.arcrc from Arcanist, that's all you need. Otherwise, pass your Phabricator URL and API token as env vars.

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

With env vars:

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

Add to ~/.codex/config.json:

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

Add to ~/.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-xxxxx"
        }
      }
    }
  }
}

Add to 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-xxxxx"
      }
    }
  }
}

Add to ~/.cursor/mcp.json:

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

Add to 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-xxxxx"
      }
    }
  }
}

59 tools across 15 Phabricator apps

Maniphest

  • task_search · task_create
  • task_edit · task_add_comment
  • task_status_search · task_priority_search

Differential

  • revision_search · revision_edit
  • revision_inline_comment
  • diff_raw · diff_search
  • revision_paths

Diffusion

  • repository_search · commit_search
  • repository_browse · repository_file_content
  • branch_search · tag_search
  • repository_file_history · repository_code_search
  • repository_edit

Users & Projects

  • user_whoami · user_search
  • project_search · project_edit
  • column_search

Phriction & Pastes

  • document_search · document_create
  • document_edit · document_add_comment
  • paste_search · paste_create · paste_edit

Phame

  • blog_search · blog_post_search
  • blog_post_create · blog_post_edit
  • blog_post_add_comment

Transactions

  • transaction_search

Files

  • file_upload · file_search
  • file_info

Harbormaster

  • buildable_search · build_search
  • build_target_search · build_log_search
  • build_command · build_plan_search

Owners

  • owners_search

Feed

  • feed_query

Conpherence

  • conpherence_search · conpherence_create
  • conpherence_edit · conpherence_read
  • conpherence_send

Audits

  • audit_query

PHID Utilities

  • phid_lookup · phid_query

Server

  • version

Upgrading

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

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

npx clear-npx-cache

Then restart your MCP client.

Migrating from github:freelancer/phabricator-mcp

If you previously installed using the GitHub URL, update your config to use the npm package instead. Replace github:freelancer/phabricator-mcp with @freelancercom/phabricator-mcp@latest in your args. For Claude Code:

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

Configuration

The server reads your Phabricator credentials from ~/.arcrc automatically. If you've already run arc install-certificate, you're done.

You can also use environment variables (they take precedence over .arcrc):

PHABRICATOR_URL=https://phabricator.example.com
PHABRICATOR_API_TOKEN=api-xxxxx

Get a token at Settings → Conduit API Tokens in your Phabricator instance.

Claude Code: allow read-only tools

By default Claude asks permission for every tool call. You can allowlist the read-only ones in ~/.claude/settings.json so only writes need confirmation:

{
  "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"
    ]
  }
}

Or just use "mcp__phabricator__*" to allow everything.

FAQ

Do I need to configure anything if I already use Arcanist?

No. The server reads ~/.arcrc automatically. Just install and go.

Which editors are supported?

Anything that speaks MCP: Claude Code, Codex, opencode, VS Code (with Claude extension), Cursor, and GitHub Copilot. If your tool supports MCP, it'll work.

Can it modify tasks and revisions, or is it read-only?

Both. You can search, create, edit, and comment on tasks (including custom fields), revisions, wiki pages, blog posts, and more. 59 tools total.

What is MCP?

Model Context Protocol is an open standard for connecting AI assistants to external tools. Think of it as a USB port for AI — one protocol, many tools.