Skip to main content
Glama
project-handlers.ts2.38 kB
import { isAddIssueToProjectArgs, isCreateProjectArgs, isGetProjectIssuesArgs, isUpdateProjectArgs } from "../type-guards.js"; import { LinearService } from "../../services/linear-service.js"; import { logError } from "../../utils/config.js"; /** * Handler for getting projects */ export function handleGetProjects(linearService: LinearService) { return async (args: unknown) => { try { return await linearService.getProjects(); } catch (error) { logError("Error getting projects", error); throw error; } }; } /** * Handler for creating a project */ export function handleCreateProject(linearService: LinearService) { return async (args: unknown) => { try { if (!isCreateProjectArgs(args)) { throw new Error("Invalid arguments for createProject"); } return await linearService.createProject(args); } catch (error) { logError("Error creating project", error); throw error; } }; } /** * Handler for updating a project */ export function handleUpdateProject(linearService: LinearService) { return async (args: unknown) => { try { if (!isUpdateProjectArgs(args)) { throw new Error("Invalid arguments for updateProject"); } return await linearService.updateProject(args); } catch (error) { logError("Error updating project", error); throw error; } }; } /** * Handler for adding an issue to a project */ export function handleAddIssueToProject(linearService: LinearService) { return async (args: unknown) => { try { if (!isAddIssueToProjectArgs(args)) { throw new Error("Invalid arguments for addIssueToProject"); } return await linearService.addIssueToProject(args.issueId, args.projectId); } catch (error) { logError("Error adding issue to project", error); throw error; } }; } /** * Handler for getting issues in a project */ export function handleGetProjectIssues(linearService: LinearService) { return async (args: unknown) => { try { if (!isGetProjectIssuesArgs(args)) { throw new Error("Invalid arguments for getProjectIssues"); } return await linearService.getProjectIssues(args.projectId, args.limit); } catch (error) { logError("Error getting project issues", error); throw error; } }; }

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/emmett-deen/Linear-MCP-Server'

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