Skip to main content
Glama

Linear Streamable MCP Server

by iceener
progress.ts1.26 kB
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; export type ProgressToken = string; export class ProgressReporter { constructor( private readonly server: McpServer, private readonly progressToken: ProgressToken, ) {} async report(progress: number, total?: number, message?: string): Promise<void> { try { const lowLevel = (this.server as unknown as { server?: unknown })?.server ?? this.server; await ( lowLevel as { notification?: (payload: { method: string; params: { progressToken: string; progress: number; total?: number; message?: string; }; }) => Promise<unknown>; } )?.notification?.({ method: 'notifications/progress', params: { progressToken: this.progressToken, progress, total, ...(message ? { message } : {}), }, }); } catch {} } async complete(): Promise<void> { await this.report(1, 1); } } export function createProgressReporter( server: McpServer, progressToken: ProgressToken, ): ProgressReporter { return new ProgressReporter(server, progressToken); }

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

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