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

27 tools across 9 Phabricator apps

Maniphest

  • task_search · task_create
  • task_edit · task_add_comment

Differential

  • revision_search · revision_edit
  • get_raw_diff · diff_search

Diffusion

  • repository_search
  • commit_search

Users & Projects

  • user_whoami · user_search
  • project_search · project_edit
  • column_search

Phriction & Pastes

  • document_search · document_edit
  • paste_search · paste_create

Phame

  • blog_search · blog_post_search
  • blog_post_create · blog_post_edit
  • blog_post_add_comment

Transactions

  • transaction_search

PHID Utilities

  • phid_lookup · phid_query

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_revision_search",
      "mcp__phabricator__phabricator_diff_search",
      "mcp__phabricator__phabricator_get_raw_diff",
      "mcp__phabricator__phabricator_repository_search",
      "mcp__phabricator__phabricator_commit_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_phid_lookup",
      "mcp__phabricator__phabricator_phid_query",
      "mcp__phabricator__phabricator_transaction_search"
    ]
  }
}

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, revisions, wiki pages, blog posts, and more. 27 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.