MCP-Skill-CLI三层架构详解:三大厂开源CLI打通AI Agent落地最后一公里

三大厂同周开源CLI:MCP-Skill-CLI三层栈成型,Agent落地最后一公里打通了
想搭一个能自动处理飞书审批、同步钉钉日程、还能在企微群里发报表的AI Agent?以前你得对接三套SDK、处理三种鉴权、写三遍业务逻辑。
现在,三大厂同时开源CLI,意味着MCP-Skill-CLI三层商用栈首次完整成型。今天拆解这套架构,给你一个可复制的"AI自动化赚钱"路径。
一、先搞清楚这三层到底是什么
┌─────────────────────────────────────────────┐
│ 你的 AI Agent / 大模型 │
│ (Claude、GPT、本地模型等) │
└─────────────────┬───────────────────────────┘
│ MCP 协议(标准通信层)
▼
┌─────────────────────────────────────────────┐
│ Skill 插件层 │
│ 飞书Skill / 钉钉Skill / 企微Skill │
│ (封装业务能力:审批、日程、消息、文档) │
└─────────────────┬───────────────────────────┘
│ CLI 执行层
▼
┌─────────────────────────────────────────────┐
│ CLI(命令行工具) │
│ lark-cli / ding-cli / wecom-cli │
│ (本地执行、鉴权、日志、错误处理) │
└─────────────────────────────────────────────┘MCP(Model Context Protocol) 是Anthropic提出的开放协议,定义了大模型和外部工具之间的通信标准。你可以理解为"AI世界的USB接口"——模型不需要知道工具怎么实现,只需要按协议调用。
Skill 是业务能力的封装。一个飞书Skill可能包含create_approval、send_message、query_calendar等原子操作。它是MCP协议的具体实现载体。
CLI 是这次开源的核心。它是执行层——Skill定义了"能做什么",CLI负责"怎么做"。鉴权、重试、日志、本地缓存,全部在CLI层处理。
三层分工清晰:MCP管通信,Skill管能力,CLI管执行。
二、为什么CLI是关键拼图?
之前MCP生态有个尴尬问题:协议定了,Skill也写了,但实际跑起来还是得自己处理token刷新、网络重试、日志追踪这些脏活。
CLI开源解决了三个核心痛点:
1. 鉴权标准化
# 以前:每个平台自己写OAuth流程
# 现在:一条命令搞定
lark-cli auth login --app-id cli_xxx --app-secret xxx
ding-cli auth login --app-key xxx --app-secret xxx
wecom-cli auth login --corp-id xxx --agent-id xxxCLI内置了完整的OAuth2流程,token自动刷新,开发者不用再处理access_token过期这种经典bug。
2. 调试可视化
# 实时查看Skill调用链路
lark-cli skill call create_approval \
--params '{"title":"报销","amount":5000}' \
--verbose --trace-id abc123每个Skill调用都有trace-id,出了问题直接定位,不用翻日志猜。
3. 本地沙箱
CLI支持--dry-run模式,Skill调用不会真正执行,方便开发阶段测试。
三、实战案例:跨平台数据流自动化,月省40小时
场景:某电商运营团队,每天需要从钉钉审批流中提取采购数据→同步到飞书多维表格→在企微群发送当日汇总。
以前的做法:人工导出Excel,手动粘贴,每天花1.5小时,还经常出错。
用MCP-Skill-CLI栈改造后:
# main.py - 跨平台数据流编排
import subprocess
import json
from datetime import datetime
def get_ding_approvals():
"""从钉钉获取今日审批数据"""
result = subprocess.run(
["ding-cli", "skill", "call", "query_approvals",
"--params", json.dumps({
"process_code": "PROC-采购审批",
"start_time": datetime.now().strftime("%Y-%m-%d"),
"status": "approved"
}), "--output", "json"],
capture_output=True, text=True
)
return json.loads(result.stdout)

def sync_to_lark(approvals):
"""同步到飞书多维表格"""
records = []
for item in approvals:
records.append({
"fields": {
"采购单号": item["business_id"],
"金额": item["amount"],
"申请人": item["applicant"],
"审批时间": item["approve_time"]
}
})
subprocess.run(
["lark-cli", "skill", "call", "batch_create_records",
"--params", json.dumps({
"app_token": "bascnXXX",
"table_id": "tblXXX",
"records": records
})]
)
return len(records)
def notify_wecom(count, total_amount):
"""企微群发送汇总"""
subprocess.run(
["wecom-cli", "skill", "call", "send_text_message",
"--params", json.dumps({
"chat_id": "wrXXXXXXXX",
"content": f"📊 今日采购审批汇总\n"
f"✅ 已审批单数:{count}\n"
f"💰 总金额:¥{total_amount:,.2f}\n"
f"⏰ 数据已同步至飞书表格"
})]
)
if __name__ == "__main__":
approvals = get_ding_approvals()
count = sync_to_lark(approvals)
total = sum(item["amount"] for item in approvals)
notify_wecom(count, total)
print(f"✅ 完成:{count}条记录,¥{total:,.2f}")部署步骤:
# 1. 安装三个CLI
npm install -g @dingtalk/cli @lark/cli @wecom/cli
# 2. 分别登录授权
ding-cli auth login --app-key xxx --app-secret xxx
lark-cli auth login --app-id xxx --app-secret xxx
wecom-cli auth login --corp-id xxx --agent-id xxx
# 3. 设置定时任务(每天18:00执行)
# crontab -e
0 18 * * * /usr/bin/python3 /opt/automation/main.py >> /var/log/auto-sync.log 2>&1效果:
| 指标 | 改造前 | 改造后 |
|---|---|---|
| 每日耗时 | 1.5小时 | 0(全自动) |
| 错误率 | 约5% | 0% |
| 月节省人力 | - | 40小时 |
| 按运营时薪50元算 | - | 月省2000元 |
四、商业化思路:把自动化能力打包卖
这个案例只是起点。基于MCP-Skill-CLI栈,你可以做三件事赚钱:
1. 卖自动化模板(最快变现)
把上面的跨平台数据流封装成一键部署模板,在龙虾市场上架。定价99-299元/套,目标客户是中小企业运营团队。
2. 做垂直行业Agent(中期价值)
比如针对电商行业的"采购-库存-财务"全链路Agent,接入更多Skill(ERP、财务系统),打包成SaaS服务,按月收费。
3. 提供定制开发服务(高客单价)
帮企业基于这套栈定制内部自动化流程,单个项目报价5000-20000元。
下一步行动
- 今天:去GitHub搜三大厂CLI仓库,
star并本地安装,跑通auth login - 本周:挑一个你团队的重复性工作(审批同步、报表汇总、消息通知),用上面的代码模板搭一个最小可行版本
- 本月:把你的自动化方案封装成Skill模板,上架到龙虾平台,验证市场需求
三层栈已经成型,工具链已经就位。现在缺的不是技术,是你动手的那一下。