search_call_transcripts
Search call transcripts by keywords, caller names, or specific fields using a JWT-authenticated query. Retrieve targeted results for efficient analysis and management within the MCP JSON Database Server.
Instructions
Transkriptlerde anahtar kelime arama yapar
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Aranacak kelime veya cümle | |
| searchIn | No | Arama alanı (transcript, callerName, keywords) | |
| token | Yes | JWT token |
Implementation Reference
- src/index.js:1072-1129 (handler)Main execution logic for search_call_transcripts tool: authenticates via token, enforces role-based filtering (employees see only assigned transcripts), searches query in transcript, callerName, keywords or all fields case-insensitively, audits access, returns paginated JSON results with metadata.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 (registration)Tool registration in ListToolsResponse: defines name, description, and inputSchema for validating arguments (token required, query required, searchIn optional enum).{ 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'] }
- src/index.js:159-170 (schema)Input schema definition for search_call_transcripts: object with token (string, required), query (string, required), searchIn (string enum: transcript, callerName, keywords, all). Used for MCP tool validation.{ 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'] }