update_user
Modify existing user records in the MCP JSON Database Server by updating name, email, department, or position information using the user's ID.
Instructions
Mevcut kullanıcı bilgilerini günceller
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Güncellenecek kullanıcının ID'si | |
| name | No | Yeni kullanıcı adı | |
| No | Yeni e-posta adresi | ||
| department | No | Yeni departman | |
| position | No | Yeni pozisyon |
Implementation Reference
- src/index.js:724-747 (handler)The execution handler for the 'update_user' tool. It locates the user by ID in the database, applies the provided updates, persists changes via writeDatabase, removes password from response, and returns success with updated user data.case 'update_user': { const { id, ...updates } = args; const userIndex = db.users.findIndex(u => u.id === id); if (userIndex === -1) { return { content: [{ type: 'text', text: JSON.stringify({ error: 'Kullanıcı bulunamadı' }) }] }; } db.users[userIndex] = { ...db.users[userIndex], ...updates }; await writeDatabase(db); const { password, ...userWithoutPassword } = db.users[userIndex]; return { content: [{ type: 'text', text: JSON.stringify({ success: true, user: userWithoutPassword }) }] }; }
- src/index.js:275-289 (schema)The input schema and metadata for the 'update_user' tool, defining the expected parameters (user ID required, optional name/email/department/position) as returned in the tools list.{ name: 'update_user', description: 'Mevcut kullanıcı bilgilerini günceller', inputSchema: { type: 'object', properties: { id: { type: 'number', description: 'Güncellenecek kullanıcının ID\'si' }, name: { type: 'string', description: 'Yeni kullanıcı adı' }, email: { type: 'string', description: 'Yeni e-posta adresi' }, department: { type: 'string', description: 'Yeni departman' }, position: { type: 'string', description: 'Yeni pozisyon' } }, required: ['id'] } },
- src/index.js:60-360 (registration)The ListToolsRequestSchema handler registers all tools including 'update_user' by returning the tools array with its schema.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ // Kimlik doğrulama araçları { name: 'register', description: 'Yeni kullanıcı kaydı oluşturur', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Kullanıcı adı' }, email: { type: 'string', description: 'E-posta adresi' }, password: { type: 'string', description: 'Şifre' }, department: { type: 'string', description: 'Departman' }, position: { type: 'string', description: 'Pozisyon' }, role: { type: 'string', enum: ['admin', 'manager', 'employee'], description: 'Kullanıcı rolü' } }, required: ['name', 'email', 'password', 'department', 'position'] } }, { name: 'login', description: 'Kullanıcı giriş yapar ve JWT token alır', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'Kullanıcı e-posta adresi' }, password: { type: 'string', description: 'Kullanıcı şifresi' } }, required: ['email', 'password'] } }, { name: 'verify_token', description: 'JWT token\'ın geçerliliğini kontrol eder', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' } }, required: ['token'] } }, { name: 'change_password', description: 'Kullanıcı şifresini değiştirir', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, oldPassword: { type: 'string', description: 'Mevcut şifre' }, newPassword: { type: 'string', description: 'Yeni şifre' } }, required: ['token', 'oldPassword', 'newPassword'] } }, { name: 'get_my_permissions', description: 'Kullanıcının sahip olduğu yetkileri listeler', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' } }, required: ['token'] } }, // Telefon Transkript Yönetimi { name: 'list_call_transcripts', description: 'Telefon görüşmeleri transkriptlerini listeler', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, limit: { type: 'number', description: 'Gösterilecek kayıt sayısı (varsayılan: 50)' }, category: { type: 'string', description: 'Kategori filtresi (destek, satış, şikayet)' }, sentiment: { type: 'string', description: 'Duygu durumu filtresi (positive, negative, neutral)' } }, required: ['token'] } }, { name: 'get_call_transcript_by_id', description: 'ID\'ye göre telefon transkripti getirir', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, id: { type: 'number', description: 'Transkript ID\'si' } }, required: ['token', 'id'] } }, { name: 'search_call_transcripts', description: 'Transkriptlerde anahtar kelime arama yapar', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, query: { type: 'string', description: 'Aranacak kelime veya cümle' }, searchIn: { type: 'string', description: 'Arama alanı (transcript, callerName, keywords)', enum: ['transcript', 'callerName', 'keywords', 'all'] } }, required: ['token', 'query'] } }, { name: 'add_call_transcript', description: 'Yeni telefon görüşmesi transkripti ekler', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, callerPhone: { type: 'string', description: 'Arayan telefon numarası' }, callerName: { type: 'string', description: 'Arayan kişi adı' }, callerCompany: { type: 'string', description: 'Arayan şirket' }, transcript: { type: 'string', description: 'Konuşma transkripti' }, duration: { type: 'number', description: 'Görüşme süresi (saniye)' }, category: { type: 'string', description: 'Kategori (destek, satış, şikayet)' }, priority: { type: 'string', description: 'Öncelik (low, normal, high, urgent)' }, keywords: { type: 'array', items: { type: 'string' }, description: 'Anahtar kelimeler' } }, required: ['token', 'callerPhone', 'callerName', 'transcript', 'duration', 'category'] } }, { name: 'update_call_transcript', description: 'Mevcut transkripti günceller', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, id: { type: 'number', description: 'Transkript ID\'si' }, resolution: { type: 'string', description: 'Çözüm durumu' }, followUpRequired: { type: 'boolean', description: 'Takip gerekli mi?' }, assignedTo: { type: 'number', description: 'Atanan kullanıcı ID\'si' } }, required: ['token', 'id'] } }, { name: 'get_call_analytics', description: 'Çağrı analitikleri ve istatistikleri getirir', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, date: { type: 'string', description: 'Analiz tarihi (YYYY-MM-DD)' }, period: { type: 'string', description: 'Analiz periyodu (daily, weekly, monthly)', enum: ['daily', 'weekly', 'monthly'] } }, required: ['token'] } }, // Kullanıcı yönetimi araçları { name: 'list_users', description: 'Tüm kullanıcıları listeler (Yetki gerekli)', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token (yetki kontrolü için)' } }, required: ['token'] } }, { name: 'get_user_by_id', description: 'ID\'ye göre kullanıcı bilgilerini getirir (Yetki gerekli)', inputSchema: { type: 'object', properties: { id: { type: 'number', description: 'Kullanıcı ID\'si' }, token: { type: 'string', description: 'JWT token (yetki kontrolü için)' } }, required: ['id', 'token'] } }, { name: 'search_users', description: 'Kullanıcıları ad, email, departman veya pozisyona göre arar', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Arama terimi' } }, required: ['query'] } }, { name: 'add_user', description: 'Yeni kullanıcı ekler', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Kullanıcı adı' }, email: { type: 'string', description: 'E-posta adresi' }, department: { type: 'string', description: 'Departman' }, position: { type: 'string', description: 'Pozisyon' }, joinDate: { type: 'string', description: 'İşe giriş tarihi (YYYY-MM-DD formatında)' }, salary: { type: 'number', description: 'Maaş (opsiyonel)' }, birthDate: { type: 'string', description: 'Doğum tarihi (YYYY-MM-DD formatında, opsiyonel)' }, phone: { type: 'string', description: 'Telefon numarası (opsiyonel)' }, address: { type: 'string', description: 'Adres (opsiyonel)' }, skills: { type: 'array', items: { type: 'string' }, description: 'Yetenekler listesi (opsiyonel)' } }, required: ['name', 'email', 'department', 'position', 'joinDate'] } }, { name: 'update_user', description: 'Mevcut kullanıcı bilgilerini günceller', inputSchema: { type: 'object', properties: { id: { type: 'number', description: 'Güncellenecek kullanıcının ID\'si' }, name: { type: 'string', description: 'Yeni kullanıcı adı' }, email: { type: 'string', description: 'Yeni e-posta adresi' }, department: { type: 'string', description: 'Yeni departman' }, position: { type: 'string', description: 'Yeni pozisyon' } }, required: ['id'] } }, { name: 'delete_user', description: 'Kullanıcıyı siler', inputSchema: { type: 'object', properties: { id: { type: 'number', description: 'Silinecek kullanıcının ID\'si' } }, required: ['id'] } }, // Audit Log yönetimi araçları { name: 'get_my_audit_logs', description: 'Kullanıcının kendi audit loglarını getirir', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, limit: { type: 'number', description: 'Gösterilecek log sayısı (varsayılan: 50)' } }, required: ['token'] } }, { name: 'get_all_audit_logs', description: 'Tüm audit logları getirir (Sadece admin)', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, limit: { type: 'number', description: 'Gösterilecek log sayısı (varsayılan: 200)' } }, required: ['token'] } }, { name: 'get_audit_logs_by_category', description: 'Belirli kategorideki audit logları getirir (Admin/Manager)', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, category: { type: 'string', description: 'Log kategorisi (authentication, user_management, data_access, permission, system, security)' }, limit: { type: 'number', description: 'Gösterilecek log sayısı (varsayılan: 100)' } }, required: ['token', 'category'] } }, { name: 'get_audit_logs_by_date', description: 'Belirli tarih aralığındaki audit logları getirir (Admin/Manager)', inputSchema: { type: 'object', properties: { token: { type: 'string', description: 'JWT token' }, startDate: { type: 'string', description: 'Başlangıç tarihi (YYYY-MM-DD)' }, endDate: { type: 'string', description: 'Bitiş tarihi (YYYY-MM-DD)' }, limit: { type: 'number', description: 'Gösterilecek log sayısı (varsayılan: 100)' } }, required: ['token', 'startDate', 'endDate'] } }, ] }; });