Skip to main content
Glama

Task Trellis MCP

LocalTaskTrellisService.ts4.46 kB
import { ServerConfig } from "../../configuration"; import { TrellisObjectPriority, TrellisObjectStatus, TrellisObjectType, } from "../../models"; import { Repository } from "../../repositories"; import { TaskTrellisService } from "../TaskTrellisService"; export class LocalTaskTrellisService implements TaskTrellisService { async createObject( repository: Repository, type: TrellisObjectType, title: string, parent?: string, priority: TrellisObjectPriority = TrellisObjectPriority.MEDIUM, status: TrellisObjectStatus = TrellisObjectStatus.OPEN, prerequisites: string[] = [], description: string = "", ): Promise<{ content: Array<{ type: string; text: string }> }> { const { createObject } = await import("./createObject"); return createObject( repository, type, title, parent, priority, status, prerequisites, description, ); } async updateObject( repository: Repository, serverConfig: ServerConfig, id: string, title?: string, priority?: TrellisObjectPriority, prerequisites?: string[], body?: string, status?: TrellisObjectStatus, force: boolean = false, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { updateObject } = await import("./updateObject"); return updateObject( repository, serverConfig, id, title, priority, prerequisites, body, status, force, ); } async claimTask( repository: Repository, scope?: string, taskId?: string, force: boolean = false, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { claimTask } = await import("./claimTask"); return claimTask(repository, scope, taskId, force); } async getNextAvailableIssue( repository: Repository, scope?: string, issueType?: TrellisObjectType | TrellisObjectType[], ): Promise<{ content: Array<{ type: string; text: string }> }> { try { const { getNextAvailableIssue } = await import("./getNextAvailableIssue"); const foundIssue = await getNextAvailableIssue( repository, scope, issueType, ); return { content: [ { type: "text", text: JSON.stringify(foundIssue, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error finding next available issue: ${error instanceof Error ? error.message : "Unknown error"}`, }, ], }; } } async completeTask( repository: Repository, serverConfig: ServerConfig, taskId: string, summary: string, filesChanged: Record<string, string>, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { completeTask } = await import("./completeTask"); return completeTask( repository, serverConfig, taskId, summary, filesChanged, ); } async listObjects( repository: Repository, type?: TrellisObjectType | TrellisObjectType[], scope?: string, status?: TrellisObjectStatus | TrellisObjectStatus[], priority?: TrellisObjectPriority | TrellisObjectPriority[], includeClosed: boolean = false, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { listObjects } = await import("./listObjects"); return listObjects( repository, type, scope, status, priority, includeClosed, ); } async appendObjectLog( repository: Repository, id: string, contents: string, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { appendObjectLog } = await import("./appendObjectLog"); return appendObjectLog(repository, id, contents); } async pruneClosed( repository: Repository, age: number, scope?: string, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { pruneClosed } = await import("./pruneClosed"); return pruneClosed(repository, age, scope); } async appendModifiedFiles( repository: Repository, id: string, filesChanged: Record<string, string>, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { appendModifiedFiles } = await import("./appendModifiedFiles"); return appendModifiedFiles(repository, id, filesChanged); } }

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/langadventurellc/task-trellis-mcp'

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