Skip to main content
Glama
adrielisa

MCP Server: Weather & Upnify Integration

by adrielisa

create-upnify-reminder

Schedule reminders in Upnify agenda by providing subject, description, and start date. Supports weather and CRM integration for streamlined task management.

Instructions

Create a new reminder in Upnify agenda

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asuntoYesSubject/title of the reminder
descripcionYesDescription or details of the reminder
fechaInicioYesStart date and time in format YYYY-MM-DD HH:mm (e.g., "2025-07-26 05:00")

Implementation Reference

  • Executes the tool by authenticating with Upnify, constructing the reminder payload, and sending a POST request to the reminders endpoint.
    async createReminder(tkIntegracion: string, reminderData: ReminderData) { try { const { token, userInfo } = await this.auth.getTokenAndUserInfo(tkIntegracion); const upnifyPayload = { key: "tkCarpeta", tipoCarpeta: "1", tkOportunidad: "", asunto: reminderData.asunto || "", gmt: "10", tkProspecto: "", search_terms: "", descripcion: reminderData.descripcion || "", idTipoPendiente: "1", frecuencia: "", recurrencia: "1", terminar: "0", diasMes: "1", diasRecurrencia: "", fechaInicio: reminderData.fechaInicio || "" }; const response = await fetch(`${API_URLS.UPNIFY_BASE}${ENDPOINTS.REMINDERS}`, { method: 'POST', headers: { 'token': token, 'Content-Type': 'application/json', }, body: JSON.stringify(upnifyPayload) }); if (!response.ok) { const errorText = await response.text(); console.error('Payload enviado:', JSON.stringify(upnifyPayload, null, 2)); console.error('Token usado:', token); console.error('Respuesta del servidor:', errorText); throw new Error(`Error al crear recordatorio: ${response.status} ${response.statusText}. ${errorText}`); } const result = await response.json(); return { success: true, message: 'Recordatorio agendado exitosamente', data: result, tkEmpresa: userInfo.tkEmpresa }; } catch (error) { throw new Error(`Error al agendar recordatorio en Upnify: ${error instanceof Error ? error.message : error}`); } }
  • Input schema for the tool as registered in the list_tools handler.
    { name: 'create-upnify-reminder', description: 'Create a new reminder in Upnify agenda', inputSchema: { type: 'object', properties: { asunto: { type: 'string', description: 'Subject/title of the reminder' }, descripcion: { type: 'string', description: 'Description or details of the reminder' }, fechaInicio: { type: 'string', description: 'Start date and time in format YYYY-MM-DD HH:mm (e.g., "2025-07-26 05:00")' } }, required: ['asunto', 'descripcion', 'fechaInicio'] } },
  • main.ts:406-425 (registration)
    Registration in call_tool handler that validates inputs and delegates to the UtilitiesHandler.createReminder method.
    } else if (name === 'create-upnify-reminder') { const { asunto, descripcion, fechaInicio } = args as any; if (!asunto || !descripcion || !fechaInicio) { return createErrorResponse( new Error('Se requieren todos los parámetros: asunto, descripcion, fechaInicio'), 'Validación de parámetros' ); } try { const result = await utilitiesHandler.createReminder(tkIntegracion, { asunto, descripcion, fechaInicio }); return createSuccessResponse({ success: true, message: 'Recordatorio agendado exitosamente en Upnify', reminder: { asunto, descripcion, fechaInicio }, data: result.data }); } catch (error) { return createErrorResponse(error, 'Error al agendar recordatorio en Upnify'); }
  • TypeScript interface defining the structure of reminder input data, used by the handler.
    export interface ReminderData { asunto: string; descripcion: string; fechaInicio: string; }
  • Input schema in the Python MCP server implementation (note: handler is a TODO stub).
    Tool( name="create-upnify-reminder", description="Create a new reminder in Upnify agenda", inputSchema={ "type": "object", "properties": { "asunto": {"type": "string", "description": "Subject/title of the reminder"}, "descripcion": {"type": "string", "description": "Description or details of the reminder"}, "fechaInicio": {"type": "string", "description": "Start date and time in format YYYY-MM-DD HH:mm (e.g., \"2025-07-26 05:00\")"} }, "required": ["asunto", "descripcion", "fechaInicio"] } )

Latest Blog Posts

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/adrielisa/MCP'

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