Phabricator只读任务访问服务

一个封装Phabricator Conduit API的轻量级MCP服务器,提供只读任务访问功能,专为Claude Code集成设计。

  • by farefray
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 farefray/phabricator-mcp

使用说明

微控制器

包装Phabricator Conduct API用于只读任务访问的最小MCP服务器。专为Claude Code集成而构建。

设置

先决条件

  • Python 3.10+
  • 具有导管API访问权限的Phabricator实例
  • 导管API令牌(在 https://<your-phab>/settings/user/<you>/page/apitokens/)

安装

cd phabricator-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .

环境变量

变量 必填 描述
PHABRICATOR_URL 是 Phabricator实例的基本URL(例如。 https://team.phabricator.com)
PHABRICATOR_TOKEN 是 导管API令牌

Claude代码集成

添加到您的Claude Code MCP设置中(~/.claude/settings.json 或项目 .claude/settings.json):

{
  "mcpServers": {
    "phabricator": {
      "command": "/home/<user>/phabricator-mcp/.venv/bin/phabricator-mcp",
      "env": {
        "PHABRICATOR_URL": "https://team.phabricator.com",
        "PHABRICATOR_TOKEN": "<your-conduit-token>"
      }
    }
  }
}

独立运行(用于测试)

export PHABRICATOR_URL="https://team.phabricator.com"
export PHABRICATOR_TOKEN="<your-token>"
phabricator-mcp

服务器使用stdio传输并使用MCP协议。

工具

所有工具都是 只读。不公开任何写入操作。

get_task

按ID获取单个任务。

get_task(task_id: "T1364")
get_task(task_id: "1364")     # T prefix is optional

退货: 标题、状态、优先级、所有者(PHID)、URL、描述。

get_task_comments

获取任务的所有评论,按最新顺序排列。

get_task_comments(task_id: "T1917")

退货: 带有作者PHID、Unix时间戳和原始文本的注释列表。

search_tasks

按自由文本查询、受让人、项目或状态搜索任务。至少需要一个过滤器。

search_tasks(query: "nmap")
search_tasks(assigned_to: "username", status: "open")
search_tasks(project: "Edge", status: "any", limit: 50)
参数 类型 默认值 描述
query 字符串 "" 自由文本搜索(标题+描述)
assigned_to 字符串 "" 按受让人用户名筛选
project 字符串 "" 按项目/标记名称筛选
status 字符串 "open" "open", "closed",或 "any"
limit int 20 最大结果(上限为100)

search_user

按用户名查找用户。

search_user(username: "username")

退货: PHID、真实姓名、角色。

get_user_tasks

快捷方式 search_tasks(assigned_to=username).

get_user_tasks(username: "username")
get_user_tasks(username: "username", status: "closed", limit: 50)
参数 类型 默认值 描述
username 字符串 (必填) Phabricator用户名
status 字符串 "open" "open", "closed",或 "any"
limit int 30 最大结果(上限为100)

get_user_activity

获取用户的最近活动——评论、编辑、任务更新。专为每周状态摘要而设计。

get_user_activity(username: "max")
get_user_activity(username: "max", days: 14)
get_user_activity(user_phid: "PHID-USER-ruacbzr534p25ifzonri", days: 7)
参数 类型 默认值 描述
username 字符串 "" Phabricator用户名。忽略如果 user_phid 已给出。
user_phid 字符串 "" 用户PHID--跳过用户名查找往返。
days int 7 要检索的历史天数
limit int 100 最大活动项目数(上限为500)
comments_only bool的。 False 如果为True,则仅过滤用户实际评论的任务,并包含评论文本。多做一个 transaction.search 按任务调用。

默认模式: 用户正在处理的任务(包括状态更改、板移动等),最新优先。
comments_only=True 模式: 只有带有真实评论的任务,并引用完整的评论文本。适用于周报——过滤掉纯粹的分流/管理活动。
提示: 如果团队成员的PHID存储在本地(例如 agentic_docs/people.md),通过 user_phid 直接为了效率。

备注

  • 所有者字段返回原始PHID(例如。 PHID-USER-xxx).使用 search_user 解析人名。
  • 注释时间戳是Unix纪元秒。使用标准工具进行转换(例如。 date -d @1774600507).
  • 服务器调用Phabricator的导管REST API(/api/<method>)引擎盖下通过 httpx.
  • get_user_activity 用途 feed.query 它没有服务器端的日期过滤器——日期过滤是在客户端完成的,所以非常大 days 高流量用户的值可能会达到200个项目的页面上限。