Dart 也能玩 AI Agent?这个新工具让函数一键变 MCP 服务

它的核心能力非常直接,但意义不小:
把 Dart 函数,自动转换成 MCP(Model Context Protocol)服务。
听起来抽象,但其实它正在解决一个非常现实的问题——
如何让 AI(如 Claude、ChatGPT)直接调用你的代码能力。
一、这个工具到底做了什么?
根据原帖介绍:
“easy_mcp 是一个 Dart 代码生成工具,可以把带注解的函数转换成 MCP 服务器。”
简单理解就是:
- 你写普通 Dart 函数
- 加上注解(annotation)
- 自动生成一个 AI 可调用的接口(MCP Server)
二、为什么这件事很重要?
先说结论:
它把“函数 → AI工具”的成本降到了极低
过去如果你想让 AI 调用你的能力,需要:
- 写 API
- 定义 schema
- 处理调用逻辑
- 适配 AI 工具调用格式
现在变成:
- 写函数
- 加注解
- 自动生成
三、代码长什么样?
开发方式非常简单:
1import'package:easy_mcp_annotations/mcp_annotations.dart';
2
3@Mcp(transport: McpTransport.stdio)
4classMyServer{
5
6@Tool(description: 'Create a new user')
7 Future<bool> createUser(String name, String email) async {
8returntrue;
9 }
10}
然后执行:
1dart run build_runner build
直接生成一个完整的 MCP 服务。
四、核心能力拆解
这个工具提供了几项关键能力:
1. 注解驱动(最核心)
只需要:
@Mcp@Tool
就能完成服务定义。
2. 自动生成 JSON Schema
工具会根据 Dart 类型自动生成:
- 参数结构
- 类型定义
- 校验规则
不需要手写 schema。
3. 支持两种通信方式
- stdio(JSON-RPC)
→ 适合 CLI 工具 - HTTP(基于 shelf)
→ 适合 Web 服务
4. 丰富的参数描述能力
支持:
- 参数说明
- 示例
- 校验规则
让 AI 更容易理解如何调用你的工具。
5. 文档自动继承
如果没有写 description:
- 会自动读取代码注释作为说明
五、什么是 MCP?为什么大家都在做?
如果你最近关注 AI Agent,一定听过 MCP。
简单来说:
MCP 是一种标准协议,让 AI 可以调用外部工具和服务
一个很直白的解释:
“它是 AI 与外部系统之间的桥梁。”
比如:
- AI 调数据库
- AI 操作 GitHub
- AI 控制系统
都可以通过 MCP 实现。
六、这个工具解决了什么痛点?
传统方式:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
而 easy_mcp:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
七、适合哪些场景?
1. AI Agent 工具开发
比如:
- 自动创建用户
- 查询数据
- 执行业务逻辑
2. 内部工具 AI 化
把已有系统能力:
→ 直接暴露给 AI 使用
3. Flutter + AI 项目
如果你本身就在用 Dart:
- 无需切换语言
- 直接接入 AI 能力
八、行业趋势:从 API 到 Agent
从技术演进来看:
- 过去:API 驱动
- 现在:AI Agent 驱动
而 MCP 的定位是:
API 的下一层抽象(给 AI 用的 API)
而 easy_mcp 做的事情是:
把 Dart 直接接入这个体系
九、需要理性看待的地方
这个方向很新,但也有一些现实问题:
1. MCP 生态还在早期
- 标准在发展
- 工具链不稳定
2. 并不是所有场景都需要 MCP
有开发者也指出:
- 在某些情况下,直接 API 或 CLI 更简单
3. Agent 能力依赖模型
工具再好,也要看:
- AI 是否能正确调用
- Prompt 是否设计合理
十、总结
easy_mcp 的价值,不只是一个工具,而是一种方向:
让 Dart 成为 AI Agent 生态的一部分
它的核心意义在于:
- 降低 AI 集成门槛
- 简化工具暴露流程
- 加速 Agent 应用开发
如果你正在做:
- Flutter + AI
- Agent 系统
- 自动化工具
那么这个方向,值得重点关注。
夜雨聆风