MCP暴露能力
让AI助手通过MCP编辑您的WordPress网站。
](https://github.com/bjornfix/mcp-expose-abilities/releases)   
测试结果为: 6.9 稳定标签: 3.0.38 许可证: GPLv2或更高版本 许可证URI: https://www.gnu.org/licenses/gpl-2.0.html
它做什么
此插件通过MCP(模型上下文协议)公开WordPress功能,使AI助手能够直接与您的WordPress网站交互。聊天和管理员之间不再进行复制粘贴。
例子: “将这25篇文章中的电话号码固定为可点击的电话:链接。”-30秒内完成,全部25篇文章。
真正的工作流程
在实践中,人类不应该记住整个生态系统。
正常模式是:
- 将Codex或其他具有MCP功能的代理指向此存储库
- 让代理阅读README和wiki
- 让代理计算出所需的堆栈和相关插件
- 给代理一个有明确界限的任务
人类的工作主要是描述目标。 代理人的工作是弄清楚机制。
为什么感觉不一样
大多数WordPress AI演示仍然让你自己做无聊的部分。
这个生态系统是不同的,因为代理实际上可以在WordPress内部完成工作:
- 修复跨多个页面的重复内容问题
- 更新菜单、媒体、插件、评论和选项
- 使用真正的构建器和插件生态系统,如Elementor、GeneratePress、Rank Math和Wordfence
- 处理那种网站维护,人们通常会推迟,因为它重复且乏味
这改变了体验:
Here is what you should do in wp-admin
致:
Tell the agent what needs doing, and let it carry out the work
之前vs之后
之前
- 问AI该怎么办
- 手动将答案复制到WordPress中
- 点击wp-admin查看重复部分
- 因为任务无聊而失去动力
- 再次推迟清理、维护或优化工作
之后
- 告诉代理人需要做什么
- 让它直接检查现场
- 让它做出有针对性的改变
- 核实结果
- 继续进行下一个有用的改进,而不是陷入管理的苦差事中
这种差异正是这个生态系统的核心所在。
这是给谁的
这非常适合:
- 管理许多WordPress网站的机构
- 内容和操作重复的公司
- 希望人工智能进行真正的维护,而不仅仅是生成文本的组织
- 厌倦了聊天和wp-admin之间复制粘贴工作流程的技术团队
当工作仅仅因为手册版本无聊而推迟时,它尤其有用。
如果你想了解更具体的买家案例,请从这里开始:
文档
对于快速入门之外的设置和故障排除,请使用wiki:
如果你正在使用AI代理,最简单的指令通常是:
Read https://github.com/bjornfix/mcp-expose-abilities and figure out the stack before making changes.
从这里开始
如果您是堆栈的新手,请使用以下顺序:
- 安装 API能力
- 安装 MCP适配器
- 安装 MCP暴露能力 (此插件)
- 确认你可以列出并执行核心能力
- 仅添加您实际需要的特定于供应商的插件
如果跳过步骤4并立即开始安装附加组件,故障排除将变得比需要的更难。
你真正需要什么
对于最低限度的工作设置,您只需要:
生态系统中的其他一切都是可选的。
5分钟设置
- 安装并激活所需的插件:
- API能力:https://github.com/WordPress/abilities-api/releases/latest - MCP适配器:https://github.com/WordPress/mcp-adapter - MCP暴露能力:从该仓库下载最新版本
- 验证Abilities API插件是否安装为
wp-content/plugins/abilities-api/abilities-api.php - 激活WordPress中的所有三个插件
- 确认您的站点上可以访问MCP适配器路由
- 首先运行一个简单的只读功能,例如列出帖子或阅读页面
首次成功检查
在添加Elementor、Cloudflare、Gmail或其他任何东西之前,请确认核心堆栈正常工作。
良好的首次测试:
- 列出帖子
- 按ID获取页面
- 列表菜单
- 列出已安装的插件
如果这些工作正常,则堆栈接线正确。如果没有,请在添加附加组件之前修复核心堆栈。
模块化架构
3.0版本引入了模块化架构。核心插件提供WordPress原生功能,而供应商特定的功能可作为单独的附加插件提供:
| 插件 | 能力 | 描述 |
|---|---|---|
| MCP暴露能力 (核心) | 66 | WordPress核心:内容、菜单、用户、媒体、小部件、插件、选项、评论、分类、系统 |
| MCP能力-文件系统 | 11 | 具有安全强化功能的文件操作 |
| MCP能力-要素 | 40 | Elementor页面构建器集成 |
| MCP能力-生成印刷 | 26 | 生成印刷主题+生成块 |
| MCP能力-Cloudflare | 4 | Cloudflare缓存管理 |
| MCP能力-谷歌工作区 | 16 | 通过工作区服务帐户的Gmail API |
| MCP能力-排名数学 | 23 | 排名数学SEO元数据访问 |
| MCP能力-Wordfence | 11 | Wordfence安全状态+块 |
| MCP能力-布雷沃 | 22 | Brevo联系人、列表、活动 |
| MCP能力-高级广告 | 17 | 高级广告管理 |
| MCP能力-工具集 | 38 | 工具集帖子类型、自定义字段、分类法、关系 |
| MCP能力-SitePress | 10 | WPML翻译映射、语言切换器恢复和QA检查 |
| MCP能力-可实现 | 6 | 表单设置、使用跟踪、样式和CSS缓存控件 |
整个生态系统:285种能力
只安装你需要的东西。运行GeneratePress?安装该插件。不使用Elementor?跳过它。
需求
- WordPress 6.9+
- PHP 8.0+
- API能力 插件(WordPress核心团队)
- MCP适配器 插件(WordPress核心团队)
- 使用官方能力API版本ZIP(
abilities-api.zip)因此,它安装为wp-content/plugins/abilities-api/abilities-api.php
WordPress兼容性
- 需要WordPress 6.9或更高版本
- 测试最高支持WordPress 6.9
- 需要PHP 8.0或更高版本
- 针对WordPress 6.9版本线以及支持的附加插件进行维护
安装
- 安装并激活所需的插件:
- 能力API(官方发布ZIP):https://github.com/WordPress/abilities-api/releases/latest - MCP适配器:https://github.com/WordPress/mcp-adapter
- 从下载最新版本 发布
- 通过WordPress管理员上传→ 插件→ 新增→ 上传插件
- 激活插件
- (可选)安装供应商特定功能的附加插件
我应该安装哪个插件?
仅当您的网站实际使用该产品时才安装附加组件:
- Elementor站点:安装
mcp-abilities-elementor - GeneratePress/GenerateBlocks网站:安装
mcp-abilities-generatepress - Cloudflare管理的站点:安装
mcp-abilities-cloudflare - Gmail/工作区自动化:安装
mcp-abilities-workspace - 排名数学网站:安装
mcp-abilities-rankmath - Wordfence网站:安装
mcp-abilities-wordfence - Brevo站点:安装
mcp-abilities-brevo - 工具集站点:安装
mcp-abilities-toolset - WPML站点:安装
mcp-abilities-sitepress - Formidable Forms站点:安装
mcp-abilities-formidable
默认情况下,不要安装每个附加组件。大多数网站只需要一两个。
常见故障模式
最常见的入职错误是将其视为一个插件而不是堆栈。
当某些东西不起作用时,请按以下顺序检查:
- API能力是否活跃?
- MCP适配器是否处于活动状态?
- MCP暴露能力是否处于活动状态?
- 核心插件可以在没有任何附加组件的情况下工作吗?
- 供应商插件本身是否已安装并处于活动状态?
- 然后才调试特定的插件
最近的更改
3.0.38
- 添加
date支持content/update-post用于更新本地发布日期。 - 通过添加后元支持
content/create-post,content/update-post,meta/update-post-meta,以及meta/delete-post-meta. - 安全性:后元写入现在按密钥检查
edit_post_meta/delete_post_meta在修改元数据之前。
3.0.37
- 文档:移除杂散
Claude从README工作流措辞中提及。
3.0.36
- 固定的
plugins/search-directory因此,当API返回数组形状的插件行时,WordPress.org搜索结果会被正确填充。 - 固定的
plugins/list-updates因此,它像旧的空安全列表功能一样,不接受通过MCP代理执行参数。
3.0.35
- 添加
plugins/search-directory从MCP搜索官方WordPress.org插件目录。 - 添加
plugins/install-directory通过slug安装WordPress.org插件。 - 添加
plugins/list-updates和plugins/update用于WordPress原生插件更新的发现和执行。 - 添加
plugins/switch如果目标激活失败,则使用回滚在已安装的插件之间切换。
3.0.34
- Docs:添加了更清晰的GitHub入职路径
Start Here、设置顺序、首次成功检查和附加组件选择指南。 - 文档:添加了明确的WordPress和PHP兼容性说明。
- 文档:更正了生态系统插件和能力计数,包括Formidable插件以及当前的Elementor和Rank Math总计。
- 文档:将过时的硬编码的Abilities API ZIP URL替换为通用的latest-release链接。
- Docs:修复了GitHub发布徽章,使其遵循实际的最新版本。
3.0.33
- 在解压缩之前验证本地插件ZIP签名是否损坏
plugins/upload或plugins/upload-base64有效载荷失败,出现直接ZIP验证错误。 - 旨在与MCP代理HTTP传输修复程序配对,该修复程序提高了大型base64插件上传的默认JSON正文限制。
核心插件能力(66)
内容管理(23)
| 能力 | 描述 |
|---|---|
content/list-posts | 列出按状态、类别、作者、搜索筛选的帖子 |
content/get-post | 通过ID或slug获取单条帖子 |
content/get-next-post | 在ID后查找下一个现有帖子,即使ID有空白 |
content/create-post | 创建新帖子,包括 featured_image_id |
content/update-post | 更新现有帖子,包括 featured_image_id |
content/delete-post | 删除帖子(垃圾或永久) |
content/patch-post | 查找/替换帖子内容 |
content/list-pages | 列出具有过滤功能的页面 |
content/get-page | 按ID或slug获取单页 |
content/create-page | 创建新页面,包括 featured_image_id |
content/update-page | 更新现有页面,包括 featured_image_id |
content/delete-page | 删除页面 |
content/patch-page | 在页面内容中查找/替换 |
content/list-categories | 列出所有类别 |
content/create-category | 创建新类别 |
content/update-category | 更新现有类别 |
content/list-tags | 列出所有标签 |
content/create-tag | 创建新标签 |
content/list-media | 列出媒体项目 |
content/list-users | 列出用户 |
content/search | 跨帖子、页面、媒体搜索 |
content/list-revisions | 列出帖子/页面的修订内容 |
content/get-revision | 获取具体的修订详细信息 |
菜单管理(7)
| 能力 | 描述 |
|---|---|
menus/list | 列出所有菜单和主题位置 |
menus/get-items | 从菜单中获取项目 |
menus/create | 创建新菜单 |
menus/add-item | 将项目添加到菜单 |
menus/update-item | 更新菜单项 |
menus/delete-item | 删除菜单项 |
menus/assign-location | 将菜单分配到主题位置 |
用户管理(5)
| 能力 | 描述 |
|---|---|
users/list | 列出具有角色的用户 |
users/get | 通过ID、登录或电子邮件获取用户 |
users/create | 创建新用户 |
users/update | 更新用户 |
users/delete | 删除用户(可以重新分配内容) |
媒体库(4)
| 能力 | 描述 |
|---|---|
media/upload | 从URL上传媒体 |
media/get | 获取媒体项目的详细信息和尺寸 |
media/update | 更新标题、alt、标题 |
media/delete | 删除媒体项目 |
小部件管理(3)
| 能力 | 描述 |
|---|---|
widgets/list-sidebars | 列出所有小部件区域 |
widgets/get-sidebar | 在侧边栏中获取小部件 |
widgets/list-available | 列出可用的小部件类型 |
插件管理(11)
| 能力 | 描述 |
|---|---|
plugins/upload | 从URL上传插件 |
plugins/upload-base64 | 从本地文件上传插件(base64或zip路径) |
plugins/search-directory | 搜索官方WordPress.org插件目录 |
plugins/install-directory | 通过slug从官方WordPress.org插件目录安装插件 |
plugins/list | 列出已安装的插件 |
plugins/list-updates | 列出可用插件更新 |
plugins/update | 更新已安装的插件 |
plugins/activate | 激活已安装的插件 |
plugins/deactivate | 停用活动插件 |
plugins/switch | 激活一个插件并停用一个或多个其他插件 |
plugins/delete | 删除非活动插件 |
评论(6)
| 能力 | 描述 |
|---|---|
comments/list | 列出带有过滤功能的评论 |
comments/get | 获取单个评论详细信息 |
comments/create | 创建顶级评论 |
comments/reply | 对现有评论的回复 |
comments/update-status | 更新评论状态(批准、垃圾邮件、垃圾) |
comments/delete | 删除评论 |
选项(3)
| 能力 | 描述 |
|---|---|
options/get | 获取选项值 |
options/update | 更新选项(受保护的选项被阻止) |
options/list | 列出所有选项 |
系统(3)
| 能力 | 描述 |
|---|---|
system/get-transient | 获取瞬态值 |
system/debug-log | 读取debug.log文件 |
system/toggle-debug | 切换WP_DEBUG、WP_DEBUG_LOG、WP_DBUG_DISPLAY |
分类实用程序(1)
| 能力 | 描述 |
|---|---|
taxonomy/associate-with-post-type | 将分类与帖子类型相关联,并保持映射 |
插件能力
文件系统(mcp能力文件系统)-11种能力
| 能力 | 描述 |
|---|---|
filesystem/get-changelog | 获取插件/主题更改日志 |
filesystem/read-file | 读取文件内容(增强安全性) |
filesystem/write-file | 写入文件(PHP代码被阻止) |
filesystem/append-file | 附加到文件 |
filesystem/list-directory | 列出目录内容 |
filesystem/delete-file | 删除文件(创建备份) |
filesystem/delete-directory | 删除目录(可选递归) |
filesystem/file-info | 获取文件元数据 |
filesystem/create-directory | 创建目录 |
filesystem/copy-file | 复制文件 |
filesystem/move-file | 移动/重命名文件 |
元素(mcp能力元素)-40种能力
有关完整列表,请参阅附加文件自述。共同能力:
| 能力 | 描述 |
|---|---|
elementor/get-data | 获取页面的元素或JSON |
elementor/update-data | 替换JSON元素 |
elementor/patch-data | 在Elementor JSON中查找/替换 |
elementor/update-element | 按ID更新特定元素 |
elementor/list-templates | 列出已保存的模板 |
elementor/clear-cache | 清除CSS缓存 |
生成压力(mcp能力生成压力)-26种能力
有关完整列表,请参阅附加文件自述。共同能力:
| 能力 | 描述 |
|---|---|
generatepress/get-settings | 获取主题设置 |
generatepress/update-settings | 更新主题设置 |
generatepress/get-typography | 获取排版规则和字体管理器 |
generatepress/list-elements | 列表生成器打印元素 |
generatepress/list-modules | 列出模块状态 |
generateblocks/get-global-styles | 获取全球风格 |
generateblocks/update-global-styles | 更新全局样式 |
generateblocks/clear-cache | 清除CSS缓存 |
Cloudflare(mcp能力Cloudflare)-4种能力
| 能力 | 描述 |
|---|---|
cloudflare/clear-cache | 清除Cloudflare缓存(整个站点或特定URL) |
cloudflare/get-zone | 获取已解析的Cloudflare区域上下文 |
cloudflare/get-development-mode | 读取开发模式状态 |
cloudflare/set-development-mode | 启用/禁用开发模式 |
谷歌工作区(mcp能力工作区)-16种能力
| 能力 | 描述 |
|---|---|
gmail/configure | 设置Gmail API服务帐户凭据 |
gmail/status | 检查API连接状态和配置 |
gmail/list-labels | 列出标签 |
gmail/get-label | 按ID获取标签 |
gmail/create-label | 创建标签 |
gmail/update-label | 更新标签 |
gmail/delete-label | 删除标签 |
gmail/list | 列出收件箱邮件并进行筛选 |
gmail/list-threads | 列出线程 |
gmail/get | 按ID获取完整的电子邮件内容 |
gmail/get-thread | 获取线程详细信息 |
gmail/get-attachment | 以base64格式获取附件 |
gmail/send | 发送带有HTML、附件、CC、BCC的电子邮件 |
gmail/modify | 修改标签(存档、标记已读/未读等) |
gmail/reply | 回复现有电子邮件帖子 |
email/send | 通过WordPress wp_mail发送电子邮件(非Gmail回退) |
与MCP客户端一起使用
1.创建应用程序密码
WordPress管理员→ 用户→ 您的个人资料→ 应用程序密码
2.添加MCP服务器
配置您的MCP客户端以连接到:
https://yoursite.com/wp-json/mcp/mcp-adapter-default-server
使用HTTP传输,并使用从WordPress用户名和应用程序密码生成的Basic Auth标头。
3.开始使用
您的MCP客户端现在可以通过对话编辑您的WordPress网站。
示例
创建新页面
{
"ability_name": "content/create-page",
"parameters": {
"title": "About Us",
"content": "
Hello world!
",
"status": "publish"
}
}添加菜单项
{
"ability_name": "menus/add-item",
"parameters": {
"menu_id": 5,
"title": "Contact",
"url": "/contact/"
}
}从URL上传媒体
{
"ability_name": "media/upload",
"parameters": {
"url": "https://example.com/image.jpg",
"title": "Hero Image",
"alt_text": "Beautiful sunset"
}
}批量查找/替换
{
"ability_name": "content/patch-post",
"parameters": {
"id": 123,
"find": "+44 203 3181 832",
"replace": "+44 203 3181 832"
}
}安全
- 需要认证 -使用WordPress应用程序密码
- 权限检查 -每个能力都验证用户的能力
- 您的服务器 -AI连接到您的网站,您控制访问
- 受保护的选项 -禁止修改关键设置
- 文件系统强化 -PHP代码检测、路径遍历保护(在插件中)
建筑
三个插件堆栈和可选插件:
- API能力 -能力注册框架(WordPress核心团队)
- MCP适配器 -MCP协议层(WordPress核心团队)
- MCP暴露能力 (此插件)-WordPress的核心功能
- 附加插件 (可选)-供应商特定能力
更新日志
3.0.38
- 补充:
content/update-post现在支持使用以下命令更新本地发布日期date参数 - 添加:通过发布元支持
content/create-post,content/update-post,meta/update-post-meta,以及meta/delete-post-meta - 安全性:后元写入现在按密钥检查
edit_post_meta/delete_post_meta修改元数据之前的功能
3.0.37
- 文档:移除杂散
ClaudeGitHub README工作流措辞中提到
3.0.36
- 固定的:
plugins/search-directory现在,当插件数据以数组而不是对象的形式返回时,可以正确处理WordPress.org目录行 - 固定的:
plugins/list-updates现在,与其他空安全列表功能一样,通过MCP代理不接受任何参数执行
3.0.35
- 补充:
plugins/search-directory从MCP搜索官方WordPress.org插件目录 - 补充:
plugins/install-directory通过slug从WordPress.org官方目录安装插件 - 补充:
plugins/list-updates和plugins/update用于WordPress本地插件更新的发现和执行 - 补充:
plugins/switch如果目标激活失败,则通过回滚在已安装的插件之间切换
3.0.34
- Docs:添加了更清晰的GitHub入职路径
Start Here、设置顺序、首次成功检查和附加组件选择指南 - 文档:添加了明确的WordPress和PHP兼容性说明
- 文档:更正了生态系统插件和能力计数,包括Formidable插件以及当前的Elementor和Rank Math总计
- 文档:将过时的硬编码Abilities API ZIP URL替换为通用的latest-release链接
- Docs:修复了GitHub发布徽章,使其遵循实际的最新版本
3.0.33
- 已修复:插件上传路径现在在解压缩之前验证本地ZIP签名,因此损坏的有效载荷会因直接ZIP验证错误而失败
- 改进:与代理端HTTP JSON配对,限制更大
plugins/upload-base64MCP代理层不会拒绝或截断请求
3.0.31
- 修复:当请求的图像已经分配时,特征图像创建/更新路径现在是幂等的
3.0.30
- 固定的:
plugins/upload和plugins/upload-base64现在回到copy_dir()当文件系统move()解压缩后失败 - 改进:插件安装失败现在包括底层文件系统上下文
3.0.29
- 固定的:
content/update-post现在,在无关的帖子更新之前,清除过时的无效分配页面模板元数据 - 固定的:
content/update-page现在,在更新时清除过时的无效分配模板,并验证显式template输入 - 固定的:
content/create-page现在,在保存显式页面模板块之前,先验证它们
3.0.28
- 添加
featured_image_id支持帖子/页面创建和更新功能 - 添加
featured_image_id到content/get-post和content/get-page
3.0.27
- 固定的:
content/get-next-post现在应用after_id通过允许查询筛选器运行,正确地设置地板
3.0.26
- 补充:
content/get-next-post查找ID后的下一个现有帖子,即使ID有空白 - 改进:
content/list-posts现在接受不区分大小写order价值观和友好orderby别名如id和slug - 改进:
content/get-post现在接受post_type用于slug查找并返回更清晰的缺失帖子上下文
3.0.25
- 固定的:
users/delete现在加载wp-admin/includes/user.php打电话之前wp_delete_user()在REST/MCP环境中
3.0.24
- 性能:调试日志读取器现在跟踪文件内容,而不是加载完整文件
- 安全:
options/get阻止敏感选项名称(令牌、密钥、机密) - 模式:为注释和分类关联能力添加输出模式
3.0.23
- 补充:
content/update-category能力 - 修复:帖子类型验证中占位符字符串的翻译器注释
- 修复:标签与插件版本对齐稳定
3.0.17
- 修复:在翻译调用中使用文本域
- 已修复:为占位符字符串添加翻译器注释
3.0.16
- 补充:
include_totals国旗+has_more/returned默认情况下,列表帖子/列表页面/列表媒体的输出可避免昂贵的计数
3.0.15
- 添加:插件/upload-base64现在接受
zip_path用于服务器本地zip安装 - 修复:没有参数能力接受空输入(菜单/列表、小部件/列表侧栏、小部件可用/列表)
3.0.14
- 已修复:插件/delete现在会在删除前加载核心文件助手
3.0.13
- 新增:核心列表功能的共享分页规范化
3.0.12
- 修复:插件/上传现在在非管理员环境中加载WordPress下载助手
3.0.11
- 添加:插件/upload-base64本地文件上传功能
3.0.10
- 补充:
content/create-category能力
3.0.9
- 安全性:增加了对内容、媒体、用户和评论的逐项功能检查
3.0.8
- 补充:
plugins/activate激活已安装插件的能力 - 补充:
plugins/deactivate停用活动插件的能力
3.0.7
- 改进:所有47个能力描述现在都包含参数提示
3.0.6
- 补充:
comments/create顶级评论能力
3.0.5
- 补充:
plugins/delete删除非活动插件的能力
3.0.4
- 修复:使用WP_Filesystem API而不是本机PHP函数
- 已修复:将wp_get_sidebars_widgets替换为直接选项调用
3.0.3
- 新增:修订能力(
content/list-revisions,content/get-revision) - 新增:评论功能(列表、获取、创建、回复、更新状态、删除)
- 补充:
author_id内容创建参数
3.0.0
- 打破: 模块化架构-将特定于供应商的能力转移到附加插件
- 核心插件现在只包含WordPress原生功能
- 附加插件:文件系统(10)、Elementor(6)、GeneratePress(5)、Cloudflare(1)、谷歌工作区(8)
- 更清洁的安装-只安装您需要的东西
2.2.12
- 安全:添加了受保护的选项块列表(active_plugins、siteurl、admin_email等)
- 安全性:通过选项/更新防止意外破坏网站
2.2.11
- 安全性:添加了UTF-7和UTF-16编码旁路检测
- 安全性:阻止编码的PHP注入尝试
2.2.10
- 安全性:主要的文件系统安全强化
- 安全性:文件写入中的PHP代码检测
- 安全:路径遍历保护
- 安全性:仅限于wp内容目录
2.1.0
- 新增:文件系统功能
- 新增:选项能力
- 新增:系统能力
- 添加:Cloudflare缓存清除功能
- 补充:
elementor/update-element用于目标元素更新
2.0.0
- 新增:菜单、用户、媒体、小部件、页面功能
1.0.0
- 初始版本
贡献
PR欢迎!对于供应商特定的功能,可以考虑创建一个附加插件。
许可证
GPL-2.0+
作者
德维尼亚 -自1993年以来,我们一直在做SEO和web开发。
链接
明星与分享
如果这个生态系统为您节省了时间,为您的团队提供了一种更理智的方式来处理WordPress工作,或者帮助您最终完成了没有人愿意做的重复维护,请:
- 明星回购
- 与运行WordPress网站的人分享
- 将他们指向维基,这样他们就可以看到生态系统实际上能做什么
为什么这么做?
因为这对整个WordPress生态系统都有好处。使用代理友好的开放WordPress工具的人越多,实际上完成的无聊但重要的工作就越多,而不是永远坐在积压中。
