OpenCode进阶指南:MCP协议与Skill技能,让你的AI助手真正"开外挂"
❝
从"只会聊天"到"能干活",只差一个配置的距离
❞
引言:AI有大脑,却缺手脚?
你有没有这样的困扰:AI聊天很厉害,写代码、写文章样样行,但一让它查个实时天气、操作个Git仓库、或者调用个地图API,它就"抓瞎"了。
这不是AI不够聪明,而是它「缺少与外部世界连接的桥梁」。
好消息是,2024年底Anthropic(Claude的开发商)推出了「MCP(Model Context Protocol)协议」,再加上OpenCode 「Skill(技能)」,现在你可以像给手机装App一样,给AI装上各种"外挂"。
本文将手把手教你,如何在OpenCode中配置MCP和Skill,让你的AI助手从"纸上谈兵"进化到"真刀真枪"。
一、MCP是什么?AI界的"USB接口标准"
一句话理解MCP
如果把大语言模型(LLM)比作一个"超级大脑",那么MCP就是一套通用的 「"神经接口标准"」 。
就像USB接口让键盘、鼠标、U盘能即插即用一样,MCP让AI能无缝连接GitHub、数据库、搜索引擎、地图服务等外部工具。
MCP的架构:简单直观
MCP采用经典的「客户端-服务器(Client-Server)架构」:

「三个角色:」
-
「MCP Host(宿主)」:AI应用程序本身(如Claude Desktop、OpenCode),是"大脑"所在的地方 -
「MCP Client(客户端)」:内置在Host中,负责按照MCP协议与外界沟通 -
「MCP Server(服务器)」:连接特定数据源的小程序,告诉AI:"我这里有这些工具、资源和提示词模板"
丰富的MCP生态
目前MCP生态已经相当繁荣,你可以在以下仓库找到现成的MCP服务器:
-
「官方仓库」:https://github.com/modelcontextprotocol/servers -
「Glama MCP目录」:https://glama.ai/mcp/servers -
「MCP.so搜索站」:https://mcp.so/
从GitHub操作、文件系统访问,到数据库查询、浏览器自动化,应有尽有。
二、Skill是什么?AI的"菜谱和烹饪心得"
如果说MCP是"插座标准"、Tools是"具体的电器",那么「Agent Skill」就是教AI怎么用这些电器去完成复杂任务的 「"说明书"」 。
核心概念
「Agent Skill」是一种高维度的能力封装,包含:
-
「指令(Instructions)」:告诉AI在什么场景下该做什么 -
「工具(Tools)」:完成该任务需要的具体工具 -
「领域知识(Context)」:该领域的专业知识和最佳实践
「打个比方:」
-
Tool是"拿起剪刀" -
Skill是"如何剪出一张窗花"(包括选纸、折叠、剪裁顺序、注意事项等完整流程)
Skill的优势
-
「模块化」:像插件一样即插即用,教AI某种垂直领域的工作方法 -
「自主性」:告诉AI在什么场景下该选哪些工具,以及处理的步骤 -
「高效性」:采用"按需加载"机制,AI只有需要时才读取对应的技能文件,不浪费上下文窗口
Skill文件结构
每个Skill由一个 SKILL.md 文件定义,必须包含YAML frontmatter:
---
name:git-release # 技能名称(必填)
description:Createconsistentreleasesandchangelogs# 描述(必填)
license:MIT # 许可证(可选)
compatibility:opencode # 兼容性(可选)
metadata: # 元数据(可选)
audience:maintainers
workflow:github
---
## What I do
-DraftreleasenotesfrommergedPRs
-Proposeaversionbump
-Provideacopy-pasteable`ghreleasecreate`command
## When to use me
Usethiswhenyouarepreparingataggedrelease.
Askclarifyingquestionsifthetargetversioningschemeisunclear.
Skill的存放位置
OpenCode会自动搜索以下位置:
-
「项目本地」: .opencode/skills/<name>/SKILL.md -
「全局配置」: ~/.config/opencode/skills/<name>/SKILL.md -
「兼容Claude」: .claude/skills/<name>/SKILL.md或~/.claude/skills/<name>/SKILL.md -
「兼容Agents」: .agents/skills/<name>/SKILL.md或~/.agents/skills/<name>/SKILL.md
三、三者对比:Tools vs MCP vs Skill
我们通过一张表格快速对比这三者的核心差异:
|
|
|
|
|
|---|---|---|---|
| 「角色定义」 |
|
|
|
| 「抽象层级」 |
|
|
|
| 「核心关注点」 |
|
|
|
| 「实现方式」 |
|
|
|
| 「类比」 |
|
|
|
「简单记忆:」
-
「Tools」 = 你会用的工具 -
「MCP」 = 让工具能插到AI上的标准接口 -
「Skill」 = 教AI什么时候用什么工具、怎么用的完整指南
四、MCP实战:在OpenCode中配置你的第一个MCP
OpenCode支持 「本地(stdio)」 和 「远程(HTTP/WebSocket)」 两种类型的MCP服务器,配置起来非常直观。
4.1 配置本地MCP服务器
本地MCP服务器通过命令行启动,适合需要本地计算能力或访问本地文件的工具。
「配置格式:」
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-local-mcp-server": {
"type": "local",
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value"
}
}
}
}
「关键字段说明:」
-
type: 必须设置为"local" -
command: 启动MCP服务器的命令,可以是npx、bun、node等 -
enabled: 是否启用该MCP -
environment: 环境变量,用于传递API密钥等敏感信息
4.2 配置远程MCP服务器
远程MCP服务器通过HTTP/WebSocket连接,适合部署在云端的微服务。
「配置格式:」
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-remote-mcp": {
"type": "remote",
"url": "https://my-mcp-server.com",
"enabled": true,
"headers": {
"Authorization": "Bearer MY_API_KEY"
}
}
}
}
「关键字段说明:」
-
type: 必须设置为"remote" -
url: MCP服务器的访问地址 -
headers: HTTP请求头,通常用于身份验证
4.3 实战案例:配置高德地图MCP
假设你需要让AI具备地图查询能力(查地点、规划路线等),可以使用高德地图官方提供的MCP:
「步骤1:申请高德地图API Key」
前往 高德开放平台 注册账号并申请Web服务API Key。
在高德开放平台申请 Key 时,务必选择“Web服务”,只有“Web服务”才能通过 API 获取天气、路径规划等结构化数据。
「步骤2:配置opencode.json」
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"amap-maps": {
"type": "local",
"enabled": true,
"command": ["npx", "-y", "@amap/amap-maps-mcp-server"],
"environment": {
"AMAP_MAPS_API_KEY": "你的高德API密钥"
}
}
}
}
「步骤3:开始使用」
配置完成后,你可以直接对OpenCode说:
❝
"查一下从北京天安门到上海外滩的驾车路线"
❞

❝
"搜索上海外滩附近的星巴克"
❞

❝
"把'杭州西湖'这个地址转换成经纬度坐标"
❞

AI会自动调用高德MCP提供的工具完成任务。
五、Skill实战:安装和使用你的第一个Skill
5.1 手动创建Skill
如果你有一套特定的工作流程想要固化下来,可以手动创建Skill。
「示例:创建Git发布管理Skill」
-
创建目录: .opencode/skills/git-release/ -
创建文件: SKILL.md -
写入内容:
---
name:git-release
description:Createconsistentreleasesandchangelogs
license:MIT
compatibility:opencode
metadata:
audience:maintainers
workflow:github
---
## What I do
-DraftreleasenotesfrommergedPRs
-Proposeaversionbump
-Provideacopy-pasteable`ghreleasecreate`command
## When to use me
Usethiswhenyouarepreparingataggedrelease.
Askclarifyingquestionsifthetargetversioningschemeisunclear.
## Steps
1.ReviewmergedPRssincelasttag
2.Categorizechanges(feat,fix,docs,etc.)
3.Draftreleasenotes
4.Suggestversionbumpbasedonsemver
5.Generatereleasecommand
5.2 从Skill仓库安装
更常见的情况是从社区仓库安装现成的Skill。OpenCode支持多个Skill仓库:
-
「Skills.sh」:https://skills.sh/ -
「Clawhub」:https://clawhub.ai/skills
5.3 实战案例:安装find-skills
find-skills 是一个特别实用的Skill——它的唯一任务是「教AI如何找到并安装其他Skill」。
「安装命令:」
npx skills add https://github.com/vercel-labs/skills --skill find-skills


「如果命令执行失败」,可以手动安装:
-
前往 https://clawhub.ai/JimLiuxinghai/find-skills -
下载ZIP包并解压 -
将解压后的文件夹放入 ~/.agents/skills/目录

「使用示例:」
安装完成后,你可以直接问AI:
❝
"有没有能帮我优化React代码的技能?"
❞

❝
"找一下处理数据库的skill"
❞

AI会激活 find-skills 技能,自动搜索并推荐合适的Skill包,甚至给出安装命令。
5.4 Skill权限管理
你可以在 opencode.json 中配置Skill的访问权限:
{
"permission": {
"skill": {
"*": "allow", // 默认允许所有
"pr-review": "allow", // 明确允许pr-review
"internal-*": "deny", // 禁止所有internal-开头的
"experimental-*": "ask" // 实验性的需要询问
}
}
}
「权限选项:」
-
allow:立即加载 -
deny:对AI隐藏,拒绝访问 -
ask:加载前提示用户确认
六、从入门到精通:最佳实践建议
1. 先从官方MCP开始
新手建议从 官方MCP仓库 开始,这里有GitHub、文件系统、数据库等常用MCP,配置简单、文档齐全。
2. 善用环境变量
API密钥等敏感信息不要硬编码在配置文件中,使用环境变量:
{
"environment": {
"API_KEY": "{env:MY_API_KEY}"
}
}
3. 按项目组织Skill
把项目特定的Skill放在 .opencode/skills/ 下,通用的Skill放在全局配置中。这样既能保证项目独立性,又能复用通用能力。
4. 写好Skill描述
Skill的 description 字段是AI决定是否使用该Skill的关键,要写清楚:
-
这个Skill能做什么 -
在什么场景下使用 -
使用前提条件
5. 从小处着手,逐步迭代
不要试图一次性配置完美的MCP和Skill体系。先从一个具体的痛点开始(比如"让AI能查天气"),配置一个MCP,验证效果,再逐步扩展。
结语:打开AI的无限可能
MCP和Skill的出现,标志着AI从"单兵作战"向"生态协作"的重大转变。
通过MCP,AI终于拥有了连接世界的「标准接口」;通过Skill,AI学会了「如何系统地解决问题」。
OpenCode作为领先的AI编程工具,率先完整支持了MCP协议和Skill系统,让我们能够在本地就构建起强大的AI工作流。
现在,轮到你动手了。打开你的OpenCode,配置第一个MCP,安装第一个Skill,让AI真正成为你的得力助手。

