消息平台统一抽象层

MCP Channel是一个为多种消息平台提供统一抽象层的服务,支持Slack、Discord、Telegram、Kakao、Email、Microsoft Teams等平台的双向事件/响应API。

  • by app-appplayer
  • Dart
  • 本地部署
  • 更新于
在 GitHub 查看 app-appplayer/mcp_channel

使用说明

MCP通道

用于具有MCP集成的消息传递平台的统一信道抽象层。通过Slack、Discord、Telegram、Kakao、电子邮件、Microsoft Teams等提供单一的双向事件/响应API。

特性

  • 与平台无关的消息传递 通过 ChannelPort 适配器。
  • 连接器 -Slack(套接字模式+活动API),Discord,电子邮件,Kakao。Telegram和Teams搭建了脚手架。
  • 丰富的内容 — ContentBlock 系统、附件、动作元素、线程、反应、打字指示器。
  • 会话管理 — Session, Principal, SessionManager, SessionStore 有对话历史和背景。
  • 幂等性 --具有可配置TTL的重复事件抑制。
  • 政策执行 --速率限制、回退重试、断路器。
  • MCP集成 — ChannelRuntime 将入站事件编排到MCP/LLM处理中。
  • 加密 --签名验证助手和AES消息处理(例如WeCom加密)。

快速开始

import 'package:mcp_channel/mcp_channel.dart';

final runtime = ChannelRuntime.inbound(
  mcpClients: {'default': mcpClient},
  defaultMode: InboundProcessingMode.llm,
);

runtime.registerChannel('slack', SlackConnector(
  SlackConfig(botToken: 'xoxb-...', appToken: 'xapp-...', useSocketMode: true),
));

await runtime.start();
await for (final event in runtime.events) {
  final response = await runtime.processEvent(event);
  if (response != null) {
    await runtime.sendResponse(response);
  }
}

核心组件

  • ChannelEvent / ChannelResponse --键入具有丰富内容块的入站事件和出站响应。
  • ChannelPort --抽象平台适配器接口(启动、停止、发送、编辑、删除、反应、sendTyping)。
  • ChannelCapabilities --每个连接器的特征标志描述符。
  • Session / SessionManager / Principal --对话身份和历史。
  • IdempotencyGuard --重复事件防护。
  • ChannelPolicy + PolicyExecutor --速率限制/重试/断路器管道。

支持

许可证

麻省理工学院——见 许可证.