Linear集成服务器

通过Model Context Protocol (MCP)提供Linear集成功能,使AI模型能够与Linear进行问题跟踪和项目管理交互。

  • by MadeByNando
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 madebynando/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):返回的最大结果

线性_冲刺_问题

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

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

linear_search_teams

搜索和检索线性团队:

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

linear_filter_sprint_issues

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

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

linear_get_workflow_states

获取团队的所有可用工作流状态:

  • teamId (必需):用于获取工作流状态的团队ID

linear_list_项目

获取所有可用项目及其ID的列表:

  • teamId (可选):按团队筛选项目的团队ID
  • limit (可选,默认值:50):要返回的最大项目数

开发人员设置

  1. 从Linear的设置>API部分获取您的Linear API密钥

  2. 复制示例环境文件:

    cp .env.example .env
    
  3. 编辑文件 .env 并添加线性API密钥:

    LINEAR_API_KEY=votre_clé_api_linear_ici
    
  4. 安装依赖项:

    npm install
    
  5. 启动服务器:

    # 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
    

Docker安装程序(如果项目是从GitHub克隆的)

您还可以使用Docker运行此应用程序:

  1. 确保你的系统上安装了Docker和Docker Compose

  2. 创建一个 .env 使用如上所述的Linear API密钥进行文件

  3. 构建并启动容器:

    # Build and start the container in detached mode
    docker-compose up -d
    
    # View logs
    docker-compose logs -f
    
    # Stop the container
    docker-compose down
    
  4. 服务器将在容器内运行,除非明确停止,否则将自动重新启动

使用Docker(使用Docker compose的简化方法)

  1. 创建一个 .env 使用您的Linear API密钥文件:

    LINEAR_API_KEY=your_linear_api_key_here
    
  2. 创建一个 docker-compose.yml 文件:

    version: '3.8'
    
    services:
      mcp-linear-server:
        image: madebynando/mcp-linear-server:latest
        container_name: mcp-linear-server
        restart: unless-stopped
        env_file:
          - .env
        volumes:
          - ./logs:/app/logs
    
  3. 启动容器:

    docker-compose up -d
    
  4. 要配置游标,请使用:

    • 传输类型:命令
    • 命令:docker exec-i mcp线性服务器节点dist/server.js

Docker开发

使用Docker进行开发:

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

# Run in development mode with auto-reload
docker run -it --rm \
  -v $(pwd):/app \
  -v /app/node_modules \
  --env-file .env \
  mcp-linear-server \
  npm run dev

技术细节

  • 使用TypeScript和模型上下文协议SDK构建
  • 使用线性SDK进行API交互
  • 包括错误处理、速率限制和连接管理
  • 支持通过可配置的重试尝试自动重新连接
  • 实现连接健康状况的心跳监控
  • 在调试模式下提供详细的日志记录

错误处理

服务器包括全面的错误处理:

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

依赖项

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

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

在游标中使用

要在Cursor中使用此服务器,您可以将其添加为MCP服务器。

没有Docker

警告 确保设置 LINEAR_API_KEY 在Cursor中添加MCP服务器时,直接在命令中。这对于服务器正确验证和与Linear API交互至关重要。否则将导致身份验证错误,服务器将无法按预期运行。

例子:

env LINEAR_API_KEY=your_linear_api_key node /path/to/your/mcp-linear-server/dist/server.js
  1. 打开光标设置菜单

  2. 转到“MCP服务器”部分

  3. 点击“添加MCP服务器”

  4. 输入以下详细信息:

    • 名称:线性mcp服务器
    • 传输类型:命令
    • 命令:env LINEAR_API_KEY=your_LINEAR_API_KEY node/path/to/your/mcp-LINEAR-server/dist/server.js
  5. 点击“保存”

  6. 现在,您应该在光标中的工具列表中看到线性工具。

使用Docker

  1. 打开光标设置菜单

  2. 转到“MCP服务器”部分

  3. 点击“添加MCP服务器”

  4. 输入以下详细信息:

    • 名称:线性mcp服务器
    • 传输类型:命令
    • 命令:docker exec-i mcp线性服务器节点dist/server.js
  5. 点击“保存”

  6. 现在,您应该在光标中的工具列表中看到线性工具。

指导克劳德

当指示Claude使用此MCP服务器时,您可以参考以下端点:

linear_create_issue

创建一个新的线性问题,包括标题、描述、团队ID、优先级和状态。

linear_search_issues

通过查询、团队、状态、受让人、优先级和限制进行灵活过滤,搜索线性问题。

linear_sprint_issues

获取特定团队当前冲刺/迭代中的所有问题。

linear_search_teams

按名称搜索和检索线性团队。

linear_filter_sprint_issues

按特定团队的状态筛选当前的冲刺问题。

linear_get_workflow_states

获取特定团队的所有可用工作流状态。

linear_list_projects

获取所有可用项目及其ID的列表,可选择按团队筛选。