Skip to main content
Glama

Binalyze AIR MCP Server

Official
by binalyze
MIT License
66
7
  • Linux
  • Apple
assignments.ts4.58 kB
import { z } from 'zod'; import { api, TaskAssignment } from '../api/tasks/assignments/assignments'; // Schema for get task assignments by ID arguments export const GetTaskAssignmentsByIdArgsSchema = z.object({ taskId: z.string().describe('The ID of the task to retrieve assignments for'), }); // Schema for cancel task assignment arguments export const CancelTaskAssignmentArgsSchema = z.object({ assignmentId: z.string().describe('The ID of the task assignment to cancel'), }); // Schema for delete task assignment arguments export const DeleteTaskAssignmentArgsSchema = z.object({ assignmentId: z.string().describe('The ID of the task assignment to delete'), }); // Format task assignment for display function formatTaskAssignment(assignment: TaskAssignment): string { return ` Assignment: ${assignment.name} (${assignment._id}) Task ID: ${assignment.taskId} Type: ${assignment.type} Endpoint: ${assignment.endpointName} (${assignment.endpointId}) Organization: ${assignment.organizationId} Status: ${assignment.status} Progress: ${assignment.progress}% Cases: ${assignment.caseIds.join(', ')} Created at: ${new Date(assignment.createdAt).toLocaleString()} Updated at: ${new Date(assignment.updatedAt).toLocaleString()} `; } export const assignmentTools = { // Get task assignments by task ID async getTaskAssignmentsById(args: z.infer<typeof GetTaskAssignmentsByIdArgsSchema>) { try { const response = await api.getTaskAssignments(args.taskId); if (!response.success) { return { content: [ { type: 'text', text: `Error fetching task assignments: ${response.errors.join(', ')}` } ] }; } if (response.result.entities.length === 0) { return { content: [ { type: 'text', text: `No assignments found for task ID: ${args.taskId}` } ] }; } const assignmentList = response.result.entities.map(assignment => `${assignment._id}: ${assignment.name} (${assignment.status} - ${assignment.progress}%)` ).join('\n'); return { content: [ { type: 'text', text: `Found ${response.result.totalEntityCount} assignments for task ID ${args.taskId}:\n${assignmentList}` } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; return { content: [ { type: 'text', text: `Failed to fetch task assignments: ${errorMessage}` } ] }; } }, // Cancel a task assignment by its ID async cancelTaskAssignment(args: z.infer<typeof CancelTaskAssignmentArgsSchema>) { try { const response = await api.cancelTaskAssignment(args.assignmentId); if (!response.success) { return { content: [ { type: 'text', text: `Error canceling task assignment: ${response.errors.join(', ')}` } ] }; } return { content: [ { type: 'text', text: `Successfully canceled task assignment: ${args.assignmentId}` } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; return { content: [ { type: 'text', text: `Failed to cancel task assignment: ${errorMessage}` } ] }; } }, // Delete a task assignment by its ID async deleteTaskAssignment(args: z.infer<typeof DeleteTaskAssignmentArgsSchema>) { try { const response = await api.deleteTaskAssignment(args.assignmentId); if (!response.success) { return { content: [ { type: 'text', text: `Error deleting task assignment: ${response.errors.join(', ')}` } ] }; } return { content: [ { type: 'text', text: `Successfully deleted task assignment: ${args.assignmentId}` } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; return { content: [ { type: 'text', text: `Failed to delete task assignment: ${errorMessage}` } ] }; } }, };

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/binalyze/air-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server