Linear问题管理服务器

一个用于与Linear API交互的MCP服务器,提供管理Linear问题、项目和团队的工具集。

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

使用说明

线性MCP服务器

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

安装指南

1.环境设置

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

2.身份验证

服务器支持两种身份验证方法:

API密钥(推荐)

  1. 转到线性设置
  2. 导航到“安全和访问”部分
  3. 查找“个人API密钥”部分
  4. 点击“新建API键”
  5. 给钥匙贴上描述性标签(例如“临床MCP”)
  6. 立即复制生成的令牌
  7. 将令牌添加到您的 .env 文件:
    LINEAR_API_KEY=your_api_key
    

OAuth流(替代方案) 未实现

  1. 在以下位置创建OAuth应用程序https://linear.app/settings/api/applications
  2. 在中配置OAuth环境变量 .env:
    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.临床整合

  1. 打开Cline MCP设置文件:

    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • 窗户: %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. 添加线性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 领域
  • 丰富的内容:使用线性 documentContent 实际描述内容字段
  • 自动回退:如果丰富内容不可用,则返回到遗留字段
  • 类型安全:包括适用于两种描述格式的正确TypeScript类型

运作原理

Linear使用双场系统进行描述:

  1. description -传统字段(为了向后兼容,通常为空)
  2. documentContent.content -包含实际的富格文本描述内容

MCP服务器自动:

  • 从Linear的API查询两个字段
  • 优先处理 documentContent.content 关于遗产 description 领域
  • 提供实用功能 getProjectDescription() 用于一致访问
  • 返回一个 actualDescription 响应中的字段便于访问

发展中的特点

目前正在开发以下功能:

问题管理

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

元数据操作

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

项目管理

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

认证

  • 🚧 带有自动令牌刷新的OAuth流

性能与安全

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

发展

# Install dependencies
npm install

# Run tests
npm test

# Run integration tests (requires LINEAR_API_KEY)
npm run test:integration

# Build the server
npm run build

# Start the server
npm start

集成测试

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

  1. 设置身份验证(建议测试API密钥)
  2. 运行集成测试:
    npm run test:integration
    

对于OAuth测试:

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

最近的改进

项目描述支持(最新)

  • ✅ 通过实现Linear来修复空项目描述 documentContent 现场支持
  • ✅ 为富文本内容添加了适当的TypeScript类型
  • ✅ 实现了从丰富内容到传统描述的自动回退
  • ✅ 更新了所有与项目相关的查询和处理程序
  • ✅ 为新的描述处理添加了全面的测试
  • ✅ 与现有API使用者保持向后兼容性

以前的改进

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