Linear MCP Server

by magarcia
Verified
MIT License
  • Apple

Integrations

  • Interfaces with Linear's GraphQL API, enabling structured queries and mutations for accessing and manipulating data in the Linear platform.

  • Provides integration with Linear's issue tracking system, allowing management of issues, teams, projects, labels, milestones, and attachments. Supports creating and updating issues, adding comments, searching and filtering issues, managing relationships between issues, and accessing detailed information about teams, projects, and users.

선형 MCP 서버

선형 API를 위한 모델 컨텍스트 프로토콜 서버입니다.

이 서버는 MCP를 통해 Linear의 문제 추적 시스템과 통합을 제공하여 LLM이 Linear 문제와 상호 작용할 수 있도록 합니다.

설치

자동 설치

Smithery를 통해 Claude Desktop용 Linear MCP 서버를 자동으로 설치하려면:

지엑스피1

수동 설치

  1. Linear 개인 API 키를 생성하거나 받으세요: https://linear.app/settings/account/security
  2. Claude Desktop에 서버 구성을 추가합니다.
    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{ "mcpServers": { "linear": { "command": "npx", "args": ["-y", "mcp-server-linearapp"], "env": { "LINEAR_API_KEY": "your_linear_api_key_here" } } } }

구성 요소

도구

사용자 관련 도구

  1. linear_get_viewer : 인증된 사용자에 대한 정보를 가져옵니다.
    • 입력이 필요하지 않습니다
    • ID, 이름, 이메일, 활성 상태를 포함한 사용자 프로필 정보를 반환합니다.
  2. linear_get_user_issues : 사용자에게 할당된 이슈를 가져옵니다.
    • 선택 입력 사항:
      • userId (문자열): 사용자 ID(인증된 사용자의 경우 생략)
      • includeArchived (부울): 보관된 이슈를 포함합니다.
      • limit (숫자, 기본값: 50): 최대 결과
  3. linear_get_user_teams : 사용자와 연관된 팀을 가져옵니다.
    • 선택 입력 사항:
      • userId (문자열): 팀을 가져올 사용자 ID(인증된 사용자의 경우 생략)
      • includeArchived (부울): 보관된 팀을 포함합니다.
      • limit (숫자, 기본값: 50): 반환할 최대 팀 수
    • 사용자가 소속된 팀 목록을 반환합니다.
  4. linear_get_user_projects : 사용자와 연관된 프로젝트를 가져옵니다.
    • 선택 입력 사항:
      • userId (문자열): 프로젝트를 가져올 사용자 ID(인증된 사용자의 경우 생략)
      • includeArchived (부울): 보관된 프로젝트를 포함합니다.
      • limit (숫자, 기본값: 50): 반환할 최대 프로젝트 수
      • status (문자열): 프로젝트 상태(예: '완료', '진행 중')로 필터링
    • 사용자가 리더 또는 멤버인 프로젝트 목록을 반환합니다.

팀 관련 도구

  1. linear_get_teams : 조직 내 팀 가져오기
    • 선택 입력 사항:
      • includeArchived (부울): 보관된 팀을 포함합니다.
      • limit (숫자, 기본값: 50): 반환할 최대 팀 수
  2. linear_get_team : 특정 팀에 대한 세부 정보를 가져옵니다.
    • 필수 입력 사항:
      • teamId (문자열): 세부 정보를 얻을 팀 ID
    • 이름, 키, 멤버 및 설정을 포함한 팀 정보를 반환합니다.
  3. linear_get_team_issues : 특정 팀의 이슈를 가져옵니다.
    • 필수 입력 사항:
      • teamId (문자열): 문제를 가져올 팀 ID
    • 선택 입력 사항:
      • includeArchived (부울): 보관된 이슈를 포함합니다.
      • limit (숫자, 기본값: 50): 반환할 최대 문제 수
      • status (문자열): 문제 상태별 필터링
      • priority (숫자): 우선순위 수준별 필터링
      • assigneeId (문자열): 담당자로 필터링

프로젝트 관련 도구

  1. linear_get_projects : 조직의 프로젝트를 가져옵니다.
    • 선택 입력 사항:
      • teamId (문자열): 팀별로 프로젝트 필터링
      • includeArchived (부울): 보관된 프로젝트를 포함합니다.
      • limit (숫자, 기본값: 50): 반환할 최대 프로젝트 수
      • status (문자열): 프로젝트 상태별 필터링
  2. linear_get_project : 특정 프로젝트에 대한 세부 정보를 가져옵니다.
    • 필수 입력 사항:
      • projectId (문자열): 세부 정보를 가져올 프로젝트 ID
    • 진행 상황, 상태, 팀, 리더 및 날짜를 포함한 자세한 프로젝트 정보를 반환합니다.
  3. linear_get_project_issues : 특정 프로젝트의 이슈를 가져옵니다.
  • 필수 입력 사항:
    • projectId (문자열): 문제를 가져올 프로젝트 ID
  • 선택 입력 사항:
    • includeArchived (부울): 보관된 이슈를 포함합니다.
    • limit (숫자, 기본값: 50): 반환할 최대 문제 수
    • status (문자열): 문제 상태별 필터링
    • priority (숫자): 우선순위 수준별 필터링

문제 관련 도구

  1. linear_create_issue : 새로운 Linear 이슈를 생성합니다.
  • 필수 입력 사항:
    • title (문자열): 이슈 제목
    • teamId (문자열): 문제를 생성할 팀 ID
  • 선택 입력 사항:
    • description (문자열): 문제 설명(마크다운 지원)
    • priority (숫자, 0-4): 우선순위 수준(1=긴급, 4=낮음)
    • status (문자열): 초기 상태 이름
  1. linear_update_issue : 기존 이슈 업데이트
  • 필수 입력 사항:
    • id (문자열): 업데이트할 문제 ID
  • 선택 입력 사항:
    • title (문자열): 새 제목
    • description (문자열): 새 설명
    • priority (숫자, 0-4): 새로운 우선순위
    • status (문자열): 새 상태 이름
  1. linear_search_issues : 유연한 필터링을 통한 문제 검색
  • 선택 입력 사항:
    • query (문자열): 제목/설명에서 검색할 텍스트
    • teamId (문자열): 팀으로 필터링
    • status (문자열): 상태별 필터링
    • assigneeId (문자열): 담당자로 필터링
    • labels (string[]): 레이블로 필터링
    • priority (숫자): 우선순위로 필터링
    • limit (숫자, 기본값: 10): 최대 결과
  1. linear_add_comment : 이슈에 댓글 추가
  • 필수 입력 사항:
    • issueId (문자열): 의견을 제시할 이슈 ID
    • body (문자열): 주석 텍스트(마크다운 지원)
  • 선택 입력 사항:
    • createAsUser (문자열): 사용자 정의 사용자 이름
    • displayIconUrl (문자열): 사용자 정의 아바타 URL

라벨 관리 도구

  1. linear_get_labels : 조직의 레이블을 가져옵니다.
  • 선택 입력 사항:
    • teamId (문자열): 팀별로 레이블 필터링
    • includeArchived (부울): 보관된 레이블을 포함합니다.
    • limit (숫자, 기본값: 50): 반환할 레이블의 최대 개수
  1. linear_create_label : 새 라벨을 만듭니다
  • 필수 입력 사항:
    • name (문자열): 레이블 이름
    • teamId (문자열): 레이블을 생성할 팀 ID
  • 선택 입력 사항:
    • color (문자열): 색상 16진수 코드(예: "#FF0000")
    • description (문자열): 레이블 설명
  1. linear_update_label : 기존 라벨을 업데이트합니다
  • 필수 입력 사항:
    • id (문자열): 업데이트할 레이블 ID
  • 선택 입력 사항:
    • name (문자열): 새 레이블 이름
    • color (문자열): 새로운 색상 16진수 코드
    • description (문자열): 새 설명

첨부 파일 관리 도구

  1. linear_add_attachment : 이슈에 첨부 파일 추가
  • 필수 입력 사항:
    • issueId (문자열): 첨부 파일을 추가할 문제 ID
    • url (문자열): 첨부 파일의 URL
    • title (문자열): 첨부 파일의 제목
  • 선택 입력 사항:
    • subtitle (문자열): 첨부파일의 자막
    • icon (문자열): 첨부 파일의 아이콘 URL
  1. linear_get_attachments : 이슈에 대한 첨부 파일을 가져옵니다.
  • 필수 입력 사항:
    • issueId (문자열): 첨부 파일을 가져올 문제 ID

문제 관계 도구

  1. linear_link_issues : 이슈 간 관계 생성
  • 필수 입력 사항:
    • issueId (문자열): 소스 문제 ID
    • relatedIssueId (문자열): 대상 문제 ID
    • type (문자열): 관계 유형(예: "블록", "관련", "중복")
  1. linear_get_issue_relations : 이슈에 대한 관계 가져오기
  • 필수 입력 사항:
    • issueId (문자열): 관계를 가져올 문제 ID
  • 선택 입력 사항:
    • type (문자열): 관계 유형별 필터링

마일스톤 관리 도구

  1. linear_get_milestones : 프로젝트의 마일스톤을 가져옵니다.
  • 선택 입력 사항:
    • projectId (문자열): 프로젝트별로 마일스톤 필터링
    • includeArchived (부울): 보관된 마일스톤 포함
    • limit (숫자, 기본값: 50): 반환할 마일스톤의 최대 수
  1. linear_create_milestone : 새로운 마일스톤을 만듭니다
  • 필수 입력 사항:
    • name (문자열): 마일스톤 이름
    • projectId (문자열): 마일스톤을 생성할 프로젝트 ID
    • targetDate (문자열): 목표 완료 날짜(ISO 형식)
  • 선택 입력 사항:
    • description (문자열): 마일스톤 설명
    • sortOrder (숫자): 마일스톤 목록의 위치
  1. linear_update_milestone : 기존 마일스톤 업데이트
  • 필수 입력 사항:
    • id (문자열): 업데이트할 마일스톤 ID
  • 선택 입력 사항:
    • name (문자열): 새로운 이정표 이름
    • targetDate (문자열): 새로운 목표 날짜
    • description (문자열): 새 설명
    • status (문자열): 새로운 상태(예: "계획됨", "진행 중", "완료")

자원

  • linear-issue:///{issueId} : 개별 이슈 세부 정보 보기
    • 제목, 설명, 코멘트, 메타데이터를 포함한 문제 정보를 반환합니다.
  • linear-team:///{teamId} : 팀 세부 정보 보기
    • 이름, 키, 설명 및 멤버를 포함한 팀 정보를 반환합니다.
  • linear-team:///{teamId}/issues : 팀 문제 보기
    • 상태 및 우선 순위 정보와 함께 특정 팀의 모든 문제를 반환합니다.
  • linear-project:///{projectId} : 프로젝트 세부 정보 보기
    • 이름, 설명, 진행 상황, 상태, 리드, 팀 및 타임라인을 포함한 프로젝트 정보를 반환합니다.
  • linear-project:///{projectId}/issues : 프로젝트 문제 보기
    • 상태 및 할당 정보와 함께 특정 프로젝트의 모든 문제를 반환합니다.
  • linear-project:///{projectId}/milestones : 프로젝트 마일스톤 보기
    • 특정 프로젝트의 모든 이정표를 진행 상황 및 상태 정보와 함께 반환합니다.
  • linear-user:///{userId}/assigned : 사용자에게 할당된 문제 보기
    • 프로젝트 및 팀 컨텍스트를 사용하여 특정 사용자에게 할당된 문제를 반환합니다.
  • linear-organization: : 조직 정보 보기
    • 이름 및 설정을 포함한 조직 수준 정보를 반환합니다.
  • linear-viewer: : 현재 사용자 컨텍스트 보기
    • 인증된 사용자에 대한 정보를 반환합니다.
  • linear-viewer:///teams : 인증된 사용자의 팀을 봅니다.
    • 현재 사용자가 소속된 모든 팀을 반환합니다.
  • linear-viewer:///projects : 인증된 사용자의 프로젝트를 봅니다.
    • 현재 사용자가 (리드 또는 멤버로서) 참여하고 있는 모든 프로젝트를 반환합니다.
  • linear-viewer:///assigned : 인증된 사용자에게 할당된 이슈를 확인합니다.
    • 프로젝트 및 팀 컨텍스트를 사용하여 현재 사용자에게 할당된 모든 문제를 반환합니다.
  • linear-label:///{labelId} : 라벨 세부 정보 보기
    • 이름, 색상 및 관련 문제를 포함한 반품 라벨 정보

사용 예

다음은 Claude Desktop에서 Linear와 상호 작용할 때 사용할 수 있는 프롬프트의 예입니다.

이슈 관리

  • "인증 시스템에 대한 새로운 버그 보고서를 만듭니다" → linear_create_issue 사용하여 적절한 세부 정보로 새로운 이슈를 만듭니다.
  • "티켓 FRONT-123의 우선순위를 긴급으로 업데이트" → linear_update_issue 사용하여 기존 이슈의 우선순위를 수정합니다.
  • "로그인 페이지 버그에 근본 원인을 설명하는 주석을 추가합니다" → linear_add_comment 사용하여 기존 문제에 정보를 추가합니다.

문제 찾기 및 필터링

  • "내 모든 높은 우선순위 문제 표시" → linear_get_user_issues 또는 linear-viewer:///assigned 사용하여 높은 우선순위로 할당된 문제를 찾습니다.
  • "진행 중인 모든 프런트엔드 작업 찾기" → "진행 중" 상태의 프런트엔드 관련 문제를 찾으려면 linear_search_issues 사용하세요.
  • "현재 Sarah에게 할당된 문제는 무엇입니까?" → Sarah의 ID와 함께 linear_get_user_issues 사용하여 그녀의 할당을 확인하세요.

팀 및 프로젝트 관리

  • "나는 어떤 팀의 멤버인가요?" → 인증된 사용자가 속한 모든 팀을 나열하려면 linear_get_user_teams 또는 linear-viewer:///teams 사용하세요.
  • "내가 이끌고 있거나 기여하고 있는 프로젝트를 보여주세요" → linear_get_user_projects 또는 linear-viewer:///projects 사용하여 현재 사용자와 관련된 모든 프로젝트를 가져옵니다.
  • "모바일 앱 프로젝트의 현재 진행 상황은 어떻습니까?" → linear_get_project 사용하여 진행 상황을 포함한 프로젝트에 대한 자세한 정보를 얻으세요.
  • "프론트엔드 팀의 모든 활성 프로젝트 나열" → linear_get_team 결합하여 팀 ID를 찾고, linear_get_projects 팀 필터와 결합하여 활성 프로젝트를 찾습니다.

상태 및 작업 부하 분석

  • "청구 시스템 문제에 대한 최근 업데이트 요약을 알려주세요" → linear_search_issues 사용하여 관련 문제를 식별한 다음 linear-issue:///{issueId} 사용하여 문제 세부 정보를 가져옵니다.
  • "모바일 팀의 현재 업무량은 얼마입니까?" → linear-team:///{teamId}/issues 또는 linear_get_team_issues 를 사용하여 팀 전체의 문제 분포를 분석합니다.
  • "조직 내에서 내 역할과 책임을 보여주세요" → linear_get_viewerlinear-viewer:///teams 사용하여 팀 멤버십과 역할을 분석합니다.

라벨 및 분류

  • "우선순위가 높은 보안 문제에 대한 '보안' 레이블 만들기" → linear_create_label 사용하여 적절한 설정으로 새 레이블을 만듭니다.
  • "프론트엔드 팀에서 사용 가능한 라벨은 무엇입니까?" → 프런트엔드 팀 ID와 함께 linear_get_labels 사용하여 사용 가능한 분류를 확인하세요.
  • "모든 API 문제에 'needs-documentation' 라벨을 적용합니다" → linear_search_issues 사용하여 API 관련 문제를 찾은 다음 각각을 linear_update_issue 로 업데이트합니다.

마일스톤 관리

  • "베타 릴리스를 위한 마일스톤 만들기" → linear_create_milestone 사용하여 목표 날짜가 있는 프로젝트 마일스톤을 설정합니다.
  • "모바일 앱 프로젝트에서 어떤 이정표가 예정되어 있나요?" → 프로젝트 ID와 함께 linear_get_milestones 사용하여 계획된 배송 지점을 확인하세요.
  • "API v2 마일스톤 상태를 완료로 업데이트" → linear_update_milestone 사용하여 마일스톤 상태를 변경합니다.

문제 관계

  • "API-456 차단으로 FRONT-123 문제를 표시" → linear_link_issues 사용하여 문제 간 차단 관계를 만듭니다.
  • "이 버그로 인해 어떤 문제가 차단되고 있나요?" → linear_get_issue_relations 사용하여 종속성을 찾으세요.
  • "인증 시스템과 관련된 모든 문제 표시" → 적절한 필터와 함께 linear_search_issues 사용한 다음 linear_get_issue_relations 사용하여 관계를 탐색합니다.

개발

  1. 종속성 설치:
npm install
  1. .env 에서 Linear API 키 구성:
LINEAR_API_KEY=your_api_key_here
  1. 서버를 빌드하세요:
npm run build

자동 재빌드를 사용한 개발의 경우:

npm run watch

특허

이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

대규모 언어 모델이 Linear의 이슈 추적 시스템과 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜 서버로, 이슈, 프로젝트, 팀 및 기타 Linear 리소스를 관리할 수 있습니다.

  1. Installation
    1. Automatic Installation
    2. Manual Installation
  2. Components
    1. Tools
    2. Resources
  3. Usage examples
    1. Issue Management
    2. Finding and Filtering Issues
    3. Team and Project Management
    4. Status and Workload Analysis
    5. Label and Categorization
    6. Milestone Management
    7. Issue Relationships
  4. Development
    1. License
      ID: hb4oc9s50d