Linear MCP Server
선형 MCP 서버
선형 API를 위한 모델 컨텍스트 프로토콜 서버입니다.
이 서버는 MCP를 통해 Linear의 문제 추적 시스템과 통합을 제공하여 LLM이 Linear 문제와 상호 작용할 수 있도록 합니다.
설치
자동 설치
Smithery를 통해 Claude Desktop용 Linear MCP 서버를 자동으로 설치하려면:
지엑스피1
수동 설치
Linear 개인 API 키를 생성하거나 받으세요: https://linear.app/settings/account/security
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"
}
}
}
}Related MCP server: Linear MCP Server
구성 요소
도구
사용자 관련 도구
linear_get_viewer: 인증된 사용자에 대한 정보를 가져옵니다.입력이 필요하지 않습니다
ID, 이름, 이메일, 활성 상태를 포함한 사용자 프로필 정보를 반환합니다.
linear_get_user_issues: 사용자에게 할당된 이슈를 가져옵니다.선택 입력 사항:
userId(문자열): 사용자 ID(인증된 사용자의 경우 생략)includeArchived(부울): 보관된 이슈를 포함합니다.limit(숫자, 기본값: 50): 최대 결과
linear_get_user_teams: 사용자와 연관된 팀을 가져옵니다.선택 입력 사항:
userId(문자열): 팀을 가져올 사용자 ID(인증된 사용자의 경우 생략)includeArchived(부울): 보관된 팀을 포함합니다.limit(숫자, 기본값: 50): 반환할 최대 팀 수
사용자가 소속된 팀 목록을 반환합니다.
linear_get_user_projects: 사용자와 연관된 프로젝트를 가져옵니다.선택 입력 사항:
userId(문자열): 프로젝트를 가져올 사용자 ID(인증된 사용자의 경우 생략)includeArchived(부울): 보관된 프로젝트를 포함합니다.limit(숫자, 기본값: 50): 반환할 최대 프로젝트 수status(문자열): 프로젝트 상태(예: '완료', '진행 중')로 필터링
사용자가 리더 또는 멤버인 프로젝트 목록을 반환합니다.
팀 관련 도구
linear_get_teams: 조직 내 팀 가져오기선택 입력 사항:
includeArchived(부울): 보관된 팀을 포함합니다.limit(숫자, 기본값: 50): 반환할 최대 팀 수
linear_get_team: 특정 팀에 대한 세부 정보를 가져옵니다.필수 입력 사항:
teamId(문자열): 세부 정보를 얻을 팀 ID
이름, 키, 멤버 및 설정을 포함한 팀 정보를 반환합니다.
linear_get_team_issues: 특정 팀의 이슈를 가져옵니다.필수 입력 사항:
teamId(문자열): 문제를 가져올 팀 ID
선택 입력 사항:
includeArchived(부울): 보관된 이슈를 포함합니다.limit(숫자, 기본값: 50): 반환할 최대 문제 수status(문자열): 문제 상태별 필터링priority(숫자): 우선순위 수준별 필터링assigneeId(문자열): 담당자로 필터링
프로젝트 관련 도구
linear_get_projects: 조직의 프로젝트를 가져옵니다.선택 입력 사항:
teamId(문자열): 팀별로 프로젝트 필터링includeArchived(부울): 보관된 프로젝트를 포함합니다.limit(숫자, 기본값: 50): 반환할 최대 프로젝트 수status(문자열): 프로젝트 상태별 필터링
linear_get_project: 특정 프로젝트에 대한 세부 정보를 가져옵니다.필수 입력 사항:
projectId(문자열): 세부 정보를 가져올 프로젝트 ID
진행 상황, 상태, 팀, 리더 및 날짜를 포함한 자세한 프로젝트 정보를 반환합니다.
linear_get_project_issues: 특정 프로젝트의 이슈를 가져옵니다.
필수 입력 사항:
projectId(문자열): 문제를 가져올 프로젝트 ID
선택 입력 사항:
includeArchived(부울): 보관된 이슈를 포함합니다.limit(숫자, 기본값: 50): 반환할 최대 문제 수status(문자열): 문제 상태별 필터링priority(숫자): 우선순위 수준별 필터링
문제 관련 도구
linear_create_issue: 새로운 Linear 이슈를 생성합니다.
필수 입력 사항:
title(문자열): 이슈 제목teamId(문자열): 문제를 생성할 팀 ID
선택 입력 사항:
description(문자열): 문제 설명(마크다운 지원)priority(숫자, 0-4): 우선순위 수준(1=긴급, 4=낮음)status(문자열): 초기 상태 이름
linear_update_issue: 기존 이슈 업데이트
필수 입력 사항:
id(문자열): 업데이트할 문제 ID
선택 입력 사항:
title(문자열): 새 제목description(문자열): 새 설명priority(숫자, 0-4): 새로운 우선순위status(문자열): 새 상태 이름
linear_search_issues: 유연한 필터링을 통한 문제 검색
선택 입력 사항:
query(문자열): 제목/설명에서 검색할 텍스트teamId(문자열): 팀으로 필터링status(문자열): 상태별 필터링assigneeId(문자열): 담당자로 필터링labels(string[]): 레이블로 필터링priority(숫자): 우선순위로 필터링limit(숫자, 기본값: 10): 최대 결과
linear_add_comment: 이슈에 댓글 추가
필수 입력 사항:
issueId(문자열): 의견을 제시할 이슈 IDbody(문자열): 주석 텍스트(마크다운 지원)
선택 입력 사항:
createAsUser(문자열): 사용자 정의 사용자 이름displayIconUrl(문자열): 사용자 정의 아바타 URL
라벨 관리 도구
linear_get_labels: 조직의 레이블을 가져옵니다.
선택 입력 사항:
teamId(문자열): 팀별로 레이블 필터링includeArchived(부울): 보관된 레이블을 포함합니다.limit(숫자, 기본값: 50): 반환할 레이블의 최대 개수
linear_create_label: 새 라벨을 만듭니다
필수 입력 사항:
name(문자열): 레이블 이름teamId(문자열): 레이블을 생성할 팀 ID
선택 입력 사항:
color(문자열): 색상 16진수 코드(예: "#FF0000")description(문자열): 레이블 설명
linear_update_label: 기존 라벨을 업데이트합니다
필수 입력 사항:
id(문자열): 업데이트할 레이블 ID
선택 입력 사항:
name(문자열): 새 레이블 이름color(문자열): 새로운 색상 16진수 코드description(문자열): 새 설명
첨부 파일 관리 도구
linear_add_attachment: 이슈에 첨부 파일 추가
필수 입력 사항:
issueId(문자열): 첨부 파일을 추가할 문제 IDurl(문자열): 첨부 파일의 URLtitle(문자열): 첨부 파일의 제목
선택 입력 사항:
subtitle(문자열): 첨부파일의 자막icon(문자열): 첨부 파일의 아이콘 URL
linear_get_attachments: 이슈에 대한 첨부 파일을 가져옵니다.
필수 입력 사항:
issueId(문자열): 첨부 파일을 가져올 문제 ID
문제 관계 도구
linear_link_issues: 이슈 간 관계 생성
필수 입력 사항:
issueId(문자열): 소스 문제 IDrelatedIssueId(문자열): 대상 문제 IDtype(문자열): 관계 유형(예: "블록", "관련", "중복")
linear_get_issue_relations: 이슈에 대한 관계 가져오기
필수 입력 사항:
issueId(문자열): 관계를 가져올 문제 ID
선택 입력 사항:
type(문자열): 관계 유형별 필터링
마일스톤 관리 도구
linear_get_milestones: 프로젝트의 마일스톤을 가져옵니다.
선택 입력 사항:
projectId(문자열): 프로젝트별로 마일스톤 필터링includeArchived(부울): 보관된 마일스톤 포함limit(숫자, 기본값: 50): 반환할 마일스톤의 최대 수
linear_create_milestone: 새로운 마일스톤을 만듭니다
필수 입력 사항:
name(문자열): 마일스톤 이름projectId(문자열): 마일스톤을 생성할 프로젝트 IDtargetDate(문자열): 목표 완료 날짜(ISO 형식)
선택 입력 사항:
description(문자열): 마일스톤 설명sortOrder(숫자): 마일스톤 목록의 위치
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_viewer및linear-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사용하여 관계를 탐색합니다.
개발
종속성 설치:
npm install.env에서 Linear API 키 구성:
LINEAR_API_KEY=your_api_key_here서버를 빌드하세요:
npm run build자동 재빌드를 사용한 개발의 경우:
npm run watch특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
Available Tools
19 toolslinear_add_attachmentC
Add an attachment to an issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Icon URL for attachment | |
| issueId | Yes | Issue ID to add attachment to | |
| subtitle | No | Subtitle for attachment | |
| title | Yes | Title of attachment | |
| url | Yes | URL of attachment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Add') but doesn't mention required permissions, whether this is a mutation operation, potential side effects, error conditions, or response format. This leaves significant gaps for a tool that modifies data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after attachment addition, error handling, or behavioral context. Given the complexity of modifying issue data, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, maintaining the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add an attachment') and target resource ('to an issue in Linear'), providing specific verb+resource pairing. However, it doesn't differentiate from sibling tools like linear_get_attachments or linear_update_issue, which would require explicit comparison for a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, exclusions, or comparisons with sibling tools like linear_get_attachments (for viewing) or linear_update_issue (which might also handle attachments).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_add_commentC
Add a comment to a Linear issue
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text (markdown supported) | |
| createAsUser | No | Custom username for the comment creator | |
| displayIconUrl | No | Custom avatar URL for the comment creator | |
| issueId | Yes | Issue ID to comment on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Add a comment') but doesn't describe what happens—whether this creates a permanent record, requires specific permissions, supports notifications, or has rate limits. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding the tool's behavior and implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose with zero wasted words. It directly answers 'what does this tool do?' without unnecessary elaboration, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, side effects, or response format, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters (issueId, body, createAsUser, displayIconUrl). The description adds no parameter-specific information beyond what's in the schema, such as examples or constraints. This meets the baseline of 3, as the schema handles the heavy lifting, but the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a comment') and target resource ('to a Linear issue'), making the purpose immediately understandable. It distinguishes from siblings like linear_create_issue or linear_update_issue by focusing specifically on commenting. However, it doesn't explicitly differentiate from hypothetical similar tools like linear_update_comment (if it existed), keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue), exclusions, or comparisons to sibling tools like linear_update_issue (which might also allow commenting). The agent must infer usage from the tool name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_create_issueC
Create a new Linear issue
| Name | Required | Description | Default |
|---|---|---|---|
| assigneeId | No | User ID to assign the issue to | |
| description | No | Issue description (markdown supported) | |
| priority | No | Priority level (0-4), where 0=no priority, 1=urgent, 4=low | |
| status | No | Initial status name (e.g., 'Todo', 'In Progress') | |
| teamId | Yes | Team ID to create issue in | |
| title | Yes | Issue title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action ('Create a new Linear issue'). It doesn't mention authentication requirements, rate limits, what happens when creation fails, whether this is a mutating operation, or any side effects. For a creation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero waste. It's appropriately sized for a basic creation operation and front-loads the essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation, what the tool returns, error conditions, or how it differs from sibling tools. Given the complexity and lack of structured data, the description should provide more complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new Linear issue' clearly states the verb ('Create') and resource ('Linear issue'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'linear_update_issue' or explain what differentiates creation from updating, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'linear_update_issue' or 'linear_search_issues'. There's no mention of prerequisites, constraints, or appropriate contexts for creating issues versus other operations, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_create_labelC
Create a new label in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | The color for the label in hex format (e.g. "#FF0000") | |
| description | No | A description for the label | |
| name | Yes | The name of the label | |
| parentId | No | The ID of a parent label to create a nested label | |
| teamId | Yes | The ID of the team to create the label for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't mention permission requirements, whether creation is idempotent, error conditions, or what happens on success (e.g., returns label ID). For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a create operation and front-loaded with the essential action. Every word earns its place with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation (return value), permission requirements, error handling, or how it differs from sibling update_label. The 100% schema coverage helps with parameters, but behavioral and contextual gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters (color, description, name, parentId, teamId) with clear descriptions. The description adds no parameter information beyond what's in the schema, meeting the baseline of 3 when schema coverage is high. No additional semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new label in Linear'), making the purpose immediately understandable. It distinguishes this from sibling tools like linear_get_labels (read) and linear_update_label (update), though it doesn't explicitly contrast with them. The description is specific but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing team access), when not to use it (e.g., for updating existing labels), or refer to sibling tools like linear_update_label for modifications. Usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_attachmentsC
Get attachments for an issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | Issue ID to get attachments for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not cover critical traits like whether this is a read-only operation, potential rate limits, authentication needs, or return format. This leaves significant gaps for a tool that interacts with external data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not address behavioral aspects like safety, performance, or return values, which are crucial for a data retrieval tool. This leaves the agent with insufficient context to use the tool effectively beyond basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'issueId' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('attachments for an issue'), making the purpose understandable. However, it does not differentiate from siblings like linear_get_issue_relations or linear_get_labels, which also retrieve issue-related data, so it lacks specificity for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as linear_search_issues for broader queries or linear_get_issue_relations for related data. It implies usage by specifying the resource but offers no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_issue_relationsC
Get relationships for an issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | Issue ID to get relationships for | |
| type | No | Filter by relationship type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It implies a read-only operation ('Get'), but doesn't specify whether it requires authentication, returns paginated results, includes rate limits, or what the output format looks like (e.g., list of related issues with metadata). This leaves significant gaps for a tool that likely interacts with external data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the core purpose ('Get relationships for an issue') efficiently, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of fetching relational data (likely involving structured outputs) and the absence of both annotations and an output schema, the description is insufficient. It doesn't explain what 'relationships' entail (e.g., linked issues, dependencies), the return format, or error conditions, leaving the agent under-informed for a tool with potential nuanced behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters ('issueId' and 'type'). The description adds no additional semantic context beyond what the schema provides, such as examples of relationship types or how the filtering works. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('relationships for an issue'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'linear_link_issues' (which might create relationships) or 'linear_get_issue' (which might get issue details without relationships), leaving room for ambiguity about its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an issue ID), exclusions, or how it compares to sibling tools like 'linear_search_issues' or 'linear_get_issue', leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_labelsB
Get labels from Linear, optionally filtered by team
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Whether to include archived labels | |
| limit | No | Maximum number of labels to return | |
| teamId | No | Filter labels by team ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what happens when no labels match. The phrase 'Get labels' implies a read operation, but lacks details on permissions, error conditions, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place: 'Get labels from Linear' establishes the action and resource, while 'optionally filtered by team' adds necessary scope information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with 3 well-documented parameters and no output schema, the description is minimally adequate. However, without annotations or output schema, it should ideally provide more context about the return format (e.g., list of label objects), authentication requirements, or error handling to help the agent use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (includeArchived, limit, teamId). The description adds minimal value beyond the schema by mentioning 'optionally filtered by team' which corresponds to the teamId parameter, but doesn't provide additional context about parameter interactions or usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('labels from Linear') with an optional scope ('optionally filtered by team'). It distinguishes from siblings like linear_create_label (create vs get) and linear_get_teams (labels vs teams), though it doesn't explicitly differentiate from other 'get' tools like linear_get_attachments or linear_get_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving labels with optional team filtering, but doesn't provide explicit guidance on when to use this tool versus alternatives like linear_get_teams or linear_get_projects. No exclusions or prerequisites are mentioned, leaving the agent to infer context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_projectC
Get details about a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to get details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'gets details,' implying a read-only operation, but doesn't specify what details are returned, potential errors (e.g., invalid project ID), authentication needs, rate limits, or data format. This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain what 'details' include, potential response structures, or error handling, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'projectId' clearly documented. The description adds no additional meaning beyond the schema, such as format examples or context about where to obtain the ID. This meets the baseline of 3 since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('details about a specific project'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'linear_get_projects' (plural) or 'linear_get_project_issues', which might retrieve related but different data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a project ID), exclusions, or comparisons to siblings like 'linear_get_projects' for listing projects or 'linear_get_project_issues' for project-specific issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_project_issuesC
Get issues for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived issues | |
| limit | No | Maximum number of issues to return (default: 50) | |
| priority | No | Filter by priority level (0-4), where 0=no priority, 1=urgent, 4=low | |
| projectId | Yes | Project ID to get issues for | |
| status | No | Filter by issue status name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but discloses minimal behavioral traits. It doesn't mention whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what the return format looks like. 'Get' implies a read operation, but no further details are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the core purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'issues' are in this context, how results are structured, or provide any behavioral context beyond the basic verb. The agent must rely entirely on the input schema for parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning beyond implying project-scoped filtering, which is already covered by the 'projectId' parameter in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get issues for a specific project' clearly states the verb ('Get') and resource ('issues'), but it's vague about scope and doesn't distinguish from siblings like 'linear_get_team_issues' or 'linear_search_issues'. It doesn't specify whether this returns all issues, filtered issues, or paginated results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'linear_get_team_issues' (for team-scoped issues) or 'linear_search_issues' (for broader searches). The description implies project-specific retrieval but offers no explicit comparison or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_projectsC
Get projects in the organization
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived projects | |
| limit | No | Maximum number of projects to return (default: 50) | |
| status | No | Filter by project status (e.g., 'completed', 'in progress') | |
| teamId | No | Filter projects by team ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), implying it's non-destructive, but doesn't cover critical aspects like authentication requirements, rate limits, pagination behavior (beyond the limit parameter), error handling, or return format. This leaves significant gaps for a tool with 4 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a straightforward list tool, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain what 'projects' entail in this context, how results are structured, or any behavioral constraints. For a list operation with filtering options, more context on output and usage would be necessary for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters like includeArchived, limit, status, and teamId are well-documented in the schema itself. The description adds no additional parameter semantics beyond implying a list operation, which is already clear from the name and schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get projects in the organization' clearly states the verb ('Get') and resource ('projects'), with scope ('in the organization') that distinguishes it from sibling tools like linear_get_project (singular) or linear_get_team_issues. However, it doesn't explicitly differentiate from other list tools like linear_get_teams or linear_get_labels, which follow a similar pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't mention when to choose linear_get_projects over linear_get_project_issues or linear_get_team_issues, nor does it specify prerequisites or typical use cases. The agent must infer usage from the name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_teamB
Get details about a specific team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team ID to get details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'Get details' but doesn't clarify if this is a read-only operation, what permissions are required, error handling, or response format. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple lookup tool and front-loaded with the core purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate but lacks completeness. It doesn't address behavioral aspects like safety or response format, which are important for an agent to use it correctly despite the simple schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'teamId' well-documented in the schema. The description doesn't add any meaning beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline for high schema coverage without compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('details about a specific team'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'linear_get_teams' (plural) or 'linear_get_team_issues', which might cause confusion about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, when-not-to-use scenarios, or comparisons to sibling tools like 'linear_get_teams' or 'linear_get_team_issues', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_team_issuesC
Get issues for a specific team
| Name | Required | Description | Default |
|---|---|---|---|
| assigneeId | No | Filter by assignee ID | |
| includeArchived | No | Include archived issues | |
| limit | No | Maximum number of issues to return (default: 50) | |
| priority | No | Filter by priority level (0-4), where 0=no priority, 1=urgent, 4=low | |
| status | No | Filter by issue status name | |
| teamId | Yes | Team ID to get issues for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get issues') but doesn't describe whether this is a read-only operation, how results are returned (e.g., pagination, sorting), rate limits, or authentication needs. For a tool with 6 parameters and no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Get issues for a specific team') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, behavioral traits like pagination or sorting, or how to handle errors. For a read operation with filtering options, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear documentation for all 6 parameters (e.g., 'Filter by assignee ID', 'Include archived issues'). The description adds no additional parameter semantics beyond the schema, so it meets the baseline of 3 where the schema does the heavy lifting without compensating for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('issues for a specific team'), making the purpose immediately understandable. However, it doesn't differentiate from similar sibling tools like 'linear_get_user_issues' or 'linear_get_project_issues', which also retrieve issues but with different scopes, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'linear_get_user_issues' for user-specific issues or 'linear_get_project_issues' for project-specific issues, nor does it specify prerequisites such as needing a team ID. This leaves the agent without clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_teamsC
Get teams in the organization
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived teams | |
| limit | No | Maximum number of teams to return (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Get teams' but doesn't specify whether this is a read-only operation, if it requires authentication, what the return format is, or if there are rate limits. For a tool with zero annotation coverage, this leaves significant behavioral aspects undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'teams' means in this context, what data is returned, or how results are structured. For a tool with no structured output documentation, the description should provide more context about the return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both parameters (includeArchived and limit). The description adds no additional parameter information beyond what's already in the schema, which meets the baseline expectation when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'teams in the organization', making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'linear_get_team' (singular) or 'linear_get_projects', but the core action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'linear_get_team' (singular) or other team-related operations. The description only states what it does, not when it's appropriate or what prerequisites might exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_user_issuesC
Get issues assigned to a user
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived issues | |
| limit | No | Maximum number of issues to return (default: 50) | |
| userId | No | User ID (omit for authenticated user) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Get issues' but does not specify if this is a read-only operation, what permissions are needed, how pagination works (implied by 'limit' but not explained), or error handling. This is a significant gap for a tool with parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and directly states the tool's purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of fetching user issues with parameters and no output schema, the description is incomplete. It lacks details on return format, error cases, authentication needs, and how it differs from sibling tools, making it inadequate for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for all parameters in the input schema. The description does not add any extra meaning beyond the schema, such as explaining parameter interactions or default behaviors, so it meets the baseline for high coverage without compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'issues assigned to a user', which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'linear_get_project_issues' or 'linear_get_team_issues', which also retrieve issues but with different scopes, so it lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'linear_search_issues' or other issue-fetching siblings. It lacks context on prerequisites, exclusions, or comparisons, leaving the agent to infer usage based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_get_viewerB
Get information about the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets information' but doesn't specify what type of information (e.g., profile details, permissions), whether it requires authentication (implied by 'authenticated user' but not explicit), or any rate limits or error conditions. This leaves significant gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose ('Get information about the authenticated user') and doesn't include extraneous details, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what information is returned (e.g., user ID, name, email) or any behavioral aspects like authentication requirements. For a tool with no structured data to supplement it, this leaves the agent with insufficient context to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't mention parameters, which is correct for a parameterless tool. This meets the baseline of 4 for zero parameters, as it avoids unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('information about the authenticated user'), making the purpose specific and understandable. However, it doesn't distinguish this from potential sibling tools like 'linear_get_user_issues' or 'linear_get_team' that might also involve user information, so it doesn't fully differentiate from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'linear_get_user_issues' that might retrieve user-related data, there's no indication of when this tool is preferred (e.g., for profile info vs. issue lists) or any prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_link_issuesC
Create a relationship between issues in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | Source issue ID | |
| relatedIssueId | Yes | Target issue ID | |
| type | Yes | Relationship type (e.g., "blocks", "related", "duplicate") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a relationship, implying a write/mutation operation, but doesn't disclose critical details such as required permissions, whether the relationship is bidirectional, error handling, or any rate limits. This leaves significant gaps for an agent to understand how to use it safely and effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that efficiently conveys the core purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of creating relationships between issues (a mutation operation) and the absence of both annotations and an output schema, the description is insufficient. It lacks information on behavioral traits, error cases, return values, and how it fits with sibling tools, making it incomplete for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all three parameters (issueId, relatedIssueId, type) with their roles and types. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a relationship') and resource ('between issues in Linear'), making the purpose understandable. However, it doesn't differentiate this from sibling tools like 'linear_get_issue_relations' or specify what kind of relationship is being created beyond the generic term.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention when to use this versus 'linear_get_issue_relations' (which might retrieve existing relationships) or other issue-modification tools, nor does it specify prerequisites like needing issue IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_search_issuesC
Search issues in Linear with flexible filtering
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchived | No | Include archived issues | |
| limit | No | Maximum number of issues to return (default: 10) | |
| query | No | Text to search in title/description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'flexible filtering' but doesn't explain what that entails—whether it supports complex queries, pagination, sorting, or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose. There's no wasted verbiage or redundancy. It's appropriately sized and front-loaded, making it easy to grasp immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with no annotations and no output schema, the description is insufficient. It doesn't explain return values, error conditions, or the scope of 'flexible filtering'. For a tool that likely returns structured data, more context is needed to help an agent use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional information about parameters beyond what's in the schema (e.g., it doesn't clarify 'flexible filtering' in relation to the 'query' parameter). This meets the baseline for high schema coverage but doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('issues in Linear'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'linear_get_team_issues' or 'linear_get_project_issues', which appear to be more specific search variants. The term 'flexible filtering' is somewhat vague but still conveys the core functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'linear_get_team_issues' or 'linear_get_project_issues'. It doesn't mention prerequisites, limitations, or typical use cases. The phrase 'flexible filtering' implies broad applicability but offers no concrete usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_update_issueC
Update an existing Linear issue
| Name | Required | Description | Default |
|---|---|---|---|
| assigneeId | No | User ID to assign the issue to | |
| description | No | New issue description (markdown supported) | |
| dueDate | No | New due date | |
| issueId | Yes | Issue ID to update | |
| priority | No | New priority level (0-4), where 0=no priority, 1=urgent, 4=low | |
| stateId | No | New state ID | |
| teamId | No | New team ID | |
| title | No | New issue title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update an existing Linear issue' implies a mutation operation but doesn't specify required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields (partial vs. full updates). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like permissions, side effects, or response format. While the schema covers parameters well, the overall context for safe and effective use is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing clear documentation for all 8 parameters. The description adds no parameter-specific information beyond what's in the schema, so it meets the baseline of 3. It doesn't compensate for any gaps since there are none in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing Linear issue'), making the purpose immediately understandable. It distinguishes from siblings like linear_create_issue (creation vs. update) and linear_update_label (different resource type). However, it doesn't specify what aspects can be updated, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing issue ID), contrast with linear_create_issue for new issues, or specify scenarios where updates are appropriate versus other operations like adding comments or attachments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linear_update_labelC
Update an existing label in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| archived | No | Whether to archive the label | |
| color | No | The new color for the label in hex format (e.g. "#FF0000") | |
| description | No | The new description for the label | |
| labelId | Yes | The ID of the label to update | |
| name | No | The new name for the label | |
| parentId | No | The ID of a new parent label |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action ('Update an existing label'). It doesn't disclose behavioral traits like required permissions, whether updates are reversible, rate limits, error conditions, or what happens to unspecified fields (partial vs. full updates). For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't cover behavioral aspects (permissions, side effects), usage context, or return values. Given the complexity of updating a label with multiple fields and sibling tools available, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no parameter-specific information beyond what's in the schema (e.g., it doesn't explain relationships between parameters like parentId hierarchy or color format validation). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('an existing label in Linear'), making the purpose unambiguous. It distinguishes from sibling tools like 'linear_create_label' (create vs. update) and 'linear_get_labels' (read vs. update), though it doesn't explicitly mention these distinctions in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'linear_create_label' for new labels or 'linear_get_labels' for viewing labels. It also doesn't mention prerequisites (e.g., needing labelId) or contextual constraints, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
19 tool updates
v1.0.0- First observed
linear_add_attachment - First observed
linear_add_comment - First observed
linear_create_issue - First observed
linear_create_label - First observed
linear_get_attachments - First observed
linear_get_issue_relations - First observed
linear_get_labels - First observed
linear_get_project - First observed
linear_get_project_issues - First observed
linear_get_projects - First observed
linear_get_team - First observed
linear_get_team_issues - First observed
linear_get_teams - First observed
linear_get_user_issues - First observed
linear_get_viewer - First observed
linear_link_issues - First observed
linear_search_issues - First observed
linear_update_issue - First observed
linear_update_label
TDQS
Scored across 19 tools
Every tool has a clearly distinct purpose targeting specific resources and actions in Linear's domain. For example, linear_get_team_issues retrieves issues for a team, while linear_get_user_issues gets issues assigned to a user, and linear_search_issues allows flexible filtering across all issues. No tools appear to overlap or cause confusion.
All tools follow a consistent 'linear_verb_noun' pattern with snake_case throughout. The verbs are clear and appropriate (e.g., get, create, update, add, link, search), and the nouns specify the target resource (e.g., issue, label, project, team). This predictability makes the tool set easy to navigate.
With 19 tools, this server is well-scoped for managing Linear's core entities like issues, projects, teams, labels, and attachments. Each tool earns its place by covering essential CRUD operations and queries without redundancy, fitting the typical range of 3-15 tools for a comprehensive API integration.
The tool surface provides complete coverage for Linear's domain, including CRUD for issues and labels, attachment and comment management, relationship linking, and queries for projects, teams, and users. There are no obvious gaps; agents can perform full lifecycle operations without dead ends.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.1,052 npm346MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that integrates with Linear, enabling AI assistants to create, update, search, and comment on issues for project management and issue tracking.523 PyPI6Apache 2.0
- FlicenseBqualityDmaintenanceA server that enables AI assistants to interact with Linear's project management tools through the Model Context Protocol, supporting features like searching, creating, and updating issues, adding comments, and retrieving user profiles and team information.91-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server implementation that enables AI assistants to interact with Linear project management systems, allowing them to create, retrieve, and modify data related to issues, projects, teams, and users.16 npm3MIT