使用AI智能体的MCP和SKILL

现在好多OpenClaw龙虾非常火热,造成很多人跟风养龙虾,那么每个人真的特别需要吗,这真的是不用盲目跟风。

如果现在使用豆包,千问,deepseek等智能体就能够很好的辅助完成部分工作内容,平时工作量又不是特别大,用智能体就能完成多半工作,相信多数人下班后或者周末连电脑都不会打开,暂时就没有安装龙虾的必要;更深入的使用AI智能体还是有必要的。

想使用AI智能体更深入,就需要了解MCP和SKILL;毕竟CLine或者Cherry Studio或者Cursor等都支持自定义MCP配置;

如果想了解 AI 圈为什么会有这2个概念,这2个的作用是什么?

  • MCP是最早由Anthropic在2024年11月25日发布并开源的,在2025年初就开始流行的技术,MCP Server 是一个独立运行的服务,它保证了数据的安全性和稳定性。提供了对智能体功能的扩展,比如可以操作数据库,操作浏览器,对接一些服务等
  • SLILL是最近2026提出并作为规范的技术,主要是给智能体提供一个数据约束规范,并且SKILL是按需加载,不会浪费Token。

MCP的定义和使用

如果把大模型比作电脑主机,MCP Server 就是USB 设备(如鼠标、键盘、U盘)。

  1. 核心定义:MCP Server 是一个轻量级程序,它通过标准化的协议(MCP),向 AI 模型暴露上下文(数据)和能力(工具)。
  2. 三大核心能力
    1. 工具 (Tools) --- "手和脚"------ 可调用的函数或动作。AI 可以请求执行这些工具来改变系统状态或获取实时数据。
    2. 资源 (Resources) --- "眼睛和记忆"------ 只读的数据源。类似于文件系统中的"文件"。AI 可以读取这些内容作为上下文,但不能直接修改。
    3. 提示词 (Prompts) --- "预设剧本"------ 预定义的指令模板。Server 可以向 AI 推荐特定的工作流。

下面的MCP Server操作都使用的Claude

添加MCP服务

有很多已经存在的MCP服务供我们使用,可以直接添加运行,比如官方的filesystem,可以操作指定的目录文件

python 复制代码
claude mcp add -- filesystem npx @modelcontextprotocol/server-filesystem ./

完成添加后,可以看到

python 复制代码
"mcpServers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "@modelcontextprotocol/server-filesystem",
        "./"
      ],
      "env": {}
    }
  },

使用<u>claude mcp list</u>也可以查看添加的mcp服务列表;

测试使用

可以看到使用了filesystem的mcp服务,列出当前目录的文件列表

创建自定义MCP Server服务,并添加

使用python来创建,并使用uv来管理项目;

使用uv创建mcpServer-test目录, 并指定使用python 3.13版本

python 复制代码
uv init mcpServer-test -p 3.13

同时安装MCP[cli] 执行命令

python 复制代码
uv add "mpc[cli]"

接下来修改main.py内容,创建一个最简单的2数字相加的MCP服务

python 复制代码
# 编写一个数字相加的 mcp 服务器,启动端口为8000
# server.py
from mcp.server.fastmcp import FastMCP

# 1. 创建一个名为 "Demo" 的 MCP 服务器实例
mcp = FastMCP("Demo")

# 2. 定义一个工具
# 使用 @mcp.tool() 装饰器将一个 Python 函数注册为 MCP 工具
# 详细的文档字符串 (docstring) 非常重要,它帮助 AI 理解工具的用途
@mcp.tool()
def add(a: int, b: int) -> int:
    """将两个数字相加"""
    return a + b

# 3. 定义一个资源, 有点类似http请求中的get方法,resource为大模型提供只读数据
@mcp.resource("greeting://{name}")
def get_greetings(name: str) -> str:
    """返回一个问候语"""
    return f"Hello, {name}!"

# 4. 启动服务器
if __name__ == "__main__":
    # 使用 stdio 传输方式启动服务
    mcp.run(transport="stdio")

在启动服务中有http或者stdio或者sse

添加使用的stdio的MCP

stdio是最简单的使用方式,不用单独启动服务

使用命令添加服务,添加成功后mcpServers中会多出来addServer

python 复制代码
claude mcp add addServer -- uv run G:/aiCode/mcpServer-test/main.py

使用mcp list进行查看

添加使用的http的MCP

http的MCP需要现在启动服务;

修改下4. 启动服务器的方式

python 复制代码
# 4. 启动服务器
if __name__ == "__main__":
    # 配置服务器监听所有网络接口 (0.0.0.0),以便可以从外部访问
    mcp.settings.host = "127.0.0.1"
    mcp.settings.port = 8000
    # 使用 streamable-http 传输方式启动服务
    mcp.run(transport="streamable-http")

在项目中启动服务,uv run main.py可以看到下面

使用命令添加MCP,然后就可以在mcpServers中看到

python 复制代码
claude mcp add --transport http add-server http://127.0.0.1:8000/mcp

添加成功后,使用list命令查看下

测试使用自定义的mcp

可以看到调用了自定义的addServer MCP服务;

官方示例

官方给出的示例是查询天气的MCP。完整流程modelcontextprotocol.io/docs/develo...

同时给出了使用typescript进行创建;地址连接modelcontextprotocol.io/docs/develo...

SKILL的定义和使用

规范和定义

Skill 的核心价值在于标准化、自动化和可复用。它解决重复性工作中需要反复输入相同指令【prompt】的痛点。相当于一个prompt的升级

  • 封装规范与流程 :将团队的代码审查标准、文档撰写格式、数据分析流程等固化下来,确保每次执行都遵循最佳实践,输出结果稳定一致。
  • 提升效率一次创建,反复调用。无需为相同类型的任务重复编写复杂的提示词,大幅减少了沟通成本和 AI 的推理时间。
  • 跨平台复用:同一个 Skill 可以在 Claude 网页版、Claude Code(命令行工具)以及通过 API 调用的场景中通用。

核心文件结构

一个标准的 Skill 文件夹结构如下:

python 复制代码
my-first-skill/
├── SKILL.md          # 必需:主指令文件,定义技能的触发条件和执行规则
├── scripts/          # 可选:存放可执行脚本,如 Python 或 Shell 脚本
├── references/       # 可选:存放参考文档或更详细的规范
└── assets/           # 可选:存放模板、图片等资源文件

工作原理:渐进式披露

为了高效利用上下文,Skill 采用了一种名为"渐进式披露"(Progressive Disclosure)的机制:

  1. 发现与索引 :Claude 启动时,只会读取 所有可用 Skill 的 <font style="color:rgb(6, 10, 38);">name</font><font style="color:rgb(6, 10, 38);">description</font>(位于 <font style="color:rgb(6, 10, 38);">SKILL.md</font> 的顶部),这部分信息占用极少的上下文资源。
  2. 按需激活 :当你的提问或任务与某个 Skill 的 <font style="color:rgb(6, 10, 38);">description</font> 描述相匹配时,Claude 才会完整加载该 <font style="color:rgb(6, 10, 38);">SKILL.md</font> 文件的全部内容。
  3. 执行任务 :Claude 根据加载的指令执行任务,并在需要时调用 <font style="color:rgb(6, 10, 38);">scripts/</font><font style="color:rgb(6, 10, 38);">references/</font> 中的资源。

创建自定义的SKILL

基础skill的创建

接下来创建一个简单的工作日报总结的SKILL;平时工作中写日报是比较头大的事情,这个重复工作可以交给SKILL;

以Claude为例,创建skill-test的目录,在目录下创建.claude目录

python 复制代码
skill-test/
├── .claude         # 必需:存储项目级别的处理文件
    ├── skills/         
        ├── 工作日报/      # 必需:SKILL的不同目录结构
            ├── SKILL.md  # 必需:SKILL的内容
            ├── references/       # 可选:存放参考文档或更详细的规范
            └── assets/           # 可选:存放参考文档或更详细的规范

创建SKILL.md这里的名称必须大写。

python 复制代码
---
name: 工作日报
description: 该技能用于提供工作日报服务,包括记录工作内容、总结工作成果
---

# 工作日报

读取 `./code` 目录下的改动情况,并总结成日报格式:

- 今日工作内容:修改了哪些文件,解决了哪些问题
- 工作成果总结:总结今天的工作成果和收获 
- 日报时间:记录日报的日期 


## 示例

### 1. 读取目录改动情况

读取 `D:/work/code` 目录下的改动情况,并总结成日报格式:

- 今日工作内容:修改了index.html文件,修复了页面加载慢的问题;更新了style.css文件,优化了页面样式。
- 工作成果总结:修复页面加载性能文档问题,提升了用户体验;优化页面样式,使界面更加美观。 
- 日报时间:2024-06-01

这个文件需要注意的地方:

  • name必须和外层文件夹的名称保持一致
  • description:必须填写,是给agent说明工具的使用
  • 其他部分就是按需加载,只有使用到该skill时,才会加载相关内容

以上是最基本的一个SKILL,下面来进行测试下。在code目录下创建一个index.html,随便写下内容

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
  <body>
    <div>这是一个贪吃蛇游戏页面</div>
  </body>
</html>

启动claude,测试skill的使用

SKILL中的高级使用Reference和script

reference的使用-开发代码会有相应的规范

使用reference可以定义**在特殊需要的情况下加载相关内容**;

比如写了一段js代码,格式和命名混乱,要进行修改和提示处理

javascript 复制代码
let a=1;let b =  3;
console.log(a
            ,b
           )

为了在日报总结时,提醒这段代码格式混乱;就可以修改 工作日报/SKILL.md文件

plain 复制代码
# 工作日报

读取 `./code` 目录下的改动情况,并总结成日报格式:

- 今日工作内容:修改了哪些文件,解决了哪些问题
- 工作成果总结:总结今天的工作成果和收获 
- 日报时间:记录日报的日期 

## 代码格式规范
当看到添加的js,py,java等代码时,应该按照 `./reference/代码格式规范.md` 中的格式进行提醒给用户,确保代码的规范性和可读性.

也可以询问用户是否需要按照规范格式化代码,并提供相应的工具或方法来帮助用户进行代码格式化.

添加 红框中部分内容

启动claude,测试reference的调用

当让claude总结今天的工作内容时,它发现添加了js文件,然后就调用了代码规范的文件调用。

plain 复制代码
总结今天的工作内容

● Skill(工作日报)
  ⎿  Successfully loaded skill

● 让我读取 code 目录和代码格式规范文件。

然后就是日报总结输出

script脚本动作

如果需要将日报内容提交到自己的系统,或者记录到钉钉日报等;就需要一系列操作动作来执行。

以把日报上传到服务器为例,写一个upload.py上传文件。

python 复制代码
import sys
import time


def upload_file(content):
    print("\n[System] 启动上传程序...")
    time.sleep(0.5)
    
    # 这里只是测试使用,实际连接服务器敏感操作可以让skill操作MCP,MCP再去连接服务器,更加安全
    print("[System] 连接公司内部服务器 (https://127.0.0.1:3456/upload/daily/)...")
    time.sleep(1.2)

    # 模拟数据处理
    print(f"[System] 正在上传总结内容(字符数:{len(content)})...")
    time.sleep(1.0)

    print("------------------------------------------------------------------------------------")
    print("✅ 上传成功!")
    print(f"📄 文档已保存至: /daily/2026/daily_{int(time.time())}.md")
    print("------------------------------------------------------------------------------------")


if __name__ == "__main__":
    # 获取 Claude 传入的总结文本
    if len(sys.argv) > 1:
        ContentText = sys.argv[1]
        upload_file(ContentText)
    else:
        print("❌ 错误:未接收到总结内容。")

可以看到将工作日报内容上传到服务器。

总结

  • MCP是2025年就已经发展并流行的技术,用于让AI能够获取外部数据,或者操作外部工具的一项技术。
  • SKILL是2026年最新提出并推广的技术,主要是用于给AI内容输出做规范提示,相当于给AI提供更加详细的Prompt【SKILL的提示词只有在使用时才消耗Token】;
    • SKILL中的Script也能提供以下操作动作,但是安全性不如MCP server;简单的处理逻辑可以让SKILL来处理,这个部分有点像传统前端开发工作;
    • 如果有操作数据库,等安全性的操作最好还是放到MCP中处理,有点是类型传统开发的后端工作
  • SKILL中也可以添加操作MCP的指令动作,这2个工具相互辅助,其实都是为了让AI输出的内容更加符合用户的需求,另外就是能够更加节省Token【省钱】;
相关推荐
cxr8282 小时前
OpenClaw Node 技术架构与核心概念
人工智能·架构·ai智能体·openclaw
1941s2 小时前
OpenClaw 每日新玩法 | 多 Agent 协作系统 - 让 AI 员工 24小时自主工作
人工智能·agent·openclaw
步步为营DotNet2 小时前
深入剖析.NET 11 中 Microsoft.Extensions.AI 在 AI 驱动后端开发的进阶应用
人工智能·microsoft·.net
空空潍2 小时前
Spring AI 实战系列(三):多模型共存+双版本流式输出
java·人工智能·spring
gaozhiyong08132 小时前
提示词的解剖学:Gemini 3.1 Pro 提示工程高级策略与国内实战
人工智能·算法·机器学习
Langchain2 小时前
2026 年 AI 最值得关注的方向:上下文工程!
人工智能·python·自然语言处理·llm·agent·大模型开发·rag
学习者0072 小时前
大模型之VLLMA
人工智能
iThinkAi智能体2 小时前
1个运营带4个实习生,周产350篇笔记:小红书图文矩阵真的没那么玄乎
人工智能·经验分享·笔记
chaofan9802 小时前
深度实战:2026年大模型应用如何解决“接口抖动”?五大主流平台横向测评
人工智能·自动化·api·claude opus