微控制器
包装Phabricator Conduct API用于只读任务访问的最小MCP服务器。专为Claude Code集成而构建。
设置
先决条件
- Python 3.10+
- 具有导管API访问权限的Phabricator实例
- 导管API令牌(在
https:///settings/user//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//phabricator-mcp/.venv/bin/phabricator-mcp",
"env": {
"PHABRICATOR_URL": "https://team.phabricator.com",
"PHABRICATOR_TOKEN": ""
}
}
}
}独立运行(用于测试)
export PHABRICATOR_URL="https://team.phabricator.com"
export PHABRICATOR_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/)引擎盖下通过httpx. get_user_activity用途feed.query它没有服务器端的日期过滤器——日期过滤是在客户端完成的,所以非常大days高流量用户的值可能会达到200个项目的页面上限。
