MCP Linear 服务器
通过模型上下文协议,启用AI模型与Linear进行问题跟踪和项目管理的交互,支持创建问题、搜索、管理冲刺和批量更新状态等功能。
服务介绍
Linear MCP 集成服务器
该服务器通过模型上下文协议(MCP)提供Linear集成能力。它允许AI模型与Linear进行交互,以实现问题跟踪和项目管理。
功能
该服务器通过MCP接口提供了以下工具:
linear_create_issue
使用以下参数创建一个新的Linear问题:
title(必填):问题标题teamId(必填):创建问题的团队IDdescription(可选):问题描述(支持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(必填):获取冲刺问题的团队IDstatus(必填):要过滤的状态(例如:"Pending Prod Release")
linear_get_issue_details
获取特定问题的详细信息,包括完整描述、评论和元数据:
issueId(必填):要获取详情的问题ID(例如:"DATA-1284")
linear_bulk_update_status
一次更新多个Linear问题的状态:
issueIds(必填):要更新的问题ID列表(例如:["ENG-123", "DATA-456"])targetStatus(必填):为所有问题设置的目标状态(例如:"In Progress")
linear_manage_cycle
创建、更新或获取关于Linear周期(冲刺)的信息:
action(必填):执行的动作:"create", "update", "get" 或 "list"teamId(必填):管理周期的团队IDcycleId(可选,对于更新和获取动作是必需的):周期IDname(可选,对于创建动作是必需的):周期名称startDate(可选,对于创建动作是必需的):开始日期(ISO格式 YYYY-MM-DD)endDate(可选,对于创建动作是必需的):结束日期(ISO格式 YYYY-MM-DD)description(可选):周期描述
开发者设置
- 从Linear的设置 > API部分获取您的Linear API密钥
- 在项目根目录中创建一个
.env文件:
LINEAR_API_KEY=your_api_key_here
- 安装依赖项:
npm install
- 启动服务器:
# 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 和 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 密钥
部署步骤
- 将此仓库添加到 Smithery 或认领现有服务器
- 访问部署选项卡(仅限已认证的所有者)
- 使用您的 Linear API 密钥配置部署
- 部署服务器
配置文件
该仓库包括两个对 Smithery 部署至关重要的文件:
-
Dockerfile: 定义了服务器构建过程
- 使用 Node.js 18 Alpine 作为基础镜像
- 安装依赖项并构建 TypeScript 代码
- 设置运行服务器的命令
-
smithery.yaml: 定义了服务器启动配置
- 指定运行服务器的命令
- 定义所需的配置参数(Linear API 密钥)
- 处理环境变量设置
本地测试
您可以使用 MCP Inspector 本地测试 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