Linear问题追踪集成服务

通过Model Context Protocol (MCP)提供与Linear的问题追踪和项目管理集成能力,支持AI模型与Linear的交互。

  • by skspade
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 skspade/mcp-linear-server

使用说明

线性MCP集成服务器

此服务器通过模型上下文协议(MCP)提供线性集成功能。它允许AI模型与Linear进行交互,以进行问题跟踪和项目管理。

特性

服务器通过MCP接口提供以下工具:

linear_create_issue

使用以下参数创建新的线性问题:

  • title (必填):发行标题
  • teamId (必需):在中创建问题的团队ID
  • description (可选):问题描述(支持markdown)
  • priority (可选):优先级(0-4)
  • status (可选):初始状态名称

线性搜索问题

具有灵活过滤和分页支持的搜索线性问题:

  • query (可选):在标题/描述中搜索的文本
  • teamId (可选):按团队筛选
  • status (可选):按状态筛选
  • assigneeId (可选):按受让人筛选
  • priority (可选):优先级(0-4)
  • limit (可选,默认值:10):每页最大结果数
  • cursor (可选):用于获取下一页的分页光标
  • sortBy (可选,默认值:“updated”):要排序的字段(“created”、“updateed”、“priority”、“title”)
  • sortDirection (可选,默认:“desc”):排序方向(“asc”,“desc“)

线性_冲刺_问题

获取当前sprint/迭代中的所有问题:

  • teamId (必填):获取sprint问题的团队ID

linear_search_teams

搜索和检索线性团队:

  • query (可选):在团队名称中搜索的文本

linear_filter_sprint_issues

按状态筛选当前冲刺问题,并自动筛选到当前用户:

  • teamId (必填):获取sprint问题的团队ID
  • status (必填):要筛选的状态(例如“待定产品发布”)

linear_get_issue_details

获取有关特定问题的详细信息,包括完整描述、注释和元数据:

  • issueId (必填):用于获取详细信息的问题ID(例如“DATA-1284”)

linear_bull_update_status

一次更新多个线性问题的状态:

  • issueIds (必填):要更新的问题ID列表(例如[“ENG-123”,“DATA-456”])
  • targetStatus (必填):为所有问题设定目标状态(例如“进行中”)

线性管理周期

创建、更新或获取有关线性周期(冲刺)的信息:

  • action (必填):要执行的操作:“创建”、“更新”、“获取”或“列表”
  • teamId (必填):用于管理周期的团队ID
  • cycleId (可选,更新和获取操作所必需):循环ID
  • name (可选,创建时必需):周期名称
  • startDate (可选,创建时需要):ISO格式的开始日期(YYYY-MM-DD)
  • endDate (可选,创建时需要):ISO格式的结束日期(YYYY-MM-DD)
  • description (可选):循环描述

开发人员设置

  1. 从Linear的设置>API部分获取您的Linear API密钥
  2. 创建一个 .env 项目根目录中的文件:
LINEAR_API_KEY=your_api_key_here
  1. 安装依赖项:
npm install
  1. 启动服务器:
# Development mode with auto-reload
npm run dev

# Production mode
npm start

# Build TypeScript
npm run build

# Run linter
npm run lint

# Run tests
npm run test

# Inspect MCP server
npm run inspect

技术细节

  • 使用TypeScript和模型上下文协议SDK构建
  • 使用线性SDK进行API交互
  • 包括错误处理、速率限制和连接管理
  • 支持通过可配置的重试尝试自动重新连接
  • 实现连接健康状况的心跳监控
  • 在调试模式下提供详细的日志记录
  • 具有内存缓存系统,可提高性能
  • 支持分页以处理大型结果集
  • 对批量操作实施批处理

性能和可靠性

该服务器具有全面的性能和可靠性功能:

缓存系统

  • 对频繁访问的数据(团队、工作流状态)进行内存缓存
  • 缓存条目的可配置TTL(生存时间)
  • 自动清理过期的缓存条目
  • 调试模式下可用的缓存统计信息

错误处理

  • API超时保护,可配置超时
  • 连接丢失时自动重新连接尝试
  • 带有时间戳和上下文的详细错误日志记录
  • 优雅的停机处理和清理
  • 连接健康状况的心跳监测

性能优化

  • 批量操作的批处理
  • 对大型结果集的分页支持
  • 使用Promise.all进行并行处理以实现并发操作
  • 使用最少的API调用实现高效的数据获取

依赖项

  • @linear/sdk:线性API客户端
  • @modelcontextprotocol/sdk:MCP服务器实现
  • zod:运行时类型检查和验证
  • dotenv:环境变量管理
  • TypeScript和相关开发工具

有关依赖关系的完整列表,请参阅 package.json.

Smithery部署

此服务器可以部署在 Smithery.ai 使用提供的配置文件:

先决条件

  • Smithery.ai帐户
  • 您的Linear API密钥

部署步骤

  1. 将此存储库添加到Smithery或声明现有服务器
  2. 访问“部署”选项卡(仅限经过身份验证的所有者)
  3. 使用Linear API密钥配置部署
  4. 部署服务器

配置文件

存储库包括Smithery部署的两个基本文件:

  1. Docker 文件:定义服务器构建过程

    • 使用Node.js 18 Alpine作为基础映像
    • 安装依赖项并构建TypeScript代码
    • 设置运行服务器的命令
  2. 史密斯·亚姆尔:定义服务器启动配置

    • 指定运行服务器的命令
    • 定义所需的配置参数(线性API键)
    • 处理环境变量设置

本地测试

您可以使用MCP检查器在本地测试Smithery配置:

# Build the Docker image
docker build -t linear-mcp-server .

# Run the container with your Linear API key
docker run -e LINEAR_API_KEY=your_api_key_here linear-mcp-server

# Or use the MCP Inspector
npm run inspect