【玩转 AtomCode】隐藏高级功能挖掘:MCP、Hooks、Skills、Plugin 完全指南
【玩转 AtomCode】隐藏高级功能挖掘MCP、Hooks、Skills、Plugin 完全指南「码动四季」征文活动参赛作品大多数人只用 AtomCode 写代码但它的真正强大之处在于扩展生态。本文在华为云服务器上实操 MCP 协议接入、Hooks 生命周期钩子、Skills 技能系统、Plugin 插件市场四大高级功能带你解锁 AtomCode 的隐藏潜力。一、为什么说 AtomCode 不只是编码工具安装 AtomCode 后大多数人直接atomcode -p 写个xxx就开始用了。但如果你执行atomcode --help会发现它隐藏了四个强大的子系统mcp Manage MCP server entries in .mcp.json plugin Manage skill/command plugins setup Install seed files (skills/commands/hooks/MCP) to ~/.atomcode/ hooks Manage hooks (list, test, enable/disable)这四个命令分别对应 MCP 协议、Plugin 插件、Skills 技能、Hooks 钩子——它们共同构成了 AtomCode 的扩展生态。二、环境准备实例华为云 FlexusX ecs-46b1-0003 规格8vCPUs | 16GiB | x2e.8u.16g 系统Ubuntu 24.04 server 64bit 公网 IP119.3.232.205 AtomCodev4.25.9AtomCode 安装配置过程与其他服务器相同此处省略确保atomcode status显示已登录。三、MCP 协议接入3.1 什么是 MCPMCPModel Context Protocol是一个开放标准协议类比 “USB-C 接口”——它定义了 AI 模型与外部工具之间的统一通信标准。在 AtomCode 中MCP 让 AI 编码代理能够调用外部工具文件系统、数据库、API 等。3.2 MCP 命令详解rootecs-46b1-0003:~# atomcode mcp --helpManage MCP server entriesin.mcp.json Usage: atomcode mcp[OPTIONS]COMMANDCommands:addAdd or replace a stdio MCP server add-github-oauth Add GitHubs remote MCP server using OAuth login Complete OAuth loginfora remote MCP serverlogoutRemove saved OAuth credentialsfora remote MCP server3.3 添加文件系统 MCP Server实操添加modelcontextprotocol/server-filesystemMCP 服务器rootecs-46b1-0003:~# mkdir -p /root/mcp-test cd /root/mcp-testrootecs-46b1-0003:~/mcp-test# atomcode mcp add filesystem npx modelcontextprotocol/server-filesystem /tmp输出Added MCP server filesystem → /root/mcp-test/.mcp.json (stdio: npx 2 arg(s))查看生成的配置文件rootecs-46b1-0003:~/mcp-test# cat .mcp.json{mcpServers:{filesystem:{command:npx,args:[modelcontextprotocol/server-filesystem,/tmp]}}}3.4 MCP 配置详解AtomCode 支持两种 MCP 配置作用域作用域文件位置说明项目级project/.mcp.json仅当前项目可用可提交到 Git用户级全局~/.atomcode/mcp.json所有项目可用个人配置使用--global参数添加全局 MCP Serveratomcode mcpadd--globalfilesystem npx modelcontextprotocol/server-filesystem /tmp3.5 工具命名规则MCP Server 注册的工具在 AtomCode 中以mcp__server__tool格式命名。例如filesystemServer 的read_file工具 →mcp__filesystem__read_filefilesystemServer 的write_file工具 →mcp__filesystem__write_file这种命名方式避免了不同 MCP Server 之间的工具名冲突。3.6 传输方式AtomCode MCP 支持两种传输方式stdio本地{mcpServers:{filesystem:{command:npx,args:[modelcontextprotocol/server-filesystem,/tmp]}}}HTTP远程{mcpServers:{github:{url:https://api.githubcopilot.com/mcp/,headers:{Authorization:Bearer gho_xxxx}}}}对于 GitHub 远程 MCPAtomCode 还提供了 OAuth 一键添加atomcode mcp add-github-oauth3.7 权限审批模型AtomCode 对 MCP 工具调用提供三种权限模式模式说明适用场景逐次确认每次调用工具时弹出确认敏感操作删除、修改autoApprove自动批准特定工具信任的只读工具trust信任所有工具开发环境完全信任配置示例在.mcp.json中{mcpServers:{filesystem:{command:npx,args:[modelcontextprotocol/server-filesystem,/tmp],autoApprove:[read_file,list_files],trust:false}}}四、Hooks 生命周期钩子4.1 Hooks 概念Hooks 是 AtomCode 的生命周期钩子系统允许在特定事件发生时自动执行自定义命令。类似于 Git Hooks但覆盖了 AI 编码代理的完整生命周期。4.2 Hooks 命令rootecs-46b1-0003:~# atomcode hooks --helpManage hooks(list, test, enable/disable)Commands: list List all loaded hooks with their statustestTest a specific hook by name paths Show hook configuration paths查看 Hooks 配置路径rootecs-46b1-0003:~# atomcode hooks pathsHook Configuration Paths: ───────────────────────────────────────────── ✗ Global config: /root/.atomcode/hooks/hooks.toml ✗ Project config: /root/.atomcode/hooks/hooks.toml4.3 创建 Hooks创建 Hooks 配置文件rootecs-46b1-0003:~# mkdir -p ~/.atomcode/hooksrootecs-46b1-0003:~# cat ~/.atomcode/hooks/hooks.toml HOOKS[[hooks]]nameaudit-logeventpre_tool_usecommandecho$(date)-$ATOMCODE_TOOL_NAME ~/.atomcode/audit.log[[hooks]]nameblock-rm-rfeventpre_tool_usematcherbashcommandecho {\action\:\block\,\reason\:\rm -rf is blocked by safety hook\}HOOKS4.4 Hook 事件类型从配置文件注释可以看到AtomCode 支持四种 Hook 事件事件触发时机典型用途pre_tool_use工具调用前安全检查、审计日志、阻止危险操作post_tool_use工具调用后自动格式化、代码检查、通知session_start会话开始环境检查、加载配置session_end会话结束清理临时文件、生成报告4.5 Hook 环境变量Hooks 执行时可以访问以下环境变量变量说明ATOMCODE_HOOK_EVENT当前事件名称ATOMCODE_TOOL_NAME正在调用的工具名ATOMCODE_HOOK_CONTEXT钩子上下文信息4.6 PreToolUse 返回值pre_tool_useHook 可以通过 stdout 返回 JSON 控制工具执行{action:allow}// 允许执行{action:block,reason:...}// 阻止执行并说明原因4.7 查看已加载的 Hooksrootecs-46b1-0003:~# atomcode hooks listLoaded Hooks: ─────────────────────────────────────────────(No hooks loaded)Hook Directories: ───────────────────────────────────────────── ✓ Global: /root/.atomcode/hooks ✗ Project: /root/mcp-test/.atomcode/hooks提示Hooks 需要在交互式会话中才会加载Headless 模式下可能不会触发。五、Skills 技能系统5.1 什么是 SkillsSkills 是 AtomCode 的「打包专业知识」系统。一个 Skill 就是一个 Markdown 文件SKILL.md包含特定领域的知识、工作流程和指令。AI Agent 加载 Skill 后就能像专家一样处理特定类型的任务。5.2 安装种子 Skillsrootecs-46b1-0003:~# atomcode setup✅ Setup complete —1installed,0skipped,0failed · 11ms Installed: ✓ skill:atomcode-automation-recommender → /root/.atomcode/skills/atomcode-automation-recommenderatomcode setup命令会将种子文件Skills/Commands/Hooks/MCP安装到~/.atomcode/目录。5.3 内置 Skill 解析安装的atomcode-automation-recommenderSkill 内容rootecs-46b1-0003:~# cat ~/.atomcode/skills/atomcode-automation-recommender/SKILL.md---name:setupdescription:Analyze a codebase and recommend AtomCode automations (hooks,subagents,skills,plugins,MCP servers). Use when user asks for automation recommendations,wants to optimize their AtomCode setup,mentions improving AtomCode workflows,asks how to first set up AtomCode for a project,or wants to know what AtomCode features they should use.user_invocable:trueargument_hint:[focus area, e.g. hooks, mcp, skills, all]allowed_tools:Read,Glob,Grep,Bash,Write,Edit---这个 Skill 的工作流程分析代码库检测项目类型、依赖、现有配置推荐自动化方案根据项目特点推荐 Skills、Plugins、MCP Servers、Hooks提供安装方案推荐后询问「要我帮你装上吗」5.4 Skill 类型对照表从 Skill 的内容可以看到 AtomCode 的完整自动化体系类型适用场景安装方式Skills打包专业知识、工作流程、重复任务npx skills add pkg或创建.atomcode/skills/name/SKILL.mdPluginsSkills Commands Agents Hooks 的集合/plugin marketplace add url然后/plugin install nameMCP Servers外部工具集成数据库、API、文档写入.mcp.json项目级或~/.atomcode/mcp.json全局Hooks工具事件的自动动作格式化、检查、阻止写入~/.atomcode/hooks/hooks.tomlSubagents专业化审查员安全、性能、可访问性创建.atomcode/skills/name/SKILL.mdCommands快捷斜杠命令/test, /review, /deploy创建.atomcode/commands/name.md5.5 自定义 Skill 创建创建一个自定义 Skill 示例mkdir-p~/.atomcode/skills/my-deploy-helpercat~/.atomcode/skills/my-deploy-helper/SKILL.mdEOF --- name: deploy-helper description: Help deploy applications to production. Use when user asks to deploy, release, or publish an application. user_invocable: true argument_hint: [environment: staging|production] allowed_tools: Bash, Read, Write --- # Deploy Helper ## Workflow 1. Run tests: npm test 2. Build: npm run build 3. Deploy: ./deploy.sh $ARGUMENTS 4. Verify: curl -s https://myapp.com/health 5. Notify: Send deployment notification EOF六、Plugin 插件市场6.1 Plugin 命令体系rootecs-46b1-0003:~# atomcode plugin --helpManage skill/command plugins Commands: marketplace Marketplace registry operations(add/remove/update/list)installInstall a plugin from a registered marketplace uninstall Uninstall a previously-installed plugin list List installed plugins6.2 Marketplace 操作# 添加插件市场atomcode plugin marketplaceaddgit-url# 更新市场索引atomcode plugin marketplace updatemarketplace-name# 列出已注册的市场atomcode plugin marketplace list# 移除市场atomcode plugin marketplace removemarketplace-name6.3 安装插件# 安装插件格式pluginmarketplaceatomcode plugininstallascend-model-agent-pluginascend-model-agent-plugin# 查看已安装插件atomcode plugin list# 卸载插件atomcode plugin uninstallplugin-name6.4 自动安装配置在config.toml中可以配置自动安装行为[plugin] auto_install_default_skills true # 自动安装默认 Skills auto_update_marketplaces true # 自动更新市场索引七、配置文件全景通过atomcode setup和手动配置后~/.atomcode/目录的完整结构~/.atomcode/ ├── auth.toml # 认证信息 ├── config.toml # 全局配置 ├── codingplan_sync.json # Token 同步 ├── device_id # 设备标识 ├── ATOMCODE.md # 全局指令文件自定义 AI 行为 ├── mcp.json # 全局 MCP 配置 ├── hooks/ │ └── hooks.toml # Hooks 配置 ├── skills/ │ └── skill-name/ │ └── SKILL.md # Skill 定义 ├── commands/ │ └── command-name.md # 自定义命令 └── telemetry/ # 遥测数据项目级配置在项目根目录可以创建以下文件覆盖全局配置project/ ├── .atomcode.md # 项目指令团队共享 ├── .atomcode.user.md # 用户级项目指令.gitignore ├── .mcp.json # 项目 MCP 配置 ├── .hooks.json # 项目 Hooks 配置 ├── .atomcode/ │ ├── skills/ │ ├── commands/ │ └── ...指令优先级AtomCode 加载指令文件的优先级从低到高~/.atomcode/ATOMCODE.md— 全局个人默认值project/.atomcode.md— 项目团队共享提交到 Gitproject/ATOMCODE.md— 同上备选文件名project/AGENTS.md— AGENTS.md 开放标准project/CLAUDE.md— Claude Code 兼容project/.atomcode.user.md— 个人项目级.gitignore优先级高的文件出现在 Prompt 后面近期效应影响力更大。八、高级配置技巧8.1 自定义 AI 行为创建~/.atomcode/ATOMCODE.md全局指令## Global Preferences - Reply in Chinese - Dont add AI co-author tags to commits - Always add type hints to Python code - Prefer functional style over imperative8.2 项目级指令在项目根目录创建.atomcode.md## Project Rules - This is a Rust workspace with 5 crates - Use anyhow::Result for error handling - All public APIs must have doc comments - Run cargo fmt before commits8.3 Subagent 配置[subagent] enabled true initial_turns 4 # 初始轮数 max_turns 12 # 最大轮数 max_concurrent 3 # 并发数 timeout_secs 300 # 超时8.4 通知配置[notifications] enabled true min_duration_secs 8 # 最短通知阈值 terminal true # 终端通知 system true # 系统通知 bell true # BEL 响铃 background_only true # 仅后台时通知8.5 数据日志[datalog] enabled true dir ~/.atomcode/datalog # 日志目录每轮对话写入 Markdown 摘要每轮 LLM 调用写入 JSON 请求/响应对。九、总结AtomCode 的四大扩展系统构成了一个完整的 AI 编码代理生态系统核心价值使用门槛MCP连接外部工具无限扩展 AI 能力中需了解 MCP 协议Hooks生命周期钩子自动化工作流低Shell 脚本即可Skills打包专业知识复用最佳实践低Markdown 文件Plugin社区生态分发一键安装低marketplace 命令这四个系统不是孤立的而是相互配合的Plugin可以打包多个SkillsCommandsHooksSkills可以推荐安装MCP Servers和HooksHooks可以在MCP工具调用前后触发MCP工具可以被Skills和Hooks使用如果你只用了atomcode -p来写代码那你只用了 AtomCode 20% 的能力。真正的威力在于 MCP Hooks Skills Plugin 的组合使用——把 AtomCode 变成一个懂你的项目规范、遵守你的安全策略、连接你的工具链、自动执行你的工作流的 AI 编码代理。活动信息「码动四季」征文活动夏季主题——「玩转 AtomCode」AtomCode 官网https://atomcode.atomgit.comAtomCode 源码https://atomgit.com/atomgit_atomcode/atomcode