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
| 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'] }