@freelancercom/phabricator-mcp
v1.0.5
Published
MCP server for Phabricator Conduit API - manage tasks, code reviews, repositories, and more
Readme
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
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/[email protected]) 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_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",
"mcp__phabricator__phabricator_version"
]
}
}To allowlist all tools including write operations, use "mcp__phabricator__*" instead.
Available Tools
Task Management (Maniphest)
| Tool | Description |
|------|-------------|
| phabricator_task_search | Search tasks with filters (status, assignee, project, etc.) |
| phabricator_task_create | Create a new task |
| phabricator_task_edit | Edit an existing task |
| phabricator_task_add_comment | Add a comment to a task |
Code Reviews (Differential)
| Tool | Description |
|------|-------------|
| phabricator_revision_search | Search code review revisions |
| phabricator_revision_edit | Edit a revision (add reviewers, comment, etc.) |
| phabricator_get_raw_diff | Get the raw diff/patch content for a diff by ID |
| phabricator_diff_search | Search diffs |
Repositories (Diffusion)
| Tool | Description |
|------|-------------|
| phabricator_repository_search | Search repositories |
| phabricator_commit_search | Search commits |
Users
| Tool | Description |
|------|-------------|
| phabricator_user_whoami | Get current authenticated user |
| phabricator_user_search | Search users |
Projects
| Tool | Description |
|------|-------------|
| phabricator_project_search | Search projects |
| phabricator_project_edit | Edit a project |
| phabricator_column_search | Search workboard columns |
Pastes
| Tool | Description |
|------|-------------|
| phabricator_paste_search | Search pastes |
| phabricator_paste_create | Create a paste |
Wiki (Phriction)
| Tool | Description |
|------|-------------|
| phabricator_document_search | Search wiki documents |
| phabricator_document_edit | Edit a wiki document |
Blogs (Phame)
| Tool | Description |
|------|-------------|
| phabricator_blog_search | Search Phame blogs |
| phabricator_blog_post_search | Search blog posts |
| phabricator_blog_post_create | Create a new blog post |
| phabricator_blog_post_edit | Edit an existing blog post |
| phabricator_blog_post_add_comment | Add a comment to a blog post |
Transactions
| Tool | Description |
|------|-------------|
| phabricator_transaction_search | Search transactions (comments, status changes, etc.) on any object |
PHID Utilities
| Tool | Description |
|------|-------------|
| phabricator_phid_lookup | Look up PHIDs by name (e.g., "T123", "@username") |
| phabricator_phid_query | Get details about PHIDs |
Server
| Tool | Description |
|------|-------------|
| phabricator_version | Get the version of the running phabricator-mcp server |
Usage
Once connected, just ask your AI assistant to perform Phabricator tasks in natural language:
Tasks
- "Show my assigned tasks"
- "Create a task titled 'Fix login bug' in project Backend"
- "Add a comment to T12345 saying the fix is ready for review"
- "Close task T12345"
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"
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
