Linear MCP 服务器

Linear MCP 服务器是一个模型上下文协议(MCP)服务器,允许 Claude 通过 Linear 的 API 管理团队、问题、项目和周期。

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

使用说明

线性MCP服务器

这是Linear的模型上下文协议(MCP)服务器,允许Claude与Linear的API交互,以管理团队、问题、项目和周期。

特性

  • linear_get_teams:让所有团队都知道他们的状态和标签
  • 线性搜索问题:搜索过滤和分页问题
  • 线性周期:获取团队的所有周期
  • linear_get_项目:获取所有项目
  • linear_create_issue:创建新问题
  • linear_update_issue:更新现有问题

快速开始

对于Cline MCP Marketplace用户:

  1. 安装服务器 通过Cline MCP市场
  2. 配置您的线性凭据 在MCP配置文件中
  3. 验证安装 通过测试连接 linear_search_issues

查看详情 安装 和 验证 下面的部分。

安装

  1. 克隆此存储库
  2. 安装依赖项:
    npm install
    
  3. 构建服务器:
    npm run build
    

安装过程有三个主要步骤:

  1. 设置:克隆并构建服务器(上述步骤)
  2. 配置:设置您的Linear OAuth令牌并配置MCP服务器
  3. 验证:测试连接以确保其正常工作

⚠️ 在您验证连接正常之前,您的安装尚未完成!

配置

服务器需要线性OAuth令牌才能使用线性API进行身份验证。您可以在MCP配置文件中设置此令牌。

获取线性OAuth令牌

  1. 在以下位置创建线性OAuth应用程序https://linear.app/settings/api/applications
  2. 创建OAuth应用程序
  3. 将应用程序命名为临床MCP
  4. 将重定向URI设置为 http://localhost:3000/callback
  5. 注意客户端ID和客户端密码
  6. 创建和复制基于USER的开发人员令牌

MCP配置

将以下内容添加到MCP配置文件中:

{
  "mcpServers": {
    "github.com/cpropster/linear-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/linear-mcp-server/build/index.js"
      ],
      "env": {
        "LINEAR_CLIENT_ID": "your-client-id",
        "LINEAR_CLIENT_SECRET": "your-client-secret",
        "LINEAR_REDIRECT_URI": "http://localhost:3000/callback",
        "LINEAR_REFRESH_TOKEN": "your-refresh-token"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

用您的实际凭据替换占位符凭据。

验证安装

⚠️ 重要:在验证MCP连接是否正常工作之前,您的安装尚未完成。

配置MCP服务器后,您必须测试连接以确保其正常工作:

  1. 重新加载MCP配置
  2. 使用以下工具测试连接 linear_search_issues 工具:
use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_search_issues",
  arguments={
    "first": 5
  }
)

如果成功,您将看到这样的响应:

{
  "issues": {
    "nodes": [
      {
        "id": "123abc",
        "title": "Example issue 1",
        "identifier": "TEAM-123",
        "description": "This is an example issue"
        // ... other issue data
      },
      // ... more issues
    ]
  }
}

如果连接正常,您将看到您的Linear帐户中的问题列表。如果您看到错误,请检查您的配置和凭据。

常见问题:

  • 服务器路径不正确 args 领域
  • 无效或过期的线性令牌
  • 缺少必需的环境变量
  • 配置中已禁用服务器

用法

获得团队

使用 linear_get_teams 用于检索所有团队的工具:

use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_get_teams",
  arguments={}
)

搜索问题

使用 linear_search_issues 搜索问题的工具:

use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_search_issues",
  arguments={
    "query": "Optional search query",
    "teamIds": ["Optional team IDs"],
    "first": 10 // Number of issues to return (default: 50)
  }
)

获取循环

使用 linear_get_cycles 用于检索团队周期的工具:

use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_get_cycles",
  arguments={
    "teamId": "required-team-id"
  }
)

获取项目

使用 linear_get_projects 检索项目的工具:

use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_get_projects",
  arguments={
    "teamId": "optional-team-id",
    "first": 10 // Number of projects to return (default: 50)
  }
)

制造问题

使用 linear_create_issue 创建新问题的工具:

use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_create_issue",
  arguments={
    "teamId": "required-team-id",
    "title": "Required issue title",
    "description": "Optional issue description",
    "assigneeId": "optional-assignee-id",
    "stateId": "optional-state-id",
    "priority": 0, // Optional priority (0-4)
    "estimate": 1, // Optional estimate
    "cycleId": "optional-cycle-id",
    "projectId": "optional-project-id",
    "labelIds": ["optional-label-ids"]
  }
)

更新问题

使用 linear_update_issue 更新现有问题的工具:

use_mcp_tool(
  server_name="github.com/cpropster/linear-mcp-server",
  tool_name="linear_update_issue",
  arguments={
    "issueId": "required-issue-id",
    "title": "Optional new title",
    "description": "Optional new description",
    "assigneeId": "optional-assignee-id",
    "stateId": "optional-state-id",
    "priority": 0, // Optional priority (0-4)
    "estimate": 1, // Optional estimate
    "cycleId": "optional-cycle-id",
    "projectId": "optional-project-id",
    "labelIds": ["optional-label-ids"]
  }
)

调试

如果您在 验证步骤,或者如果MCP连接停止工作,您可以使用以下调试技术:

  1. 检查MCP配置:确保您的MCP配置文件具有正确的服务器路径和凭据。

  2. 运行测试客户端:使用附带的测试客户端验证服务器是否可以连接到Linear:

    node test-client.js
    

    这将运行一系列测试,以验证服务器是否可以连接到Linear并检索数据。

  3. 检查线性API状态:验证线性API在 status.linear.app.

  4. 检查服务器日志:如果您手动运行服务器,请检查控制台输出中的错误消息。

发展

服务器是使用TypeScript和Linear SDK构建的。主要实施方式是 src/index.ts.

要更改服务器,请执行以下操作:

  1. 在中编辑源代码 src/
  2. 使用构建服务器 npm run build
  3. 使用测试客户端测试您的更改
  4. 更新MCP配置以使用新版本

安全考虑

此MCP服务器需要访问您的Linear帐户。为了保护您的数据安全:

  1. 永远不要提交敏感令牌:The .env 文件和任何包含令牌的文件都被排除在外 .gitignore
  2. 使用环境变量:始终在MCP配置中使用环境变量,而不是硬编码令牌
  3. 限制权限:创建Linear OAuth应用程序时,只授予所需的权限
  4. 定期轮换代币:定期生成新令牌并更新配置

服务器使用官方的Linear SDK,并通过HTTPS与Linear的API通信,确保您的数据安全传输。

许可证

麻省理工学院