UNPKG

andrew-dataverse-mcp

Version:

A Model Context Protocol server for Microsoft Dataverse with comprehensive CRUD operations

58 lines (57 loc) 1.86 kB
import { validateTableName, validateGuid } from '../utils/validation.js'; import { createLogger } from '../utils/logger.js'; const logger = createLogger('DeleteRecordTool'); export const deleteRecordTool = { name: 'dataverse_delete_record', description: 'Delete a record from a Dataverse table', inputSchema: { type: 'object', properties: { table: { type: 'string', description: 'The name of the Dataverse table (e.g., "contacts", "accounts")', }, id: { type: 'string', description: 'The GUID of the record to delete', }, }, required: ['table', 'id'], }, }; export async function handleDeleteRecord(args, dataverseService) { try { logger.info('Processing delete record request'); // Validate inputs const table = validateTableName(args.table, 'table'); const id = validateGuid(args.id, 'id'); logger.debug(`Deleting record ${id} from table: ${table}`); // Delete the record await dataverseService.deleteRecord({ table, id, }); const successMessage = `Successfully deleted record ${id} from table '${table}'`; logger.info(successMessage); return { content: [ { type: 'text', text: successMessage, }, ], }; } catch (error) { const errorMessage = `Failed to delete record: ${error instanceof Error ? error.message : 'Unknown error'}`; logger.error(errorMessage, error); return { content: [ { type: 'text', text: errorMessage, }, ], }; } }