easemob-mcp-server

dujiepeng/easemob-mcp-server

3.1

If you are the rightful owner of easemob-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

This is a fully integrated Model Context Protocol (MCP) server for Easemob Instant Messaging (IM), covering all major functionalities of Easemob IM.

环信IM MCP服务器 - 完整版

这是一个完整集成了环信即时通讯(Easemob IM) RESTful API的MCP (Model Context Protocol) 服务器。涵盖环信IM的所有主要功能,包括用户管理、消息管理、群组管理、聊天室管理、好友关系、黑名单管理、用户属性管理、文件管理等。

🚀 功能特性

✅ 用户管理系统

  • 用户操作: 注册单个/批量用户、获取用户信息、删除用户
  • 用户状态: 获取在线状态、强制下线、修改密码
  • 用户属性: 设置/获取/删除用户自定义属性

✅ 消息管理系统

  • 消息发送: 支持文本、图片、语音、视频、文件、位置、透传、自定义消息
  • 消息操作: 消息撤回、历史消息查询
  • 消息类型: 单聊、群聊、聊天室消息全覆盖

✅ 群组管理系统

  • 群组操作: 创建、获取、修改、删除群组
  • 成员管理: 添加/移除成员、获取成员列表、转让群主
  • 权限管理: 管理员设置、群主转让
  • 黑白名单: 群组黑名单、白名单管理
  • 禁言管理: 单个/批量/全体禁言和解禁

✅ 聊天室管理系统

  • 聊天室操作: 创建、获取、修改、删除聊天室
  • 成员管理: 添加/移除成员、管理员设置
  • 权限控制: 黑白名单、禁言管理
  • 公告管理: 设置和修改聊天室公告

✅ 用户关系管理

  • 好友系统: 添加/删除好友、获取好友列表
  • 黑名单: 添加/移除黑名单、查看黑名单

✅ 文件管理系统

  • 文件操作: 文件上传、下载
  • 文件类型: 支持图片、语音、视频、文档等各种文件类型

✅ 高级特性

  • 自动认证: 智能Token管理和自动刷新
  • 错误处理: 完善的错误处理和中文错误信息
  • API覆盖: 涵盖环信IM REST API的所有主要功能
  • 类型安全: 完整的TypeScript类型定义

📖 环信文档参考

本项目基于环信即时通讯 REST API 开发,详细API文档请参考:

🛠 快速开始

1. 安装依赖

npm install

2. 配置环信应用信息

复制环境变量示例文件:

cp env.example .env

编辑 .env 文件,填入您的环信应用配置信息:

# 环信应用配置 - 在环信控制台获取
EASEMOB_ORG_NAME=your_org_name
EASEMOB_APP_NAME=your_app_name  
EASEMOB_APP_KEY=your_app_key
EASEMOB_APP_SECRET=your_app_secret

# 可选:自定义API域名(默认使用 https://a1.easemob.com)
# EASEMOB_BASE_URL=https://a1.easemob.com

获取配置信息:

  1. 登录环信开发者控制台
  2. 选择您的应用
  3. 在"应用概览"页面获取所需配置信息

3. 编译和启动

# 编译项目
npm run build

# 开发模式启动
npm run dev

# 生产模式启动  
npm start

🔧 完整API功能列表

📱 用户管理API

功能API方法描述
注册单个用户createUser创建单个环信用户
批量注册用户createUsers批量创建环信用户
获取用户信息getUser获取指定用户详细信息
获取用户列表getUserList分页获取用户列表
删除单个用户deleteUser删除指定用户
批量删除用户deleteUsers批量删除用户
修改用户密码changeUserPassword修改用户登录密码
强制用户下线disconnectUser强制指定用户下线
获取用户状态getUserStatus查看用户在线状态

💬 消息管理API

功能API方法描述
发送消息sendMessage发送各种类型消息
获取历史消息getHistoryMessages获取聊天历史记录
撤回消息recallMessage撤回已发送的消息

📁 文件管理API

功能API方法描述
上传文件uploadFile上传图片、语音、视频等文件
下载文件downloadFile下载文件内容

👥 用户关系API

功能API方法描述
添加好友addContact添加用户为好友
删除好友removeContact从好友列表删除用户
获取好友列表getContacts获取用户的好友列表
获取黑名单getBlockedUsers获取用户的黑名单列表
添加黑名单blockUser将用户添加到黑名单
移除黑名单unblockUser从黑名单移除用户

🏷 用户属性API

功能API方法描述
设置用户属性setUserMetadata设置用户自定义属性
获取用户属性getUserMetadata获取用户自定义属性
批量获取属性batchGetUserMetadata批量获取多用户属性
删除用户属性deleteUserMetadata删除用户自定义属性

👥 群组管理API

功能API方法描述
获取群组列表getGroupList分页获取所有群组
获取用户群组getUserJoinedGroups获取用户加入的群组
获取群组详情getGroup获取群组详细信息
创建群组createGroup创建新群组
修改群组信息updateGroup修改群组基本信息
删除群组deleteGroup删除指定群组

👨‍👩‍👧‍👦 群组成员API

功能API方法描述
获取群组成员getGroupMembers分页获取群组成员列表
添加群组成员addGroupMember添加单个用户到群组
批量添加成员addGroupMembers批量添加用户到群组
移除群组成员removeGroupMember从群组移除单个用户
批量移除成员removeGroupMembers从群组批量移除用户
转让群组transferGroup转让群主权限
获取群管理员getGroupAdmins获取群组管理员列表
添加群管理员addGroupAdmin设置群组管理员
移除群管理员removeGroupAdmin取消群组管理员

🚫 群组黑白名单API

功能API方法描述
获取群组黑名单getGroupBlockedUsers查看群组黑名单
添加群组黑名单addGroupBlockedUsers批量添加黑名单用户
移除群组黑名单removeGroupBlockedUsers批量移除黑名单用户
获取群组白名单getGroupWhiteUsers查看群组白名单
添加群组白名单addGroupWhiteUsers批量添加白名单用户
移除群组白名单removeGroupWhiteUsers批量移除白名单用户

🔇 群组禁言API

功能API方法描述
获取禁言列表getGroupMutedUsers查看群组禁言用户列表
禁言群组成员muteGroupMembers禁言指定群组成员
解除成员禁言unmuteGroupMembers解除群组成员禁言
禁言全体成员muteAllGroupMembers一键禁言全体成员
解除全员禁言unmuteAllGroupMembers一键解除全员禁言

🏠 聊天室管理API

功能API方法描述
获取聊天室列表getChatroomList分页获取所有聊天室
获取用户聊天室getUserJoinedChatrooms获取用户加入的聊天室
获取聊天室详情getChatroom获取聊天室详细信息
创建聊天室createChatroom创建新聊天室
修改聊天室updateChatroom修改聊天室信息
删除聊天室deleteChatroom删除指定聊天室

👨‍👩‍👧‍👦 聊天室成员API

功能API方法描述
获取聊天室成员getChatroomMembers分页获取聊天室成员
添加聊天室成员addChatroomMember添加单个用户到聊天室
批量添加成员addChatroomMembers批量添加用户到聊天室
移除聊天室成员removeChatroomMember从聊天室移除单个用户
批量移除成员removeChatroomMembers从聊天室批量移除用户
获取聊天室管理员getChatroomAdmins获取聊天室管理员列表
添加聊天室管理员addChatroomAdmin设置聊天室管理员
移除聊天室管理员removeChatroomAdmin取消聊天室管理员

🚫 聊天室黑白名单API

功能API方法描述
获取聊天室黑名单getChatroomBlockedUsers查看聊天室黑名单
添加聊天室黑名单addChatroomBlockedUsers批量添加黑名单用户
移除聊天室黑名单removeChatroomBlockedUsers批量移除黑名单用户
获取聊天室白名单getChatroomWhiteUsers查看聊天室白名单
添加聊天室白名单addChatroomWhiteUsers批量添加白名单用户
移除聊天室白名单removeChatroomWhiteUsers批量移除白名单用户

🔇 聊天室禁言API

功能API方法描述
获取禁言列表getChatroomMutedUsers查看聊天室禁言列表
禁言聊天室成员muteChatroomMembers禁言指定聊天室成员
解除成员禁言unmuteChatroomMembers解除聊天室成员禁言
禁言全体成员muteAllChatroomMembers一键禁言全体成员
解除全员禁言unmuteAllChatroomMembers一键解除全员禁言

📢 聊天室公告API

功能API方法描述
获取聊天室公告getChatroomAnnouncement获取聊天室公告内容
修改聊天室公告updateChatroomAnnouncement修改聊天室公告

📝 使用示例

用户管理示例

// 创建用户
await easemobAPI.createUser({
  username: "testuser001",
  password: "123456", 
  nickname: "测试用户"
});

// 获取用户状态
await easemobAPI.getUserStatus("testuser001");

消息发送示例

// 发送文本消息
await easemobAPI.sendMessage({
  target_type: "users",
  target: ["testuser001"],
  msg: {
    type: "txt",
    msg: "你好,这是一条测试消息!"
  }
});

// 发送图片消息
await easemobAPI.sendMessage({
  target_type: "users", 
  target: ["testuser001"],
  msg: {
    type: "img",
    url: "https://example.com/image.jpg",
    filename: "image.jpg",
    size: 12345
  }
});

群组管理示例

// 创建群组
const group = await easemobAPI.createGroup({
  groupname: "测试群组",
  desc: "这是一个测试群组",
  owner: "testuser001",
  public: true,
  maxusers: 200,
  members: ["testuser002", "testuser003"]
});

// 添加群组成员
await easemobAPI.addGroupMembers(group.data.groupid, ["testuser004", "testuser005"]);

// 设置群组管理员
await easemobAPI.addGroupAdmin(group.data.groupid, "testuser002");

聊天室管理示例

// 创建聊天室
const chatroom = await easemobAPI.createChatroom({
  name: "测试聊天室",
  description: "这是一个测试聊天室",
  owner: "testuser001",
  maxusers: 1000
});

// 设置聊天室公告
await easemobAPI.updateChatroomAnnouncement(chatroom.data.id, "欢迎来到测试聊天室!");

🏗 项目结构

├── src/
│   ├── index.ts          # MCP服务器主文件
│   └── easemob-api.ts    # 完整环信API封装类
├── dist/                 # 编译输出目录
├── package.json          # 项目配置
├── tsconfig.json         # TypeScript配置
├── .env                  # 环境变量(需要创建)
├── env.example           # 环境变量示例
├── mcp-config.json       # MCP客户端配置示例
├── .gitignore           # Git忽略文件
└── README.md             # 项目文档

⚙️ 环境变量说明

变量名必需说明
EASEMOB_ORG_NAME环信组织名称
EASEMOB_APP_NAME环信应用名称
EASEMOB_APP_KEY环信应用Key(Client ID)
EASEMOB_APP_SECRET环信应用密钥(Client Secret)
EASEMOB_BASE_URL环信API基础URL(可选,默认https://a1.easemob.com)

🛡️ 错误处理

项目包含完善的错误处理机制:

  • 网络错误: 自动重试和超时处理(30秒超时)
  • 认证错误: 自动刷新App Token,提前1分钟预刷新
  • 参数错误: 详细的参数验证和错误信息
  • API错误: 友好的中文错误信息,包含详细错误描述

⚠️ 注意事项

  1. API频率限制: 请注意环信API的调用频率限制
  2. Token管理: 系统会自动管理App Token的刷新,无需手动处理
  3. 数据中心: 请根据您的应用所在数据中心配置正确的API域名
  4. 安全性: 请妥善保管您的App Secret,不要泄露给第三方
  5. 消息类型: 支持文本、图片、语音、视频、文件、位置、透传、自定义等所有消息类型
  6. 并发处理: 建议使用连接池来优化并发请求性能

📄 许可证

MIT License

🤝 贡献

欢迎提交Issue和Pull Request来改进这个项目!如果您需要特定的功能或发现了bug,请随时联系我们。


这是一个功能完整的环信IM MCP服务器,涵盖了环信即时通讯的所有主要API功能,可以满足您的各种IM开发需求! 🎉