返回市场
MCP线性服务器

MCP线性服务器

作者:skspade5 星标更新:2025-05-03

项目介绍

Linear MCP 集成服务器

smithery 徽章

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

功能

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

linear_create_issue

创建一个新的Linear问题,参数如下:

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

linear_search_issues

搜索Linear问题,支持灵活过滤和分页:

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

linear_sprint_issues

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

  • teamId(必需):要获取冲刺问题的团队ID

linear_search_teams

搜索并检索Linear团队:

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

linear_filter_sprint_issues

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

  • teamId(必需):要获取冲刺问题的团队ID
  • status(必需):要筛选的状态(例如:"待生产发布")

linear_get_issue_details

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

  • issueId(必需):要获取详情的问题ID(例如:"DATA-1284")

linear_bulk_update_status

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

  • issueIds(必需):要更新的问题ID列表(例如:["ENG-123", "DATA-456"])
  • targetStatus(必需):要设置的所有问题的目标状态(例如:"正在进行中")

linear_manage_cycle

创建、更新或获取关于Linear周期(冲刺)的信息:

  • action(必需):要执行的操作:"create", "update", "get" 或 "list"
  • 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. 启动服务器:
# 开发模式,带有自动重载
npm run dev

# 生产模式
npm start

# 构建TypeScript
npm run build

# 运行linter
npm run lint

# 运行测试
npm run test

# 检查MCP服务器
npm run inspect

技术细节

  • 使用TypeScript和Model Context Protocol SDK构建
  • 使用Linear SDK进行API交互
  • 包含错误处理、速率限制和连接管理
  • 支持自动重新连接,具有可配置的重试次数
  • 实现心跳监测以监控连接健康状况
  • 提供详细的调试模式日志记录
  • 特征内存缓存系统以提高性能
  • 支持分页以处理大型结果集
  • 实现批量处理以支持批量操作

性能和可靠性

服务器包含了全面的性能和可靠性特性:

缓存系统

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

错误处理

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

性能优化

  • 批量处理以支持批量操作
  • 分页支持以处理大型结果集
  • 使用Promise.all进行并发操作的并行处理
  • 通过最小化API调用来高效地获取数据

依赖项

  • @linear/sdk:Linear 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. Dockerfile:定义了服务器构建过程

    • 使用Node.js 18 Alpine作为基础镜像
    • 安装依赖项并构建TypeScript代码
    • 设置运行服务器的命令
  2. smithery.yaml:定义了服务器启动配置

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

本地测试

你可以使用MCP Inspector来本地测试Smithery配置:

# 构建Docker镜像
docker build -t linear-mcp-server .

# 使用你的Linear API密钥运行容器
docker run -e LINEAR_API_KEY=your_api_key_here linear-mcp-server

# 或使用MCP Inspector
npm run inspect