返回市场
线性-MCP

线性-MCP

作者:cline119 星标更新:2025-08-10

项目介绍

Linear MCP 服务器

用于与 Linear 的 API 进行交互的 MCP 服务器。此服务器提供了一组工具,通过 Cline 来管理 Linear 的问题、项目和团队。

设置指南

1. 环境设置

  1. 克隆仓库
  2. 安装依赖项:
    npm install
    
  3. 复制 .env.example.env
    cp .env.example .env
    

2. 认证

该服务器支持两种认证方法:

API 密钥(推荐)

  1. 前往 Linear 设置
  2. 导航到“安全与访问”部分
  3. 找到“个人 API 密钥”部分
  4. 点击“新建 API 密钥”
  5. 给密钥一个描述性标签(例如:“Cline MCP”)
  6. 立即复制生成的令牌
  7. 将令牌添加到你的 .env 文件中:
    LINEAR_API_KEY=your_api_key
    

OAuth 流程(替代方案)未实现

  1. https://linear.app/settings/api/applications 创建一个 OAuth 应用程序
  2. .env 中配置 OAuth 环境变量:
    LINEAR_CLIENT_ID=your_oauth_client_id
    LINEAR_CLIENT_SECRET=
    your_oauth_client_secret
    LINEAR_REDIRECT_URI=http://localhost:3000/callback
    

3. 运行服务器

  1. 构建服务器:
    npm run build
    
  2. 启动服务器:
    npm start
    

4. Cline 集成

  1. 打开你的 Cline MCP 设置文件:

    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Windows: %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. 添加 Linear MCP 服务器配置:

    {
      "mcpServers": {
        "linear": {
          "command": "node",
          "args": ["/path/to/linear-mcp/build/index.js"],
          "env": {
            "LINEAR_API_KEY": "your_personal_access_token"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    

支持的操作

当前服务器支持以下操作:

问题管理

  • ✅ 使用完整的字段支持创建问题(标题、描述、团队、项目等)
  • ✅ 更新现有问题(优先级、描述等)
  • ✅ 删除问题(单个或批量删除)
  • ✅ 使用过滤器搜索问题
  • ✅ 将问题关联到项目
  • ✅ 创建父/子问题关系
  • ✅ 读取和创建评论及线程评论

项目管理

  • ✅ 创建带有相关问题的项目
  • ✅ 获取项目信息 带有富文本描述
  • ✅ 搜索项目 带有富文本描述
  • ✅ 将问题关联到项目
  • ✅ 使用 Linear 的 documentContent 字段正确处理描述

团队管理

  • ✅ 获取团队信息(包括状态和工作流详情)
  • ✅ 访问团队状态和标签

认证

  • ✅ API 密钥认证
  • ✅ 安全的令牌存储

批量操作

  • ✅ 批量创建问题
  • ✅ 批量删除问题

批量更新(测试中)

  • 🚧 批量更新问题(已实现并行处理,需要测试)

富文本描述支持

服务器现在可以正确处理 Linear 的富文本描述:

  • 兼容性支持:维持与旧 description 字段的兼容性
  • 富内容:使用 Linear 的 documentContent 字段来实际描述内容
  • 自动回退:如果富内容不可用,则回退到旧字段
  • 类型安全性:包括对两种描述格式的正确 TypeScript 类型

工作原理

Linear 使用双字段系统进行描述:

  1. description - 旧字段(通常为空以保持向后兼容性)
  2. documentContent.content - 包含实际富文本描述内容

MCP 服务器会自动:

  • 查询 Linear API 的两个字段
  • 优先使用 documentContent.content 而不是旧的 description 字段
  • 提供一个 getProjectDescription() 实用函数以一致地访问
  • 返回响应中的 actualDescription 字段以便于访问

开发中的特性

以下特性目前正在开发中:

问题管理

  • 🚧 复杂搜索过滤器
  • 🚧 对大型结果集的支持

元数据操作

  • 🚧 标签管理(创建/更新/分配)
  • 🚧 循环/里程碑管理

项目管理

  • 🚧 项目模板支持
  • 🚧 高级项目操作

认证

  • 🚧 自动刷新令牌的 OAuth 流程

性能与安全

  • 🚧 速率限制
  • 🚧 详细的日志记录
  • 🚧 负载测试和优化

开发

# 安装依赖项
npm install

# 运行测试
npm test

# 运行集成测试(需要 LINEAR_API_KEY)
npm run test:integration

# 构建服务器
npm run build

# 启动服务器
npm start

集成测试

集成测试验证认证和 API 调用是否正常工作:

  1. 设置认证(建议使用 API 密钥进行测试)
  2. 运行集成测试:
    npm run test:integration
    

对于 OAuth 测试:

  1. .env 中配置 OAuth 凭据
  2. 移除 src/__tests__/auth.integration.test.ts 中 OAuth 测试的 .skip
  3. 运行集成测试

最近改进

项目描述支持(最新)

  • ✅ 通过实现 Linear 的 documentContent 字段支持解决了空项目描述的问题
  • ✅ 添加了富文本内容的正确 TypeScript 类型
  • ✅ 实现了从富内容到旧描述的自动回退
  • ✅ 更新了所有与项目相关的查询和处理器
  • ✅ 为新的描述处理增加了全面的测试
  • ✅ 维持了与现有 API 消费者的向后兼容性

之前的改进

  • ✅ 在所有操作中增强了类型安全性
  • ✅ 实现了真正的批量操作以提高性能
  • ✅ 改进了错误处理和验证
  • ✅ 增加了全面的测试覆盖
  • ✅ 重构架构以提高可维护性