Linear MCP Server 使用说明
项目简介
Linear MCP Server 是一个实现了 Model Context Protocol (MCP) 的后端服务器,专注于提供与 Linear 项目管理工具集成的功能。它通过 MCP 协议,向 LLM 客户端提供查询 Linear 工单 (tickets) 的工具,使得 LLM 应用能够访问和利用 Linear 平台的数据。
主要功能点
- 获取 Linear 工单 (Tickets): 提供 'get-linear-tickets' 工具,允许用户通过调用该工具,并提供 Linear API 密钥,来检索其在 Linear 平台上的工单信息。
- 工单状态过滤: 支持按工单状态 (active, completed, canceled) 进行过滤查询。
- 工单数量限制: 允许设置返回工单的最大数量,避免一次性返回过多数据。
- 标准 MCP 协议: 基于 '@modelcontextprotocol/sdk' 开发,遵循 MCP 协议规范,易于与任何兼容 MCP 协议的 LLM 客户端集成。
- Stdio 传输: 使用标准输入输出 (stdio) 作为默认的 MCP 通信传输方式,简化部署和运行。
安装步骤
- 克隆仓库:
git clone https://github.com/shannonlal/mcp-linear.git cd mcp-linear - 安装依赖:
确保你已安装 Node.js 和 npm。运行以下命令安装项目依赖:
npm install - 设置环境变量:
你需要设置 'LINEAR_API_KEY' 环境变量,用于 Linear API 的身份验证。请在你的环境中配置此变量,例如在 '.env' 文件中或直接在终端中设置:
请替换 'YOUR_LINEAR_API_KEY' 为你实际的 Linear API 密钥。export LINEAR_API_KEY="YOUR_LINEAR_API_KEY"
服务器配置
为了让 MCP 客户端连接到 Linear MCP Server,你需要提供以下配置信息。这是一个 JSON 格式的配置示例,通常在 MCP 客户端的应用配置中设置:
{ "serverName": "linear-mcp-server", "command": "./src/server/index.ts", "args": [], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,设置为 '"linear-mcp-server"'。
- 'command': 启动服务器的命令。由于 'src/server/index.ts' 文件头部声明了 '#!/usr/bin/env node',并且假设您在项目根目录下运行 MCP 客户端,这里设置为 '"./src/server/index.ts"' 即可直接运行 TypeScript 代码。 请确保你的系统环境中可以直接执行 TypeScript 文件 (例如安装了 'ts-node')。 如果需要编译成 JavaScript 运行,请先执行编译步骤,并将 'command' 指向编译后的 JavaScript 文件路径。
- 'args': 启动命令的参数。此服务器不需要额外的启动参数,因此设置为空数组 '[]'。
- 'transport': 指定 MCP 客户端与服务器之间的通信方式。这里使用 'stdio' (标准输入输出)。
注意: 上述 'command' 配置假设直接运行 TypeScript 代码。在生产环境中,建议先将 TypeScript 代码编译成 JavaScript,然后将 'command' 指向编译后的 JavaScript 文件,例如 'node build/src/server/index.js' (假设编译输出目录为 'build')。 具体的编译和打包流程请参考 TypeScript 项目的构建配置。
基本使用方法
-
启动服务器: 在项目根目录下,打开终端并运行以下命令启动 Linear MCP Server:
npm start或者,如果你希望直接运行 TypeScript 代码 (确保已安装 'ts-node' 或类似工具):
./src/server/index.ts服务器成功启动后,你会在控制台看到 "Linear MCP Server running on stdio" 的提示。
-
配置 MCP 客户端: 在你的 MCP 客户端应用中,根据上述 “服务器配置” 部分的 JSON 配置信息,配置连接到 Linear MCP Server。
-
使用 'get-linear-tickets' 工具: 在 MCP 客户端中,你可以通过 MCP 协议发送请求来调用 'get-linear-tickets' 工具。例如,你可以发送 'ListToolsRequest' 请求来获取服务器提供的工具列表,然后使用 'CallToolRequest' 请求来调用 'get-linear-tickets' 工具,并传递相应的参数(如 'apiKey','status','limit')。
工具 'get-linear-tickets' 接受以下参数 (位于 'arguments' 字段):
- 'apiKey' (必填): 你的 Linear API 密钥。注意:虽然工具定义中 'apiKey' 参数在 'inputSchema' 中没有显式声明,但在代码实现中是强制要求的。实际使用时,MCP 客户端需要确保提供此参数。 最佳实践是在 MCP 客户端的安全配置中管理 API 密钥,而不是硬编码在工具参数中。
- 'status' (可选): 工单状态过滤,可选值包括 '"active"', '"completed"', '"canceled"'。
- 'limit' (可选): 返回工单的最大数量,默认为 10,最大值为 50。
工具调用成功后,服务器将返回包含工单信息的 JSON 字符串作为 'content' 返回给 MCP 客户端。客户端可以解析 JSON 字符串并展示工单数据。
示例 (MCP 客户端调用 'get-linear-tickets' 工具的请求, 假设使用 JSON-RPC over stdio):
ListToolsRequest:
{"jsonrpc": "2.0", "method": "listTools", "params": {}, "id": 1}
CallToolRequest (调用 'get-linear-tickets' 工具,不带参数):
{"jsonrpc": "2.0", "method": "callTool", "params": {"name": "get-linear-tickets", "arguments": {}}, "id": 2}
CallToolRequest (调用 'get-linear-tickets' 工具,带参数):
{"jsonrpc": "2.0", "method": "callTool", "params": {"name": "get-linear-tickets", "arguments": {"status": "active", "limit": 5}}, "id": 3}
请参考 MCP 客户端 SDK 的文档,了解如何构建和发送 MCP 请求,以及如何处理服务器返回的响应。
信息
分类
开发者工具