@openimsdk/openim-mcp-server
v0.0.6
Published
MCP server for interacting with OpenIM
Readme
OpenIM MCP Server
MCP Server for the OpenIM API, enabling Claude to interact with OpenIM services.
Tools
openim_get_users- Get the list of users with pagination
- Required parameters:
pagination(object): Pagination parameterspageNumber(number): Page number, starts from 1showNumber(number): Number of items per page
- Optional parameters:
userID(string): Filter by user IDnickName(string): Filter by nickname
openim_send_message- Send message to specific user or group
- Required parameters:
content(object): Message contentcontent(string): Message text content
contentType(number): Message typesessionType(number): Session type
- Optional parameters:
recvID(string): Receiver ID (for single chat)groupID(string): Group ID (for group chat)offlinePushInfo(object): Offline push informationtitle(string): Push notification titledesc(string): Push notification descriptionex(string): Extended fieldiOSPushSound(string): iOS push soundiOSBadgeCount(boolean): iOS badge count
openim_batch_send_message- Batch send messages to multiple users
- Required parameters:
content(object): Message contentcontent(string): Message text content
contentType(number): Message typesessionType(number): Session type
- Optional parameters:
recvIDs(string[]): List of receiver IDsisOnlineOnly(boolean): Online onlynotOfflinePush(boolean): Disable offline pushofflinePushInfo(object): Offline push informationtitle(string): Push notification titledesc(string): Push notification descriptionex(string): Extended fieldiOSPushSound(string): iOS push soundiOSBadgeCount(boolean): iOS badge count
ex(string): Extended fieldisSendAll(boolean): Send to all users
openim_send_business_notification- Send business notification message
- Required parameters:
key(string): Business classification keydata(string): Business data
- Optional parameters:
recvUserID(string): Receiver user ID, can only choose one from recvGroupIDrecvGroupID(string): Receive group ID, can only choose one from recvUserIDsendMsg(boolean): Whether to send as a message, default: falsereliabilityLevel(number): Reliability level of notification messages (1: Online push, 2: Must-reach notification), default: 1
openim_get_friend_list- Get friend list of a user
- Required parameters:
userID(string): User IDpagination(object): Pagination parameterspageNumber(number): Page number, starts from 1showNumber(number): Number of items per page
openim_get_groups- Get group list
- Required parameters:
pagination(object): Pagination parameterspageNumber(number): Page number, starts from 1showNumber(number): Number of items per page
- Optional parameters:
groupID(string): Filter by group IDgroupName(string): Filter by group name
openim_get_group_member_list- Get group member list
- Required parameters:
groupID(string): Group IDpagination(object): Pagination parameterspageNumber(number): Current page numbershowNumber(number): Number of items per page
- Optional parameters:
keyword(string): Search keyword
openim_search_message- Search messages
- Required parameters:
pagination(object): Pagination parameterspageNumber(number): Current page numbershowNumber(number): Number of items per page
- Optional parameters:
sendID(string): Sender IDrecvID(string): Receiver IDcontentType(number): Message content type: 101=Text (only text messages are supported)sendTime(object): Message send time rangestart(number): Start timestampend(number): End timestamp
sessionType(number): Session type: 1=Single chat, 3=Group chat
Message Types Explanation
Session Types
sessionType: 1: Single chat (one-to-one conversation)sessionType: 3: Group chat (conversation in a group)
Content Types
contentType: 101: Text message (only text messages are supported)
Setup
Get OpenIM Server Address and Admin Token:
- Deploy OpenIM server
- Get API address
- Get admin token
Configure Environment Variables:
OPENIM_API_ADDR: OpenIM server API addressOPENIM_TOKEN: OpenIM admin token
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
npx
{
"mcpServers": {
"openim": {
"command": "npx",
"args": [
"-y",
"@openimsdk/openim-mcp-server"
],
"env": {
"OPENIM_API_ADDR": "your-openim-server-address",
"OPENIM_TOKEN": "your-admin-token"
}
}
}
}docker
{
"mcpServers": {
"openim": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENIM_API_ADDR",
"-e",
"OPENIM_TOKEN",
"mcp/openim"
],
"env": {
"OPENIM_API_ADDR": "your-openim-server-address",
"OPENIM_TOKEN": "your-admin-token"
}
}
}
}Troubleshooting
If you encounter issues, verify that:
- OpenIM server is running properly
- API address is configured correctly
- Token is valid and has sufficient permissions
- Network connection is stable
Build
Docker build command:
docker build -t mcp/openim -f Dockerfile .Testing
To run the test suite:
- Install dependencies:
npm install- Set up environment variables:
export OPENIM_API_ADDR="your-openim-server-address"
export OPENIM_TOKEN="your-admin-token"- Run tests:
npm run testThe test suite includes:
- Server connection test
- API functionality tests:
- Get groups list
- Get group member list
- Get friend list
- Search messages
- Send message
- Batch send message
- Send business notification
