Skip to main content
Glama
wkoutre

Linear MCP Server

by wkoutre

linear_getCycles

Retrieve all cycles for project management in Linear, optionally filtered by team ID, with configurable result limits.

Instructions

Get a list of all cycles

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
teamIdNoID of the team to get cycles for (optional)
limitNoMaximum number of cycles to return (default: 25)

Implementation Reference

  • The main handler function for the linear_getCycles tool. It validates the input arguments using isGetCyclesArgs type guard and calls linearService.getCycles(teamId, limit) to fetch the cycles.
    export function handleGetCycles(linearService: LinearService) {
      return async (args: unknown) => {
        try {
          if (!isGetCyclesArgs(args)) {
            throw new Error("Invalid arguments for getCycles");
          }
          
          return await linearService.getCycles(args.teamId, args.limit);
        } catch (error) {
          logError("Error getting cycles", error);
          throw error;
        }
      };
    }
  • Tool definition including input_schema (teamId?: string, limit?: number) and output_schema (array of cycle objects) for linear_getCycles.
    export const getCyclesToolDefinition: MCPToolDefinition = {
      name: "linear_getCycles",
      description: "Get a list of all cycles",
      input_schema: {
        type: "object",
        properties: {
          teamId: {
            type: "string",
            description: "ID of the team to get cycles for (optional)",
          },
          limit: {
            type: "number",
            description: "Maximum number of cycles to return (default: 25)",
          },
        }
      },
      output_schema: {
        type: "array",
        items: {
          type: "object",
          properties: {
            id: { type: "string" },
            number: { type: "number" },
            name: { type: "string" },
            description: { type: "string" },
            startsAt: { type: "string" },
            endsAt: { type: "string" },
            completedAt: { type: "string" },
            team: {
              type: "object",
              properties: {
                id: { type: "string" },
                name: { type: "string" },
                key: { type: "string" }
              }
            }
          }
        }
      }
    };
  • Registers the handler for linear_getCycles in the tool handlers map returned by registerToolHandlers.
    // Cycle Management tools
    linear_getCycles: handleGetCycles(linearService),
    linear_getActiveCycle: handleGetActiveCycle(linearService),
    linear_addIssueToCycle: handleAddIssueToCycle(linearService),
  • Includes the linear_getCycles tool definition in the allToolDefinitions array for MCP tool registration.
    getCyclesToolDefinition,
    getActiveCycleToolDefinition,
    addIssueToCycleToolDefinition,
  • Type guard function used to validate input arguments for the linear_getCycles tool.
    export function isGetCyclesArgs(args: unknown): args is {
      teamId?: string;
      limit?: number;
    } {
      return (
        typeof args === "object" &&
        args !== null &&
        (!("teamId" in args) || typeof (args as { teamId: string }).teamId === "string") &&
        (!("limit" in args) || typeof (args as { limit: number }).limit === "number")
      );
    }

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/wkoutre/linear-mcp-server'

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