UNPKG

mcp-daily-tasks

Version:

MCP para manejar tareas y resúmenes con integración ClickUp.

40 lines (37 loc) 1.41 kB
const CLICKUP_API_KEY = process.env.CLICKUP_API_KEY || ''; const CLICKUP_API_BASE = "https://api.clickup.com/api/v2"; export function getClickupHeaders() { return { accept: "application/json", Authorization: CLICKUP_API_KEY }; } export function buildQueryString(params: Record<string, any> = {}) { if (!params || Object.keys(params).length === 0) return ""; const query = Object.entries(params).reduce((acc, [key, value]) => { if (Array.isArray(value)) { acc[key] = value.join(","); } else if (typeof value === "boolean") { acc[key] = value ? "true" : "false"; } else if (value !== undefined && value !== null) { acc[key] = value.toString(); } return acc; }, {} as Record<string, string>); return "?" + new URLSearchParams(query).toString(); } export async function fetchClickup(endpoint: string, params?: Record<string, any>) { const url = `${CLICKUP_API_BASE}${endpoint}${buildQueryString(params)}`; try { const response = await fetch(url, { method: "GET", headers: getClickupHeaders(), }); if (!response.ok) { throw new Error(`Error ${response.status}: ${response.statusText}`); } return await response.json(); } catch (error) { return null; } }