Claude Code Manual

进阶:Hooks、MCP 与插件

这三样能把 Claude Code 和你的其他工具连起来。它们都会执行代码或访问外部服务,安装前先确认来源可信。

Hooks:在固定时机自动执行

Hook(钩子)是在特定时机自动运行的命令,不需要 Claude 决定要不要做。常用时机:

事件什么时候触发
SessionStart会话开始或恢复时
UserPromptSubmit你发出消息、Claude 处理之前
PreToolUseClaude 调用工具之前,可以拦截
PostToolUse工具调用成功之后
NotificationClaude Code 发出通知时,例如等待你审批
StopClaude 回答完毕时

Hooks 写在 settings.json 的 hooks 里。例子:Claude Code 需要你操作时弹出系统通知,这样你可以去做别的事。

macOS:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Windows:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
          }
        ]
      }
    ]
  }
}

如果 settings.json 里已经有其他内容,把 hooks 这一段合并进去。输入 /hooks 可以查看当前生效的 Hooks。

Hook 会以你的身份自动执行命令。别人项目里的 .claude/settings.json 可能带有 Hooks,打开不熟悉的项目时,Claude Code 会先询问是否信任这个文件夹,看清楚再确认。

MCP:连接外部工具

MCP(Model Context Protocol)是一种让 AI 连接外部工具和数据的标准,例如文档库、项目管理系统、数据库。连接后,Claude 就能直接查询或操作这些工具。

添加一个远程 MCP 服务器:

claude mcp add --transport http <名称> <地址>

例如:

claude mcp add --transport http notion https://mcp.notion.com/mcp

--scope 决定它对哪些项目生效:

范围生效位置保存在
local(默认)只在当前项目,只有你~/.claude.json
project当前项目,可以提交到 Git 与团队共享项目根目录的 .mcp.json
user你所有的项目~/.claude.json

会话中输入 /mcp 查看连接状态,需要登录授权的服务也在这里完成。

MCP 服务器能读取和修改它所连接的数据,只添加你信任的服务。

插件:一次装好一整套

插件把技能、子代理、Hooks、MCP 服务器打包在一起,一次安装就能用上全部功能。插件来自“插件市场”(marketplace)。

在会话中输入:

/plugin

在 Discover 标签页浏览和安装插件,在管理页面启用、停用或卸载。

区分官方市场和第三方市场:第三方插件可以包含会自动执行的 Hooks 和 MCP 服务器,安装前确认作者和来源。

出问题时

扩展装多了,某个出错可能拖累整个会话。用下面的命令启动,暂时关闭所有插件、MCP 和 Hooks,方便判断问题出在哪里:

claude --safe-mode

更多细节见官方文档:Hooks、MCP、插件。