关于 Flutter_mcp
一个使用 Flutter 构建的 Claude AI 桌面应用,遵循清洁架构原则,通过 Melos 管理模块化代码库,实现 MCP 协议以支持 AI 交互和工具调用。
主要功能
- 01跨平台桌面应用(Windows、macOS、Linux)
- 02MCP 客户端和服务器实现
- 03聊天界面和流式更新
- 04MCP 服务器管理(添加、编辑、删除)
- 05内置 AI 和函数调用支持
适用场景
- 01使用 Gemini 交互的本地 AI 桌面应用
- 02连接和管理多个 MCP 服务以扩展功能
- 03开发遵循清洁架构的 Flutter 应用参考
MCP 相关
该应用实现了 MCP 客户端,通过结构化消息、工具注册和调用、内容嵌入与连接生命周期管理,与后端 MCP 服务进行交互。
详细介绍
Flutter MCP 客户端 — 一个使用 Flutter 构建的 Claude AI 桌面应用,遵循清洁架构原则,采用 Melos 驱动的模块化单体仓库架构。该应用演示了模型上下文协议 (MCP) 的实现,用于丰富的 AI 驱动交互。
🧰 功能
- 🖥️ 桌面优先的 Flutter 应用
- 🧼 采用清洁架构的模块化单体仓库
- 📦 使用 Flutter Bloc 进行状态管理
- 🔌 MCP 客户端/服务器实现,用于与 Gemini 交互
- 💬 支持实时流更新的聊天界面
- ⚙️ 添加、编辑和管理 MCP 服务
- 🧠 内置 AI 和函数调用支持
- 🎨 自定义组件和清洁 UI
📁 项目结构
该仓库使用 Melos 采用单体仓库方法组织:
apps/ # Main Flutter applications
external/ # External SDKs or libraries (e.g., LLM Kit)
packages/ # Feature-specific packages (Clean Architecture layers)
关键层
flutter_mcp_entities: AI、聊天和 MCP 的数据模型flutter_mcp_datasources: 本地和远程数据处理flutter_mcp_repositories: 用于依赖注入的仓储flutter_mcp_usecases: 实现核心逻辑的用例flutter_mcp_state: BLoC/Cubit 状态管理flutter_mcp_widgets: 自定义可复用 UI 组件
🚀 快速开始
前置条件
确保已安装以下工具:
-
Flutter SDK
-
Dart SDK
-
Melos (单体仓库管理器):
dart pub global activate melos
安装
# Clone the repository
git clone https://github.com/your-org/flutter_mcp.git
cd flutter_mcp
# Bootstrap all packages
melos bootstrap
运行应用
# Navigate to app directory
cd apps/flutter_mcp
# Launch for your platform
flutter run -d windows
flutter run -d macos
flutter run -d linux
🧪 运行测试
melos run test
🔍 包概览
packages/ 中的每个包封装一个特定的层或功能:
| 包 | 描述 |
|---|---|
flutter_mcp_entities | 领域模型和实体 |
flutter_mcp_datasources | 本地持久化和数据源 |
flutter_mcp_repositories | 领域仓储的抽象层 |
flutter_mcp_usecases | 业务逻辑和用户交互 |
flutter_mcp_state | 基于 Cubit/Bloc 的状态管理 |
flutter_mcp_widgets | 自定义 UI 组件 |
🎨 UI 与 UX
- 使用 Copernicus 和 StyreneB 等字体
- 响应式布局和自定义主题
- 可复用表单字段、聊天气泡、连接指示器
📡 MCP 协议支持
该应用实现了 MCP (模型上下文协议) 客户端,通过结构化消息、工具调用和内容嵌入来实现 AI 交互。
支持的功能包括:
- 流式聊天更新
- 工具注册和调用
- 嵌入式内容处理 (文本、图像、资源)
- 连接生命周期管理
🤝 贡献
欢迎贡献!开始方式如下:
melos bootstrap
melos run analyze
请在 GitHub 上提交 issue 或 pull request。
📜 许可证
MIT 许可证
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。