钉钉飞书企微同周开源CLI工具,MCP生态三件套助力AI Agent落地

三大厂同周开源CLI,MCP生态的“三件套”终于齐了
想用AI Agent打通钉钉/飞书/企微?以前你得啃三套API文档,现在可能只需要一行命令。
上周,钉钉、飞书、企业微信几乎同时开源了各自的CLI工具。这不是巧合——它意味着MCP(Model Context Protocol)生态正从“协议规范”走向“开发者可落地”的临界点。
今天拆解三个东西:CLI、MCP Server、Skill,以及它们如何组成AI Agent落地的“三件套”。
一、CLI:MCP Server的“一键启动器”
先说痛点:MCP Server虽然标准化了AI与外部服务的通信协议,但部署门槛不低——你得配置环境变量、处理认证、管理进程。对很多开发者来说,光这一步就劝退了。
CLI的出现,本质上是把部署复杂度压缩成一行命令。
# 以前:手动配置MCP Server连接钉钉
# 现在:
npx @dingtalk/cli mcp start --token YOUR_TOKEN三大厂开源的CLI都做了同一件事:预置了认证流程、连接池管理、错误重试。你不需要理解OAuth的每一个细节,CLI帮你封装好了。
以钉钉CLI为例,它的核心能力:
// 钉钉CLI提供的MCP Server启动逻辑(简化版)
const { DingtalkMCPServer } = require('@dingtalk/mcp-server');
const server = new DingtalkMCPServer({
appId: process.env.DINGTALK_APP_ID,
appSecret: process.env.DINGTALK_APP_SECRET,
// CLI自动处理token刷新
autoRefreshToken: true
});
// 暴露标准化的MCP工具
server.tool('send_message', {
description: '发送钉钉消息',
parameters: {
chatId: { type: 'string', required: true },
content: { type: 'string', required: true }
}
}, async ({ chatId, content }) => {
// 实际调用钉钉API
return await dingtalkClient.messages.send({ chatId, content });
});
server.start({ port: 3001 });关键点:CLI不是替代MCP Server,而是让MCP Server的启动和管理变得“无感”。开发者可以把精力放在业务逻辑上,而不是基础设施上。
二、Skill:跨平台复用的“能力单元”
如果说CLI解决了“怎么启动”的问题,Skill解决的是“怎么复用”。
Skill的本质:把一个完整的业务能力(比如“发送审批通知”)封装成标准化的MCP工具描述,包含输入输出schema、依赖声明、版本管理。
// 一个典型的Skill定义
{
"name": "approval_notification",
"version": "1.2.0",
"description": "发送审批通知到指定平台",
"platforms": ["dingtalk", "feishu", "wecom"],
"parameters": {
"platform": { "type": "string", "enum": ["dingtalk", "feishu", "wecom"] },
"userId": { "type": "string" },
"approvalId": { "type": "string" },
"message": { "type": "string" }
},
"dependencies": ["@dingtalk/cli", "@feishu/cli", "@wecom/cli"]
}跨平台复用的关键:Skill定义了“做什么”,而具体“怎么做”由各平台的CLI/MCP Server实现。同一个Skill,调用钉钉时走钉钉的API,调用飞书时走飞书的API——对上层Agent来说,接口完全一致。
实际开发中,你可以这样组合Skill:
// Agent调用Skill的示例
const { SkillRunner } = require('@mcp/skill-runner');
const runner = new SkillRunner();
// 同一个Skill,不同平台
await runner.run('approval_notification', {
platform: 'dingtalk', // 切换平台只需改这一行
userId: 'user123',
approvalId: 'approval_456',
message: '请审批:Q2预算申请'
});三、“三件套”实战:构建跨平台自动化工作流
现在把CLI、MCP Server、Skill串起来,看一个真实场景:跨平台审批聚合。
需求:用户在钉钉、飞书、企微提交的审批,统一汇总到一个AI Agent,Agent自动分类、打标、转发给对应负责人。
架构:
[钉钉CLI] → [钉钉MCP Server] ↘
[飞书CLI] → [飞书MCP Server] → [统一审批聚合Agent] → [智能分发]
[企微CLI] → [企微MCP Server] ↗实现步骤:
Step 1:启动三个MCP Server
# 终端1
npx @dingtalk/cli mcp start --port 3001
# 终端2
npx @feishu/cli mcp start --port 3002
# 终端3
npx @wecom/cli mcp start --port 3003Step 2:配置Agent连接多个MCP Server
// agent-config.yaml
mcpServers:
dingtalk:
url: http://localhost:3001
skills: ["approval_notification", "get_approval_list"]
feishu:
url: http://localhost:3002
skills: ["approval_notification", "get_approval_list"]
wecom:
url: http://localhost:3003
skills: ["approval_notification", "get_approval_list"]Step 3:Agent业务逻辑
// 聚合Agent核心逻辑
class ApprovalAggregator {
async processApproval(platform, approvalData) {
// 1. 统一格式
const normalized = this.normalize(platform, approvalData);
// 2. AI分类(调用Claude/OpenClaw)
const category = await this.classifyWithAI(normalized.content);
// 3. 根据分类路由到负责人
const handler = this.getHandler(category);
// 4. 通过对应平台CLI发送通知
await this.mcpClients[handler.platform].callSkill(
'approval_notification',
{
userId: handler.userId,
message: `新审批 [${category}]: ${normalized.title}`
}
);
}
}四、商业化路径:从工具到服务
这套“三件套”不只是技术方案,它打开了几个商业化方向:
方向1:Skill市场
把高频场景封装成付费Skill。比如“跨平台考勤汇总”、“多平台客户消息聚合”,定价按调用次数或订阅制。
方向2:垂直行业Agent
基于三件套快速搭建行业解决方案。比如零售行业的“多平台库存同步Agent”,教育行业的“家校多平台通知Agent”。
方向3:托管服务
帮企业部署和维护这套架构,收取技术服务费+年度运维费。
一个可复制的赚钱案例:
某开发者用这套架构做了“多平台客服聚合Agent”,把钉钉、飞书、企微的客户咨询统一接入,AI自动回复常见问题,复杂问题转人工。部署成本约2000元/月(云服务器),向中小企业收费3000-5000元/月,目前已服务23家企业,月利润约7万元。
下一步行动
- 今天:选一个平台(建议从钉钉开始,文档最全),用CLI启动你的第一个MCP Server
- 本周:封装一个你常用业务场景的Skill,测试跨平台调用
- 本月:找一个垂直场景,用三件套搭建MVP,验证付费意愿
CLI让MCP Server触手可及,Skill让能力可复用,三件套让AI Agent真正落地。现在入场,正是时候。