README
🚀 基于Slack的MCP服务器与SSE传输
这是一个支持Slack API集成的Model Context Protocol(MCP)服务器,采用Server-Sent Events(SSE)传输协议。借助该服务器,AI助手能通过简洁的HTTP接口与Slack工作区实现交互。
🚀 快速开始
此服务器允许AI助手通过简单的HTTP接口与Slack工作区交互,你可以按照以下步骤进行部署和使用:
- 完成先决条件的准备,如安装Node.js 18或更高版本、获取Slack机器人令牌和团队ID等。
- 配置环境变量,包括
SLACK_BOT_TOKEN、SLACK_TEAM_ID等。 - 按照设置说明部署服务器,如克隆仓库、安装依赖、启动服务器。
- 使用支持SSE的客户端连接到服务器,如使用curl命令
curl http://localhost:3000/sse。
✨ 主要特性
- SSE传输:采用服务器发送事件(SSE)而非stdio,可通过HTTP/HTTPS进行通信。
- Slack API集成:提供对Slack API核心功能的访问。
- 简单网络界面:包含基本Web界面和健康检查端点。
- Docker支持:完全容器化,使用Docker轻松部署。
- TypeScript实现:使用TypeScript编写,提供类型安全和更好的开发体验。
- 跨平台兼容性:适用于任何支持SSE传输的MCP客户端。
📦 安装指南
先决条件
- Node.js 18或更高版本
- 带有适当权限的Slack机器人令牌
- Slack团队ID
- Docker(可选,用于容器化部署)
环境变量
| 变量 | 描述 | 默认值 |
|------|------|-------|
| SLACK_BOT_TOKEN | 您的Slack机器人用户OAuth令牌(以xoxb-开头) | 必需 |
| SLACK_TEAM_ID | 您的Slack工作区/团队ID | 必需 |
| PORT | 服务器运行的端口 | 3000 |
设置说明
获取Slack机器人令牌和团队ID
- 创建Slack应用:
- 访问Slack应用程序页面
- 点击“创建新应用”
- 填写应用信息并提交
- 为您的应用添加机器人用户:
- 转到应用的设置页面
- 导航至“机器人”部分
- 启用机器人用户并获取令牌(显示为
BOT_TOKEN)
- 获取团队ID:
- 在Slack中,找到您的工作区URL
- 团队ID位于URL中,格式为
TXXXXXX
部署服务器
- 克隆此仓库到本地机器
- 安装依赖项(如使用npm):
npm install - 启动服务器:
node index.js
💻 使用示例
基础用法
可以使用任何支持SSE的客户端连接到服务器。例如,使用curl:
curl http://localhost:3000/sse
高级用法
以下是使用JavaScript的EventSource对象连接到服务器的示例:
const eventSource = new EventSource('http://localhost:3000/sse');
eventSource.onopen = () => {
console.log('连接到SSE服务器');
};
eventSource.onmessage = (event) => {
console.log('接收消息:', event.data);
try {
const data = JSON.parse(event.data);
console.log('解析数据:', data);
} catch (error) {
console.log('原始消息(非JSON):', event.data);
}
};
eventSource.onerror = (error) => {
console.error('SSE连接错误:', error);
eventSource.close();
};
📚 详细文档
连接到服务器
可以使用任何支持SSE的客户端连接到服务器。例如,使用curl:
curl http://localhost:3000/sse
功能特性
支持的操作
slack SendMessageslack GetChannelHistoryslack GetUserProfileslack GetUsers
📄 许可证
本项目采用MIT许可证。
Scan to join WeChat group