mcp-daily-tasks
Version:
MCP para manejar tareas y resúmenes con integración ClickUp.
42 lines (41 loc) • 1.32 kB
JavaScript
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 = {}) {
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;
}, {});
return "?" + new URLSearchParams(query).toString();
}
export async function fetchClickup(endpoint, params) {
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;
}
}