search_call_transcripts
Search call transcripts by keyword, caller name, or metadata to quickly locate specific conversations within the MCP JSON Database Server.
Instructions
Transkriptlerde anahtar kelime arama yapar
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | JWT token | |
| query | Yes | Aranacak kelime veya cümle | |
| searchIn | No | Arama alanı (transcript, callerName, keywords) |
Implementation Reference
- src/index.js:1072-1129 (handler)The handler for 'search_call_transcripts' tool. It checks user permissions via token, filters transcripts (employee sees only assigned), searches in specified field (transcript, callerName, keywords, or all) using case-insensitive matching, logs the search, and returns matching transcripts.case 'search_call_transcripts': { const { token, query, searchIn = 'all' } = args; try { const user = checkPermissionWithToken(token, PERMISSIONS.TRANSCRIPT_SEARCH); let transcripts = db.call_transcripts; // Employee sadece kendi atandığı çağrıları arayabilir if (user.role === ROLES.EMPLOYEE) { transcripts = transcripts.filter(t => t.assignedTo === user.userId); } const searchQuery = query.toLowerCase(); const results = transcripts.filter(transcript => { switch (searchIn) { case 'transcript': return transcript.transcript.toLowerCase().includes(searchQuery); case 'callerName': return transcript.callerName.toLowerCase().includes(searchQuery); case 'keywords': return transcript.keywords.some(keyword => keyword.toLowerCase().includes(searchQuery)); case 'all': default: return transcript.transcript.toLowerCase().includes(searchQuery) || transcript.callerName.toLowerCase().includes(searchQuery) || transcript.keywords.some(keyword => keyword.toLowerCase().includes(searchQuery)) || transcript.callerCompany.toLowerCase().includes(searchQuery); } }); await auditLogger.dataAccessed(user.userId, user.role, 'call_transcript_search', { query, searchIn, resultCount: results.length }); return { content: [{ type: 'text', text: JSON.stringify({ success: true, data: results, searchQuery: query, searchIn, total: results.length, requestedBy: { id: user.userId, role: user.role } }, null, 2) }] }; } catch (error) { return { content: [{ type: 'text', text: JSON.stringify({ success: false, message: error.message, requiredPermission: PERMISSIONS.TRANSCRIPT_SEARCH }) }] }; } }
- src/index.js:159-170 (schema)The input schema and registration details for the 'search_call_transcripts' tool, defining required token and query parameters, optional searchIn field, and tool description.{ 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'] }