使用说明
线性mcp
先决条件
快速开始
1.创建线性OAuth应用程序
- 首选 线性→ 设置→ API → OAuth2应用程序 (链接).
- 创建新应用程序。
- 在...之下 重定向URI,添加:
https://as.dedaluslabs.ai/oauth/callback - 注意 客户端ID 和 客户端密钥.
2.配置环境变量
cp .env.example .env
填写您的 .env:
# Linear OAuth (consumed by the Dedalus platform during deployment)
OAUTH_ENABLED=true
OAUTH_AUTHORIZE_URL=https://linear.app/oauth/authorize
OAUTH_TOKEN_URL=https://api.linear.app/oauth/token
OAUTH_CLIENT_ID=<your-linear-client-id>
OAUTH_CLIENT_SECRET=<your-linear-client-secret>
OAUTH_SCOPES_AVAILABLE=read,write,issues:create,comments:create
OAUTH_BASE_URL=https://api.linear.app
# Dedalus Platform (for the sample client)
DEDALUS_API_KEY=<your-dedalus-api-key>
DEDALUS_API_URL=https://api.dedaluslabs.ai
DEDALUS_AS_URL=https://as.dedaluslabs.ai
# After deploying, set this to your slug
LINEAR_MCP_SLUG=your-org/linear-mcp
3.部署到Dedalus
- 登录到 Dedalus仪表板.
- 首选 添加服务器 并连接此GitHub存储库。
- 在服务器配置中,从您的
.env(OAUTH_CLIENT_ID,OAUTH_CLIENT_SECRET等等)。 - 部署。仪表板将显示您的服务器slug(例如。
your-org/linear-mcp).
4.安装依赖项
uv sync
5.运行客户端
uv run src/_client.py
首次使用时,客户端将打开您的浏览器进行线性OAuth授权。 完成流程后,您可以通过代理与Linear进行交互。
=== Linear MCP Agent ===
Server: your-org/linear-mcp
Type 'quit' or 'exit' to end the session.
You: What issues are assigned to me?
Assistant: ...
环境变量
线性OAuth(服务器端,在Dedalus部署期间设置)
| 变量 | 描述 |
|---|---|
OAUTH_ENABLED |
true |
OAUTH_AUTHORIZE_URL |
https://linear.app/oauth/authorize |
OAUTH_TOKEN_URL |
https://api.linear.app/oauth/token |
OAUTH_CLIENT_ID |
您的Linear OAuth应用程序客户端ID |
OAUTH_CLIENT_SECRET |
您的Linear OAuth应用程序客户端密钥 |
OAUTH_SCOPES_AVAILABLE |
read,write,issues:create,comments:create |
OAUTH_BASE_URL |
https://api.linear.app |
Dedalus平台(客户端,用于 _client.py)
|变量|描述| | --- | --- | | DEDALUS_API_KEY |您的Dedalus API密钥(dsk_*) | | DEDALUS_API_URL |API基本URL(默认值: https://api.dedaluslabs.ai) | | DEDALUS_AS_URL |授权服务器URL(默认值: https://as.dedaluslabs.ai) |
在本地运行服务器
uv run src/main.py
这将启动端口8080上的MCP服务器。请注意 _client.py 始终连接
通过Dedalus(不是本地主机)。使用此功能进行直接MCP客户端的本地测试。
棉绒和字体检查
uv run --group lint ruff format src/
uv run --group lint ruff check src/ --fix
uv run --group lint ty check src/
可用工具
| 工具 | R/W | 说明 |
|---|---|---|
linear_get_issue |
R | 通过ID或标识符(ENG-123)获取问题 |
linear_list_issues |
R | 列出过滤器的问题 |
linear_create_issue |
W | 创建新问题 |
linear_update_issue |
W | 更新现有问题 |
linear_list_comments |
R | 列出对某个问题的评论 |
linear_create_comment |
W | 为问题添加评论 |
linear_get_project |
R | 按ID获取项目 |
linear_list_projects |
R | 列出项目 |
linear_create_project |
W | 创建新项目 |
linear_update_project |
W | 更新现有项目 |
linear_list_cycles |
R | 列出团队的周期 |
linear_get_cycle |
R | 按ID获取循环 |
linear_active_cycle |
R | 获取团队的当前活动周期 |
linear_list_teams |
R | 列出所有团队 |
linear_get_team |
R | 按ID获取团队 |
linear_list_team_states |
R | 列出团队的工作流状态 |
linear_whoami |
R | 获取经过身份验证的用户配置文件 |
linear_list_users |
R | 列出工作区成员 |
linear_list_labels |
R | 列出标签 |
linear_create_label |
W | 创建新标签 |
linear_search_issues |
R | 跨问题的全文搜索 |
linear_issue_context |
R | 完整的问题背景(详细信息+评论+状态) |
linear_my_issues |
R | 分配给经过身份验证的用户的问题 |
linear_get_attachment |
R | 按ID获取附件 |
linear_get_attachment_by_url |
R | 通过URL获取附件 |
linear_create_attachment |
W | 针对某个问题创建附件 |
linear_update_attachment |
W | 更新现有附件 |
建筑
Linear使用单个GraphQL端点(POST /graphql).请求层
通过Dedalus HTTP飞地发送查询,该飞地注入OAuth
透明的凭证。
src/
├── linear/
│ ├── config.py # Connection definition (OAuth)
│ ├── request.py # GraphQL dispatch + coercion helpers
│ └── types.py # Typed dataclass models
├── tools/
│ ├── issues.py # Issue CRUD
│ ├── comments.py # Comment operations
│ ├── projects.py # Project CRUD
│ ├── cycles.py # Cycle queries
│ ├── teams.py # Team + workflow states
│ ├── users.py # User queries
│ ├── labels.py # Label operations
│ ├── search.py # Issue search
│ ├── attachments.py # Attachment operations
│ └── compound.py # Multi-step workflows (issue context, my issues)
├── server.py # MCPServer setup
├── main.py # Server entry point
└── _client.py # Interactive agent client (DAuth)
故障排除
“线性MCP服务器当前不可用”
客户端要求Dedalus平台通过slug路由到您的MCP服务器。这 错误意味着平台无法访问它。常见原因:
- 服务器未部署 --首先从Dedalus仪表板部署此仓库。
- 错误的slug --验证
LINEAR_MCP_SLUG与您的部署相匹配。 - OAuth未完成 --在提示时完成线性OAuth流程。
“应用程序的redirect_uri参数无效”
Linear的OAuth拒绝了回调URL。通过添加 https://as.dedaluslabs.ai/oauth/callback
到您的Linear OAuth应用程序 重定向URI 在
线性设置→ API → OAuth2应用程序.
OAuth重新部署后的重新授权
重新部署服务器可能会生成一个新的服务器ID,使之前的OAuth无效 代币。如果在重新部署后看到401错误,请再次运行客户端,然后 在系统提示时完成OAuth流程。
备注
- Linear的API是GraphQL-only。每个工具都会分派一个GraphQL查询或变异。
- 工作流程状态因团队而异。使用
linear_list_team_states发现有效 创建或转换问题之前的状态ID。 - 问题标识符(例如。
ENG-123)可以与UUID互换使用。 - 优先级值:0=无优先级,1=紧急,2=高,3=中,4=低。
- 默认情况下,已存档的资源是隐藏的;一些工具接受
include_archived. - 身份验证通过DAuth使用OAuth2。不支持个人API密钥。
