Skip to main content
Glama
yakir-Yang

AI Customer Service MCP Server

by yakir-Yang
server.js3.13 kB
#!/usr/bin/env node import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js'; import { DataManager } from './data-manager.js'; import { OrderTool, StoreTool } from './tools/index.js'; class CustomerServiceMCPServer { constructor() { this.server = new Server( { name: 'ai-customer-service-mcp-server', version: '1.0.0', }, { capabilities: { tools: {}, }, } ); this.dataManager = new DataManager(); this.setupHandlers(); } setupHandlers() { // 列出可用工具 this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: 'query_order', description: '根据手机号查询订单详情', inputSchema: { type: 'object', properties: { phone: { type: 'string', description: '用户手机号', }, }, required: ['phone'], }, }, { name: 'query_stores', description: '根据经纬度查询附近网点信息', inputSchema: { type: 'object', properties: { latitude: { type: 'number', description: '纬度', }, longitude: { type: 'number', description: '经度', }, limit: { type: 'number', description: '返回网点数量限制', default: 10, }, }, required: ['latitude', 'longitude'], }, }, ], }; }); // 处理工具调用 this.server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { switch (name) { case 'query_order': return await OrderTool.execute(args, this.dataManager); case 'query_stores': return await StoreTool.execute(args, this.dataManager); default: throw new Error(`未知工具: ${name}`); } } catch (error) { return { content: [ { type: 'text', text: `错误: ${error.message}`, }, ], isError: true, }; } }); } async start() { // 初始化数据 await this.dataManager.loadData(); const transport = new StdioServerTransport(); await this.server.connect(transport); console.error('AI智能客服MCP Server已启动'); } } // 启动服务器 const server = new CustomerServiceMCPServer(); server.start().catch((error) => { console.error('服务器启动失败:', error); process.exit(1); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yakir-Yang/mcp_demo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server