wework-bot-mcp-server
Version:
企业微信机器人 MCP Server - 提供企业微信消息发送、群管理等功能
81 lines • 2.3 kB
JavaScript
import axios from 'axios';
import crypto from 'crypto';
export class WeWorkClient {
config;
httpClient;
constructor(config) {
this.config = config;
this.httpClient = axios.create({
timeout: 10000,
headers: {
'Content-Type': 'application/json',
},
});
}
async sendMessage(options) {
const message = {
msgtype: options.type || 'text',
};
if (options.type === 'markdown') {
message.markdown = {
content: options.content,
};
}
else {
message.text = {
content: options.content,
mentioned_list: options.mentionUsers,
mentioned_mobile_list: options.mentionMobiles,
};
}
return this.sendBotMessage(message);
}
async sendNews(options) {
const message = {
msgtype: 'news',
news: {
articles: options.articles,
},
};
return this.sendBotMessage(message);
}
async sendImage(base64Data) {
const md5Hash = crypto.createHash('md5').update(base64Data, 'base64').digest('hex');
const message = {
msgtype: 'image',
image: {
base64: base64Data,
md5: md5Hash,
},
};
return this.sendBotMessage(message);
}
async sendBotMessage(message) {
try {
const response = await this.httpClient.post(this.config.webhookUrl, message);
return response.data;
}
catch (error) {
if (axios.isAxiosError(error)) {
throw new Error(`企业微信API请求失败: ${error.message}`);
}
throw error;
}
}
async validateWebhook() {
try {
const testMessage = {
msgtype: 'text',
text: {
content: 'MCP Server 连接测试',
},
};
const response = await this.sendBotMessage(testMessage);
return response.errcode === 0;
}
catch (error) {
return false;
}
}
}
//# sourceMappingURL=wework-client.js.map