linear
Server Details
MCP server for Linear project management and issue tracking
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.9/5 across 35 of 35 tools scored. Lowest: 3.1/5.
Each tool targets a distinct entity or action. Even closely related tools like create_attachment and create_attachment_from_upload are clearly differentiated by their role in the upload workflow, and all descriptions provide unambiguous guidance.
All tools follow a consistent verb_noun pattern in snake_case. Verbs are uniformly used: create, delete, get, list, save, prepare, extract, search. The save prefix elegantly covers both create and update operations.
At 35 tools, the set is comprehensive but appropriate for a full-featured project management API covering issues, projects, milestones, documents, comments, attachments, cycles, diffs, users, and labels. Every tool serves a distinct purpose, though the count is slightly high.
The tool set lacks delete operations for several key entities including issues, projects, milestones, documents, and labels. While creation, reading, and updating are well-covered, the absence of deletion capabilities for these objects creates significant gaps for workflows that require cleanup.
Available Tools
47 toolscreate_attachmentCreate attachment (deprecated)AInspect
Deprecated fallback for tiny files only. Accepts base64 file content and uploads it through the MCP worker, which can consume large amounts of agent context. Prefer prepare_attachment_upload plus direct PUT plus create_attachment_from_upload.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | Issue ID or identifier (e.g., LIN-123) | |
| title | No | Optional title for the attachment | |
| filename | Yes | Filename for the upload (e.g., 'screenshot.png') | |
| subtitle | No | Optional subtitle for the attachment | |
| contentType | Yes | MIME type for the upload (e.g., 'image/png', 'application/pdf') | |
| base64Content | Yes | Deprecated base64-encoded file content to upload |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, destructiveHint=false), the description adds that the upload consumes large amounts of agent context, which is a key behavioral trait. No contradictions with annotations.
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?
Two sentences: first states purpose and deprecation, second gives an alternative. Front-loaded with critical deprecation warning and efficient use of words.
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?
The description covers purpose, usage constraints, behavioral impact (context consumption), and alternative tools. Lack of output schema is acceptable; the description is complete for a deprecated fallback tool.
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 coverage is 100%, so the schema already describes each parameter. The description adds context about tiny files and context consumption but does not provide additional parameter-level semantics beyond 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 it is a deprecated fallback for tiny files only, accepting base64 content, and explicitly names the preferred alternative tool (prepare_attachment_upload plus direct PUT plus create_attachment_from_upload), distinguishing it from 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 explicitly states when to use this tool (deprecated fallback for tiny files) and when not to (prefer the alternative), providing clear guidance and naming the alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_attachment_from_uploadCreate attachment from uploadAInspect
Link an already-uploaded Linear assetUrl to an existing issue as an attachment.
Use this only after:
prepare_attachment_upload returned an assetUrl and uploadRequest.
The client successfully PUT raw file bytes to uploadRequest.url.
This tool does not upload file content. It only creates the Linear attachment row. If the direct upload failed or the signed URL expired, rerun prepare_attachment_upload and upload again.
| Name | Required | Description | Default |
|---|---|---|---|
| issue | Yes | Issue ID or identifier (e.g., LIN-123) | |
| title | No | Attachment title. Defaults to filename or asset URL | |
| assetUrl | Yes | Linear upload assetUrl returned by prepare_attachment_upload | |
| subtitle | No | Optional attachment subtitle |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false (write operation), and the description confirms it creates an attachment row. It clarifies the tool's role in the workflow, notes that it does not handle file uploads, and warns about signed URL expiration. This adds significant behavioral context beyond what annotations provide.
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 concise with three short paragraphs. The first sentence immediately states the purpose, followed by a clear precondition checklist and a warning. No unnecessary words or repetition.
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 4 parameters, no nested objects, and no output schema, the description fully covers the tool's role in a multi-step workflow. It explains prerequisites, limitations, and error recovery, making it self-contained for 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?
Schema coverage is 100%, so baseline is 3, but the description adds critical workflow context: 'assetUrl' must come from prepare_attachment_upload, 'issue' can be ID or identifier (LIN-123), and 'title' defaults to filename or URL. This clarifies the provenance and format of parameters beyond schema descriptions.
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 'Link an already-uploaded Linear assetUrl to an existing issue as an attachment.' It uses a specific verb ('link'), names the resource ('assetUrl' and 'issue'), and differentiates from sibling tools like prepare_attachment_upload and create_attachment by emphasizing the prerequisite steps.
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 explicitly instructs to use only after prepare_attachment_upload returns an assetUrl and the client uploads the file. It also states what the tool does not do ('This tool does not upload file content') and provides guidance on failure cases and alternatives ('rerun prepare_attachment_upload and upload again').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issue_labelCreate issue labelBInspect
Create a new Linear issue label
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name | |
| color | No | Hex color code | |
| parent | No | Parent label group name | |
| teamId | No | Team UUID (omit for workspace label) | |
| isGroup | No | Is label group (not directly applicable) | |
| description | No | Label description |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (no readOnly, no destructive, no idempotent). Description only repeats 'create', not explaining side effects like duplicate label behavior or required permissions.
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?
Single sentence is concise and front-loaded, but could benefit from more structure given 6 parameters.
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 6 parameters, no output schema, and sparse annotations, the description is too minimal. It doesn't explain label groups, team vs workspace, or 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 coverage is 100% with descriptions for all 6 parameters. The tool description adds no extra parameter information, so baseline score applies.
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?
Description clearly states it creates a new Linear issue label, distinguishing it from listing or other create tools.
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 on when to use this tool, when not to, or alternatives like listing existing labels before creating. Lacks prerequisites (e.g., permissions, team context).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_attachmentDelete attachmentADestructiveInspect
Delete an attachment by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Attachment ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. The description adds no extra behavioral context beyond confirming the delete action, such as permanence or security considerations. It does not contradict annotations.
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?
A single, efficient sentence with no fluff. Every word is necessary.
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 delete operation with one required parameter and no output schema, the description is complete. The destructiveHint annotation covers safety concerns.
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%; the parameter 'id' is described as 'Attachment ID' in the schema. The description merely says 'by ID', adding no additional meaning or constraints beyond what the schema provides.
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 'Delete' and the resource 'attachment', making the tool's purpose unambiguous. It distinguishes itself from sibling tools like create_attachment and get_attachment.
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 explicit guidance on when to use this tool versus alternatives (e.g., delete_comment). The agent must infer from context. Implied usage is clear but no exclusions or when-not-to-use provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentDelete commentADestructiveInspect
Delete a Linear comment. Inline description comments (those with non-null quotedText) anchor a mark in the editor, so their root cannot be deleted — delete the replies individually or resolve the thread instead.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that root of inline description comments cannot be deleted, adding context beyond annotations. No contradiction with destructiveHint=true.
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?
Two sentences: first declares action, second provides critical caveat. No 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 delete operation with one parameter, description fully covers behavioral nuance. No output schema 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?
Single parameter 'id' is well-described in schema. Description adds no extra meaning, but schema coverage is 100%, so baseline 3.
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?
Clearly states 'Delete a Linear comment' with specific verb and resource. Distinguishes from siblings like save_comment and list_comments.
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?
Explicitly tells when not to use (comments with non-null quotedText) and provides alternatives: delete replies individually or resolve the thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_status_updateDelete status updateADestructiveInspect
Delete (archive) a project or initiative status update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Status update ID | |
| type | Yes | Type of status update |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true, indicating destructive behavior. The description adds 'archive' in parentheses, suggesting the operation may not be permanent deletion but archiving, which provides behavioral context beyond the annotation.
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 sentence that is front-loaded with the action and resource, conveying essential information without unnecessary words.
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 delete operation, the description covers the core purpose and parameter constraints. No output schema is needed for a delete tool, though the description does not mention what happens after deletion (e.g., success response). Annotations cover destructive nature, making it fairly complete.
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 coverage is 100%, with descriptions for both parameters ('id' and 'type'). The description does not add any additional meaning or format details beyond what the schema provides, so baseline score of 3 is appropriate.
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 'Delete (archive) a project or initiative status update.' It specifies the action (delete/archive) and the resource (status update with types project and initiative), distinguishing it from siblings like save_status_update and get_status_updates.
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 explicit when-to-use or when-not-to-use guidance. The description implies usage for deleting status updates but does not mention alternatives or prerequisites. Siblings like save_status_update and get_status_updates provide context, but the description itself lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_imagesExtract imagesARead-onlyIdempotentInspect
Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents. Pass the markdown content (e.g., issue description) and receive the images as viewable data.
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | Markdown content containing image references (e.g., issue description, comment body) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context by specifying the source (markdown content from Linear) and the output nature ('images as viewable data'), which is helpful beyond the annotations.
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 two sentences with no wasted words. It front-loads the core purpose ('Extract and fetch images from markdown content') and then provides context. Very 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?
The tool has one required parameter and no output schema. The description vaguely mentions 'receive the images as viewable data' without specifying the output format (e.g., URLs, base64). For a list operation with a return value, more detail on the result format 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 coverage is 100% for the single parameter 'markdown', and the description in the schema is already present. The tool description does not add additional parameter details beyond what the schema provides, meeting the baseline of 3.
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 tool extracts and fetches images from markdown content, listing specific use cases (screenshots, diagrams). It is specific and distinct from sibling tools like get_attachment or create_attachment.
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 clear usage context: 'Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents.' It does not explicitly state when not to use or list alternatives, but the context is sufficient for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_skillGet agent skillARead-onlyIdempotentInspect
Retrieve a Linear Agent skill by ID, including its full markdown instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Agent skill ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds that the skill includes 'full markdown instructions', providing useful context about the return content. No contradictions.
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?
A single sentence that conveys the tool's purpose and key detail about the return value. No wasted words.
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 retrieval tool with one required parameter and full annotation coverage, the description is sufficiently complete. It mentions the return includes full markdown instructions, which compensates for the lack of an output 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 coverage is 100% with a single parameter 'id' described as 'Agent skill ID'. The description reinforces the need for an ID but adds no new semantic meaning beyond 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 verb 'retrieve' and the resource 'Linear Agent skill', and specifies it includes 'full markdown instructions'. It distinguishes itself from sibling 'list_agent_skills' by focusing on retrieval by ID.
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 makes it clear that this tool is for retrieving a specific agent skill by ID. However, it does not explicitly state when not to use it or compare it to alternatives like 'list_agent_skills', though the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachmentGet attachmentARead-onlyIdempotentInspect
Retrieve an attachment's content by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Attachment ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds little beyond stating it retrieves content by ID. It is consistent but not enriching beyond what structured fields provide.
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 sentence that is efficiently front-loaded with the verb and resource, containing no wasted words.
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?
With one required parameter, complete annotations, and no output schema, the description is adequate for a simple retrieval tool. It could mention output format but is sufficiently complete.
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 coverage is 100% with the 'id' parameter described as 'Attachment ID'. The description restates 'by ID' without adding syntax or format details, meeting the baseline for high 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 uses a specific verb 'Retrieve' and identifies the resource 'attachment's content' by ID, clearly distinguishing it from sibling tools like create_attachment (creates) and delete_attachment (deletes).
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 when you need attachment content by ID, and the read-only nature is clear from annotations. However, it does not explicitly state when not to use it or mention alternatives like list tools for metadata, but context is sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diffGet diffARead-onlyIdempotentInspect
Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
| Name | Required | Description | Default |
|---|---|---|---|
| urlOrId | Yes | Linear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context by stating 'Exact lookup', confirming it is a single-record fetch operation. No contradictions.
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?
Two concise sentences with the core purpose first and usage guidance second. No extraneous words or 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?
The tool is a simple lookup with one parameter. The description, combined with annotations and schema, provides sufficient context for an agent. The lack of output schema is acceptable for such a straightforward lookup.
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 coverage is 100% and includes a description of the urlOrId parameter. The tool description repeats the same list of acceptable formats, adding no new semantic information beyond 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 'Exact lookup for a Linear diff', using a specific verb and resource. It distinguishes from sibling tools like list_diffs (list multiple) and get_diff_threads (threads), which have different purposes.
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 explicit input types: 'Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.' This tells the agent when to use the tool. However, it does not explicitly mention when not to use it or alternative tools for listing diffs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diff_threadsGet diff threadsARead-onlyIdempotentInspect
Exact lookup for diff threads. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
| Name | Required | Description | Default |
|---|---|---|---|
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| urlOrId | Yes | Linear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL | |
| resolved | No | Filter returned threads by resolved state | |
| threadId | No | Optional top-level thread/comment ID to return |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds 'exact lookup' behavior but doesn't elaborate on return format or pagination. With annotations present, this is adequate but not enhanced.
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?
Two short sentences, front-loaded with core purpose. No redundant or extraneous text.
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?
No output schema and no mention of return format or whether single thread or list is returned. Given the tool name 'get_diff_threads' (plural), it's unclear. Could be more complete.
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 parameters are well-documented structurally. The description adds no extra semantic value beyond the schema, earning baseline score of 3.
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?
Description clearly states 'exact lookup for diff threads', specifying verb and resource. It distinguishes from siblings like get_diff (returns diff) and list_comments (lists threads) by focusing on exact lookup and listing supported identifier types.
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?
Description lists various identifier formats (review URLs, GitHub PR URLs, etc.) that the tool accepts, but does not explicitly contrast with alternatives like list_comments or get_diff. Still provides clear context on when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentGet documentARead-onlyIdempotentInspect
Retrieve a Linear document by ID or slug
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Document ID or slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the useful behavior that the document can be retrieved by either ID or slug, which is not captured in annotations. No contradictions. However, it does not describe what happens if the document is not found or the 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 concise sentence with no wasted words. It is front-loaded and immediately clear.
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 tool with one parameter and rich annotations, the description is mostly complete. It covers the what and how. Missing details like error handling or return format, but these are minor given the tool's simplicity.
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% (the parameter 'id' is described as 'Document ID or slug' in the schema). The tool description ('by ID or slug') adds no new meaning beyond what the schema already provides, so baseline 3 is appropriate.
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 tool retrieves a Linear document by ID or slug. It uses a specific verb ('Retrieve') and resource ('document'). While it does not explicitly distinguish itself from sibling tools like 'list_documents', the context implies it's for fetching a single document, but lacks explicit 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. There is no mention of conditions, prerequisites, or when not to use it. The user must infer from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueGet issueARead-onlyIdempotentInspect
Retrieve detailed information about an issue by ID, including attachments and git branch name
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Issue ID or identifier (e.g., LIN-123) | |
| includeReleases | No | Include associated releases | |
| includeRelations | No | Include blocking/related/duplicate relations | |
| includeCustomerNeeds | No | Include associated customer needs |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it's a safe read. The description adds context that the response includes attachments and git branch name, which is valuable information beyond what annotations provide. No contradictions found.
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 concise sentence that front-loads the main purpose. Every word contributes meaning, and there is no redundant or unnecessary text.
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 that there is no output schema, the description provides a partial hint about return values ('including attachments and git branch name'). The annotations cover behavioral safety. The description could mention error conditions or when the issue doesn't exist, but for a standard get-by-id tool, it is largely complete.
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 baseline is 3. The description adds meaning by highlighting that the tool retrieves 'detailed information' and specifically 'attachments and git branch name,' indicating the response contents. This enhances understanding beyond the parameter descriptions 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?
Purpose is explicitly stated: 'Retrieve detailed information about an issue by ID, including attachments and git branch name.' It clearly identifies the verb (retrieve), resource (issue by ID), and scope (including attachments and git branch). Among siblings, it distinguishes from list_issues (list vs single), get_attachment (specific attachment), and save_issue (update).
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 a single issue by ID, but it does not explicitly state when to use this tool versus alternatives like list_issues (for multiple issues) or get_document (for documents). No exclusions or prerequisites are mentioned, though the requirement of 'id' is clear from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_statusGet issue statusARead-onlyIdempotentInspect
Retrieve detailed information about an issue status in Linear by name or ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Status ID | |
| name | Yes | Status name | |
| team | Yes | Team name or ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the detail that status can be retrieved 'by name or ID', providing useful context beyond what annotations provide. However, it does not disclose any additional behavioral traits such as error cases or data freshness.
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 front-loads the purpose and effectively communicates the tool's function.
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 low complexity (3 required params, simple read operation) and the presence of annotations indicating read-only and idempotent behavior, the description is adequate. It lacks details about the return format or whether the status details include all fields, but this is acceptable for a get-by-ID tool without an output schema. The sibling tools list shows related tools, but no further context 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 three parameters (id, name, team). The description mentions retrieval 'by name or ID' but does not explain how name and team interact (e.g., whether name is unique per team). This adds marginal value beyond 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 uses a specific verb 'retrieve' and resource 'issue status', and specifies the method 'by name or ID'. It clearly distinguishes from sibling tools like 'list_issue_statuses' (which lists all statuses) and 'get_issue' (which gets an issue details).
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 explicit guidance on when to use this tool versus alternatives. The description implies it is for getting a single status's details, but does not mention when not to use it or provide alternative tool names. The context signals show siblings like 'list_issue_statuses' which could be used to list all statuses, but no direct comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_milestoneGet milestoneARead-onlyIdempotentInspect
Retrieve details of a specific milestone by ID or name
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Milestone name or ID | |
| project | Yes | Project name, ID, or slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to repeat those. The description adds that retrieval is by ID or name, which is consistent. However, it does not disclose any additional behavioral traits such as error handling or data freshness.
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 sentence that immediately conveys the tool's purpose. It is front-loaded with the verb and resource, containing no unnecessary words. Every part is essential.
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, full schema coverage, and comprehensive annotations, the description is mostly sufficient. It could optionally hint at the fields returned (since there is no output schema), but the current level is adequate for an agent to select and invoke the tool 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 coverage is 100%, so the parameters are already well-described. The description mentions 'by ID or name', aligning with the query param, but adds no new semantic details beyond the schema. A baseline score of 3 is appropriate.
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 uses a specific verb 'Retrieve' and clearly identifies the resource as 'details of a specific milestone by ID or name'. It effectively distinguishes from sibling tools like list_milestones (which lists all milestones) and save_milestone (which creates/updates), making the tool's purpose 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?
The description implies usage when you need a single milestone's details, but it does not explicitly state when to use this tool versus alternatives (e.g., using list_milestones to find an ID first). No exclusions or prerequisites are mentioned, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectGet projectARead-onlyIdempotentInspect
Retrieve details of a specific project in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Project name, ID, or slug | |
| includeMembers | No | Include project members | |
| includeResources | No | Include resources (documents, links, attachments) | |
| includeMilestones | No | Include milestones |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add behavioral context beyond what annotations already provide (readOnlyHint, idempotentHint, destructiveHint). While it does not contradict the annotations, it also fails to disclose additional traits like response behavior or side effects, which the annotations already cover adequately.
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, front-loaded sentence (6 words) that conveys the core purpose without superfluous information. Every word earns its place, making it highly concise and effective.
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 that there is no output schema, the description should ideally clarify what 'details' are returned (e.g., fields, structure). It also does not address the context of use relative to sibling tools. It is minimally adequate but not fully complete.
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 documentation covers all parameters (100% coverage), so the description does not need to add parameter detail. It adds no extra meaning beyond the schema, earning a baseline score of 3.
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 ('Retrieve details') and the resource ('a specific project in Linear'). It effectively distinguishes the tool from siblings like 'list_projects' (which lists all) and 'get_issue' (different resource), meeting the criteria for a specific verb+resource pair.
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 such as 'list_projects' or 'get_issue'. There is no mention of prerequisites, context, or exclusions, so the agent lacks direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_releaseGet releaseARead-onlyIdempotentInspect
Retrieve details of a release by ID or slug.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Release ID or slug | |
| includeReleaseNotes | No | Include associated release notes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds no new behavioral context; no contradiction.
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?
Single sentence, front-loaded with verb and resource, no unnecessary words.
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 retrieval tool with two parameters and rich annotations, description is adequate; could mention return value but not strictly required given common pattern.
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 coverage is 100% and already describes both parameters sufficiently. Description adds no extra parameter meaning beyond what schema provides.
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?
Description clearly states 'Retrieve details of a release by ID or slug.' Verb (retrieve) and resource (release) are specific and distinct from siblings like list_releases or get_release_note.
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?
Implied usage for fetching a single release by identifier; no explicit when-not or alternatives mentioned, but standard pattern for get-by-id tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_release_noteGet release notesBRead-onlyIdempotentInspect
Retrieve release notes by ID or slug, including markdown content.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Release notes ID or slug | |
| includeReleases | No | Include associated releases |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare safe, read-only, idempotent behavior. Description adds detail about markdown content, but does not disclose any additional behavioral traits beyond annotations.
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?
Single sentence, 10 words, front-loaded with the action and resource. No redundant information.
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 low complexity, rich annotations, and high schema coverage, the description is mostly complete. Missing guidance on usage context and the optional parameter, but adequate for a simple retrieval tool.
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 coverage is 100%, so description does not need to compensate. Description mentions 'by ID or slug' which matches the 'id' parameter description. The 'includeReleases' parameter is not mentioned, but schema already documents it adequately.
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?
Clear verb (retrieve) and resource (release notes) with specific method (by ID or slug) and content type (markdown). However, no explicit differentiation from sibling tools like list_release_notes or save_release_note.
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 explicit guidance on when to use this tool versus alternatives. The description implies usage when you have an ID or slug, but does not advise against using it for listing or modification tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_status_updatesGet status updatesARead-onlyIdempotentInspect
List or get project/initiative status updates. Pass id to get a specific update, or filter to list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Status update ID - if provided, returns this specific update | |
| type | Yes | Type of status update | |
| user | No | User ID, name, email, or "me" | |
| limit | No | Max results (default 50, max 250) | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| project | No | Project name, ID, or slug | |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| initiative | No | Initiative name or ID | |
| includeArchived | No | Include archived items |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds no further behavioral details beyond the read nature, but is consistent.
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?
Single sentence, directly conveys the core functionality without extraneous words.
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 11 parameters and no output schema, the description is adequate but lacks details on interaction of parameters (e.g., id + filters), pagination behavior, or output format.
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 provides 100% parameter coverage with descriptions. The description adds a usage pattern (id vs filter) but no new param-specific semantics beyond 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 tool can list or get specific status updates by ID, with filtering. It distinguishes from sibling tools like save_status_update and delete_status_update.
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?
Provides clear guidance on using `id` for a single update or filters for listing. Does not explicitly exclude use cases or mention alternatives, but sufficient for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_teamGet teamARead-onlyIdempotentInspect
Retrieve details of a specific Linear team
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Team UUID, key, or name |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known to be read-only. The description adds minimal behavioral context beyond 'retrieve details', missing potential error conditions or auth requirements.
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?
One sentence of 8 words, front-loading the action and resource. No wasted words.
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-only tool with one well-documented parameter, the description is adequate. It could mention the return format but is complete enough without an output 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 coverage is 100% with a clear description for the only parameter. The tool description does not add any extra meaning or usage hints beyond 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 uses the specific verb 'Retrieve' and resource 'details of a specific Linear team', clearly distinguishing it from list_teams and other 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 clearly implies retrieving a single team, contrasting with list_teams for listing all teams, but does not explicitly mention when not to use it or state alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userGet userARead-onlyIdempotentInspect
Retrieve details of a specific Linear user
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | User ID, name, email, or "me" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, which fully cover the behavioral profile. The description adds no extra behavioral context beyond what annotations provide, but is consistent with them.
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 sentence that conveys the purpose without any extraneous words. It is appropriately concise 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 tool's simplicity (one fully-documented parameter, clear annotations, no output schema), the description is complete enough for an agent to understand its function. A slight improvement could be mentioning that it returns user details, but the schema already covers input.
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 single parameter 'query' is fully described in the schema with its purpose and accepted values (User ID, name, email, or 'me'). The description does not add additional meaning beyond what the schema provides, so baseline 3 applies.
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 'Retrieve' and the resource 'details of a specific Linear user'. It effectively distinguishes this tool from sibling tools like 'list_users' (which lists multiple users) and other get_ tools for different resources.
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 'list_users' or 'search_documentation'. No context is given about prerequisites, exclusions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agent_skillsList agent skillsBRead-onlyIdempotentInspect
List Linear Agent skills available to the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 250) | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no extra behavioral context (e.g., pagination, caching, rate limits) beyond stating the resource. Annotation coverage is sufficient for a simple read-only list, so a baseline 3 is appropriate.
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 sentence with no fluff. Every word earns its place, achieving maximum conciseness.
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 list tool with clear annotations and self-explanatory parameters, the description is mostly complete. However, no output schema is provided, and the description omits return format details, though the tool name and context signals largely compensate.
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 inline descriptions for all three parameters (limit, cursor, orderBy). The tool description does not add any additional parameter meaning beyond the schema, so a baseline 3 is justified.
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 ('List') and the resource ('Linear Agent skills') and specifies the scope ('available to the authenticated user'). It distinguishes from sibling list tools by naming a specific entity, but could be slightly more precise.
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 alternative list tools or how it relates to other skills-related operations. No when-not-to-use or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsList commentsARead-onlyIdempotentInspect
List comments on a Linear issue, project, initiative, document, or project milestone. Provide exactly one of issueId, projectId, initiativeId, documentId, or milestoneId. For issues, projects, and initiatives this returns both top-level discussion threads and inline description comments. Inline (anchored) comments carry a non-null quotedText set to the snippet of description text they reference.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 250) | |
| cursor | No | Next page cursor | |
| issueId | No | Issue ID or identifier (e.g., LIN-123) (provide exactly one parent) | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| projectId | No | Project name, ID, or slug (provide exactly one parent) | |
| documentId | No | Document ID or slug (provide exactly one parent) | |
| milestoneId | No | Milestone UUID (provide exactly one parent). Resolve milestone names via `list_milestones` first. | |
| initiativeId | No | Initiative name or ID (provide exactly one parent) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. The description adds behavioral context: it returns both top-level and inline comments, and how to identify inline comments (non-null quotedText). No contradictions.
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?
Two concise sentences with no filler. Front-loaded with purpose, then essential usage details. Every sentence adds value.
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?
With 8 parameters and no output schema, the description covers all key behavioral aspects: parent exclusivity, return content types, and inline comment indicator. Could mention pagination (cursor/limit) but schema covers that. Sufficient for agent decision-making.
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 coverage is 100%, so parameters are documented. The description adds semantic value by explaining mutual exclusivity of parent IDs and the special behavior for issues/projects/initiatives. It also notes the orderBy default and limit max.
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 tool lists comments on Linear entities (issue, project, initiative, document, milestone), distinguishing it from sibling tools like save_comment or delete_comment. It specifies the scope for issues/projects/initiatives (both top-level and inline) and mentions inline comments have non-null quotedText.
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?
Explicitly instructs to provide exactly one parent ID from the options, with specific formatting hints (e.g., issueId as 'LIN-123', milestone UUID resolved via list_milestones). This guides the agent on correct invocation and avoids confusion with multiple parents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cyclesList cyclesBRead-onlyIdempotentInspect
Retrieve cycles for a specific Linear team
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter: current, previous, next, or all | |
| teamId | Yes | Team ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read. The description adds minimal behavioral context beyond that (e.g., no mention of pagination, error handling, or that it returns a list of cycles). Given the annotation coverage, the description is adequate but not enriched.
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, front-loaded sentence that efficiently conveys the core purpose. It is not verbose, but could be slightly improved by adding a note about optional filtering. Overall, it is 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 tool's simplicity (2 parameters, no output schema, no nested objects), the description is minimally adequate. It does not mention return type (list of cycles) or usage context (e.g., that teamId is required). Without an output schema, the description should hint at the structure, but it doesn't. Hence, it is complete only at a basic level.
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%, meaning the schema already describes both parameters (teamId and type). The description does not add any extra meaning (e.g., what a cycle is, the format of teamId, or the effect of the type filter). Thus, it adds no value beyond the schema, earning the baseline score of 3.
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 ('Retrieve'), the resource ('cycles'), and the scope ('for a specific Linear team'). It distinguishes this tool from siblings as no other sibling tool targets cycles, and the specificity of requiring a team ID is evident.
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 (e.g., other list tools like list_issues or list_milestones). There is no mention of prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diffsList diffsARead-onlyIdempotentInspect
List Linear diff pull requests visible to the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filter returned diffs by repository name | |
| limit | No | Max results (default 50, max 250) | |
| owner | No | Filter returned diffs by repository owner | |
| query | No | Broad search by title, branch, PR number, or bare slug | |
| cursor | No | Next page cursor | |
| status | No | Filter returned diffs by pull request status | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds minimal context (authentication scope), but does not reveal additional behavioral traits beyond what annotations provide.
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?
Single sentence of 12 words, no redundancy or fluff. Efficiently communicates the core function.
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?
Despite lacking output schema and not describing return format, the tool is straightforward (list operation) with well-documented parameters. Some minor gaps but mostly complete given the 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?
All 7 parameters are fully described in the input schema (100% coverage). The tool description itself adds no additional parameter semantics, so baseline score of 3 applies.
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?
Clearly states verb 'List', resource 'Linear diff pull requests', and scope 'visible to the authenticated user'. Unambiguous and distinct from sibling tools.
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 on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only states what it does, not when or why to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsList documentsBRead-onlyIdempotentInspect
List documents in the user's Linear workspace
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 250) | |
| query | No | Search query | |
| cursor | No | Next page cursor | |
| teamId | No | Filter by team ID | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| creatorId | No | Filter by creator ID | |
| projectId | No | Filter by project ID | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| initiativeId | No | Filter by initiative ID | |
| includeArchived | No | Include archived items |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, making the tool's safety profile clear. The description adds no extra behavioral insight, such as pagination behavior, rate limits, or authentication requirements. Since annotations cover the core traits, the score is adequate but unremarkable.
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, front-loaded sentence with no extraneous words. It is concise and immediately conveys the core action, though it could include a brief mention of filtering capabilities without significant bloat.
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 (11 parameters, no output schema, many siblings), the description is too minimal. It omits crucial context such as pagination (cursor), available filters, and return type (likely a list of document objects). This incompleteness may hamper correct invocation 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 for all 11 parameters, each with clear definitions. The tool description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation but offering no extra 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 verb 'list' and resource 'documents' within the Linear workspace, making the purpose unambiguous. However, it does not differentiate from sibling tools like 'list_issues' or 'search_documentation', which could lead to confusion if the agent needs to choose between listing similar resources.
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 'search_documentation' for full-text search or 'get_document' for a single document. It also lacks prerequisites, exclusions, or context about typical use cases, forcing the agent to rely solely on schema parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issue_labelsList issue labelsARead-onlyIdempotentInspect
List available issue labels in a Linear workspace or team
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by name | |
| team | No | Team name or ID | |
| limit | No | Max results (default 50, max 250) | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds scope context ('workspace or team') but does not disclose pagination behavior, default scope, or response structure beyond the 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?
A single, front-loaded sentence with no wasted words. The verb and resource are immediately clear.
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 5 optional parameters and no output schema, the description leaves the agent to infer return format and filtering behavior from parameter descriptions. It is adequate but lacks detail on response fields or pagination flow.
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 parameters are already well-documented in the schema. The description does not add any parameter-specific meaning beyond the general scope mention.
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 'List' and the resource 'available issue labels' with scope 'in a Linear workspace or team', distinguishing it from siblings like 'list_project_labels' and 'create_issue_label'.
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 on when to use this tool versus alternatives such as 'list_project_labels' or other list tools; no when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issuesList issuesARead-onlyIdempotentInspect
List issues in the user's Linear workspace. For my issues, use "me" as the assignee. Use "null" for no assignee.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name or ID | |
| cycle | No | Cycle name, number, or ID | |
| label | No | Label name or ID | |
| limit | No | Max results (default 50, max 250) | |
| query | No | Search issue title or description | |
| state | No | State type, name, or ID | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| project | No | Project name, ID, or slug | |
| release | No | Release ID or slug | |
| assignee | No | User ID, name, email, or "me" | |
| delegate | No | Agent name or ID. When the user asks to delegate to "Linear" or "the Linear agent", this refers to the "Linear" app user specifically | |
| parentId | No | Parent issue ID or identifier (e.g., LIN-123) | |
| priority | No | 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low | |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| includeArchived | No | Include archived items |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is known. The description adds no extra behavioral details (e.g., pagination, rate limits). It does not contradict annotations, so score is at baseline.
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?
Two sentences: one for core purpose, one for key parameter guidance. No fluff, front-loaded, every sentence earns its place. Ideal conciseness.
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?
With 17 parameters and no output schema, the description is minimal. It doesn't mention default limit, max, pagination (cursor), or common filter combinations. However, the schema details these, so the description is not incomplete in a harmful way, but it could add more operational 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?
Schema coverage is 100% with descriptions for all 17 parameters. The description adds meaning for the assignee parameter by explaining special values 'me' and 'null', which is valuable and beyond the schema's generic description. No other parameters gain extra context, but this single addition justifies a higher score.
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?
Description clearly states 'List issues in the user's Linear workspace', identifying the resource and action. It gives specific guidance on using 'me' and 'null' for the assignee parameter, adding value. However, it does not explicitly distinguish from sibling tools like get_issue, but that is implied by the plural 'list' vs singular 'get'.
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?
Description provides specific parameter usage ('For my issues, use "me" as the assignee. Use "null" for no assignee.') but no general guidance on when to use this tool versus alternatives (e.g., get_issue for a single issue, or search_documentation for documentation). Context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issue_statusesList issue statusesBRead-onlyIdempotentInspect
List available issue statuses in a Linear team
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | Team name or ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds no additional behavioral context beyond what annotations provide, which is adequate but not enhanced.
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 concise sentence that front-loads the key action and resource, with no unnecessary words. It is perfectly efficient for its content.
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?
Despite the simple structure and annotations, the tool has no output schema or description of return values. The agent is left unaware of what the response contains (e.g., list of status names, objects), which is a gap for a listing tool.
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% coverage with a single parameter 'team' described as 'Team name or ID'. The description does not add further meaning beyond the schema, meeting the baseline but not exceeding it.
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 'List' and the resource 'available issue statuses in a Linear team', making the tool's purpose unambiguous. It is distinct from siblings like 'get_issue_status' which retrieves a single status.
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 'get_issue_status' or other list tools. It lacks explicit context for choosing this tool over similar ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_milestonesList project milestonesARead-onlyIdempotentInspect
List all milestones in a Linear project
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project name, ID, or slug |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (readOnlyHint true, destructiveHint false) but adds no behavioral context beyond listing milestones. No mention of pagination, result format, or other traits.
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 concise sentence that effectively conveys the tool's purpose with no wasted words.
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 list tool with one required parameter, the description covers core purpose. However, it lacks details like result structure or pagination, which would enhance completeness.
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 coverage is 100% and describes the 'project' parameter. The description adds no additional meaning, only echoing the context already implied by 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 'List all milestones in a Linear project,' which specifies the action (list), resource (milestones), and context (project). It effectively distinguishes from sibling tools like get_milestone (single) and save_milestone (create/update).
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 get_milestone for a single milestone. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_labelsList project labelsARead-onlyIdempotentInspect
List available project labels in the Linear workspace
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by name | |
| limit | No | Max results (default 50, max 250) | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide read-only, idempotent, non-destructive hints. Description adds no further behavioral context (e.g., pagination behavior or rate limiting), but does not contradict annotations.
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?
Single sentence, no filler, perfectly front-loaded with purpose. 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 simple read-only list tool with full schema coverage and annotations, the description is adequate. Missing only minor elements like pagination hint, but overall complete.
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 coverage is 100% with descriptions for all 4 parameters. The description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.
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?
Description explicitly states 'List available project labels in the Linear workspace', using a specific verb and resource ('project labels') that clearly distinguishes it from sibling tools like list_issue_labels.
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 on when to use this tool versus alternatives (e.g., list_issue_labels). The description only states what it does without excluding any context or providing usage criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsBRead-onlyIdempotentInspect
List projects in the user's Linear workspace
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name or ID | |
| label | No | Label name or ID | |
| limit | No | Max results (default 50, max 50) | |
| query | No | Search project name | |
| state | No | State type, name, or ID | |
| cursor | No | Next page cursor | |
| member | No | User ID, name, email, or "me" | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| initiative | No | Initiative name or ID | |
| includeMembers | No | Include project members | |
| includeArchived | No | Include archived items | |
| includeMilestones | No | Include milestones |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. Description adds minimal behavioral context ('in the user's Linear workspace'), but no contradictions. The description does not elaborate on return format or pagination 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?
Single sentence, efficient and front-loaded. However, it is minimal and could include key filtering or sorting capabilities without becoming verbose.
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 14 parameters and no output schema, the description is adequate for a straightforward list operation but lacks hints about filtering, sorting, or pagination. The schema provides details, so the description does not need to repeat them, but it could summarize capabilities.
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 14 parameters. The description does not add any parameter-level meaning beyond what is in the schema. Baseline 3 is appropriate.
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?
Description clearly states 'List projects in the user's Linear workspace', specifying verb, resource, and scope. This distinguishes it from sibling list tools like list_issues or list_diffs.
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 on when to use this tool vs alternatives. With sibling tools like list_issues or list_documents, the description should indicate when listing projects is appropriate or what differentiates it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_release_notesList release notesARead-onlyIdempotentInspect
List release notes in the workspace, optionally filtered by pipeline or covered release.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 250) | |
| query | No | Search release notes title | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| release | No | Release ID or slug | |
| pipeline | No | Release pipeline ID, slug, or exact name | |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| includeContent | No | Include markdown release notes content | |
| includeArchived | No | Include archived items | |
| includeReleases | No | Include associated releases |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds that results can include content, archived items, and associated releases, exceeding annotation defaults.
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?
Single, concise sentence that is front-loaded with the main action. No wasted words, though could be slightly more 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?
With 11 parameters fully described in schema, the description covers basic functionality but omits mentioning pagination (cursor), ordering, or return shape. For a complex list tool, more context would help.
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 each parameter is described. The description adds 'optionally filtered by pipeline or release' but does not add meaning beyond the schema for individual parameters.
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 'List release notes in the workspace' with optional filters, distinguishing it from sibling tools like get_release_note (single item) and save_release_note (create/update).
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 on when to use this tool vs alternatives. There are many list tools among siblings, and no explicit when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_release_pipelinesList release pipelinesBRead-onlyIdempotentInspect
List release pipelines in the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name or ID | |
| type | No | Pipeline type: continuous | scheduled | |
| limit | No | Max results (default 50, max 250) | |
| query | No | Search pipeline name | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| includeTeams | No | Include each pipeline's teams | |
| isProduction | No | Filter by production pipeline flag | |
| includeStages | No | Include each pipeline's stages | |
| includeArchived | No | Include archived items |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. Description adds no extra behavioral details (e.g., pagination, limit handling). Given annotations, this is adequate but not enhanced.
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?
Single sentence, no unnecessary words. Purpose is front-loaded and clear.
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?
With 12 parameters and no output schema, the description lacks context on common combinations, query patterns, or response format. The tool is complex but the description is minimal.
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?
All 12 parameters have schema descriptions, so baseline is 3. The tool description adds no additional meaning beyond what the schema provides.
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?
Description clearly states 'List release pipelines in the workspace', with a specific verb and resource. It distinguishes from sibling list tools which target other entities (issues, projects, etc.).
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 on when to use this tool vs others, no exclusions or alternatives mentioned. The minimal description assumes the agent knows when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_releasesList releasesCRead-onlyIdempotentInspect
List releases in the workspace, with optional filtering by pipeline, stage, version, and text.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 250) | |
| query | No | Search release name or version | |
| stage | No | Release stage ID or exact name | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| version | No | Exact version match | |
| pipeline | No | Release pipeline ID, slug, or exact name | |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| stageType | No | Filter by stage lifecycle type | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| hasReleaseNotes | No | Filter to releases that do (true) or do not (false) have release notes | |
| includeArchived | No | Include archived items | |
| includeReleaseNotes | No | Include associated release notes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, establishing the tool's safety profile. The description adds context about optional filtering but does not reveal any additional behavioral traits beyond what annotations provide.
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 sentence, which is concise but incomplete. It front-loads the main action and a few filters but sacrifices comprehensiveness. It could be restructured to either list all filters or use a more general phrase like 'multiple filtering options'.
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?
With 13 parameters and no output schema, the description should provide a more complete overview of available filters. It fails to cover the full range of filtering capabilities, making it insufficient for agents to understand the tool's full scope.
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 covers 100% of parameters with descriptions, so baseline is 3. However, the tool description only mentions four filters (pipeline, stage, version, text) while omitting nine others (limit, cursor, orderBy, createdAt, updatedAt, hasReleaseNotes, includeArchived, includeReleaseNotes, stageType). This incomplete listing could mislead agents into thinking only those four filters exist.
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 tool lists releases with optional filtering. It identifies the resource (releases) and the action (list), which is specific enough given the sibling tools list different entities. However, it does not explicitly differentiate from other list tools, so it's not a 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 like get_release or list_release_notes. It only describes the functionality without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamsList teamsBRead-onlyIdempotentInspect
List teams in the user's Linear workspace
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 250) | |
| query | No | Search query | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
| createdAt | No | Created after: ISO-8601 date/duration (e.g., -P1D) | |
| updatedAt | No | Updated after: ISO-8601 date/duration (e.g., -P1D) | |
| includeArchived | No | Include archived items |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds no additional behavioral context beyond 'list teams', such as pagination behavior or that results are paginated.
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 concise sentence that gets straight to the point. However, it is somewhat too sparse, missing useful details about pagination and return format.
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?
With 7 optional parameters and no output schema, the description should explain that the tool returns a paginated list of team objects. It does not cover return format or pagination 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?
Schema coverage is 100%, so the description adds minimal meaning beyond 'in the user's Linear workspace'. The schema already documents all 7 parameters with descriptions.
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 'List teams', which is a specific verb-resource combination. It distinguishes itself from the sibling tool 'get_team' (singular) and other list tools like 'list_issues'.
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 all teams, but does not provide explicit guidance on when to use this tool versus alternatives like 'get_team' or searching. No filtering or pagination advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersList usersARead-onlyIdempotentInspect
Retrieve users in the Linear workspace
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team name or ID | |
| limit | No | Max results (default 50, max 250) | |
| query | No | Filter by name or email | |
| cursor | No | Next page cursor | |
| orderBy | No | Sort: createdAt | updatedAt | updatedAt |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, making the safe read-only nature clear. The description adds no extra behavioral context beyond what annotations provide.
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?
A single, clear sentence with no unnecessary words. Efficiently communicates the core purpose.
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 straightforward list operation with 5 fully-described parameters and annotations, the description is adequate. However, it could mention that the response is a list of users, but the lack of output schema is partially mitigated by the parameter 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?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add additional meaning or clarify parameter usage beyond 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 verb 'Retrieve' and the resource 'users in the Linear workspace'. It distinguishes from sibling tools like 'get_user' (single user) and other list tools.
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 listing users but does not explicitly state when to use this tool versus alternatives like 'get_user' or other list tools. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_attachment_uploadPrepare attachment uploadAInspect
Prepare a direct Linear file upload for an existing issue.
Workflow:
Call this tool with issue, filename, contentType, and size.
Upload raw bytes with PUT to uploadRequest.url outside MCP.
All headers in uploadRequest.headers are part of the signed request, so send them verbatim.
After PUT succeeds, call create_attachment_from_upload with assetUrl to link it to the issue.
Do not base64-encode or transform the file. Use curl --data-binary @path or fetch(url, { method: 'PUT', body: blob }). Omitting or modifying any signed header, including casing, will return HTTP 403. The signed URL must be used within 60 seconds or it will expire.
Upload sequencing: Prepare, PUT, and finalize one file before calling this tool for another file. Do not batch multiple prepare_attachment_upload calls before starting the PUTs because earlier signed URLs can expire while later files are prepared.
Example:
curl -X PUT --data-binary @file.png
-H "content-type: image/png"
-H "x-goog-content-length-range: N,N"
-H "cache-control: public, max-age=31536000"
-H 'Content-Disposition: attachment; filename="file.png"'
"<uploadRequest.url>"
| Name | Required | Description | Default |
|---|---|---|---|
| size | Yes | Exact file size in bytes. Must be smaller than 2 GB. | |
| issue | Yes | Issue ID or identifier (e.g., LIN-123) | |
| title | No | Suggested attachment title for the finalize step | |
| filename | Yes | Filename for the upload, e.g. screenshot.png | |
| subtitle | No | Suggested attachment subtitle for the finalize step | |
| contentType | Yes | MIME type, e.g. image/png or application/pdf |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond annotations: signed URL must be used within 60 seconds, headers must be sent verbatim (including casing), and omitting/modifying headers returns 403. No contradiction with annotations (readOnlyHint=false, etc.).
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?
Well-structured with clear workflow steps and examples. Slightly long but every sentence earns its place. Could be trimmed slightly without losing value.
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?
Comprehensive for a tool without output schema: explains what the tool returns (uploadRequest.url and headers), the full workflow, and troubleshooting tips. No gaps given the complexity.
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 coverage is 100%, so baseline is 3. Description adds context for size (exact bytes, <2GB) and filename example, but does not significantly enhance understanding beyond schema descriptions.
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 states it prepares a direct Linear file upload for an existing issue, with a clear verb and resource. It distinguishes from sibling tools like create_attachment and create_attachment_from_upload by outlining the workflow and when to call each.
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?
Provides explicit step-by-step workflow, including when to use this tool before PUT and then call create_attachment_from_upload. Warns not to batch multiple prepare calls to avoid signed URL expiration, and gives usage constraints like 60-second expiry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_commentSave commentADestructiveInspect
Create or update a comment on a Linear issue, project, initiative, document, or project milestone. If id is provided, updates the existing comment; otherwise creates a new one. To start a new thread, pass body and exactly one of issueId, projectId, initiativeId, documentId, or milestoneId — comments on issues/projects/initiatives become top-level discussion threads; comments on documents/milestones become description comments. To reply to an existing thread, pass parentId and body; the reply inherits the parent's thread type, so no entity reference is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Comment ID. If provided, updates the existing comment | |
| body | Yes | Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe) | |
| issueId | No | Issue ID or identifier (e.g., LIN-123) (provide exactly one parent) | |
| parentId | No | Parent comment ID (for replies, only when creating) | |
| projectId | No | Project name, ID, or slug (provide exactly one parent) | |
| documentId | No | Document ID or slug (provide exactly one parent) | |
| milestoneId | No | Milestone UUID (provide exactly one parent). Resolve milestone names via `list_milestones` first. | |
| initiativeId | No | Initiative name or ID (provide exactly one parent) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description confirms mutation by stating 'Create or update'. It adds behavioral context about thread types for different entities and the inheritance of thread type for replies. No contradictions with annotations.
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 concise, consisting of two sentences that front-load the main purpose. The second sentence is detailed but necessary to cover all scenarios. No superfluous content.
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 (8 parameters, no output schema), the description covers all key aspects: create vs update, new thread vs reply, entity type specifics, and body formatting. It does not mention error handling or return values, but these are adequately handled by the schema and annotations.
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 coverage is 100%, but the description adds significant meaning: clarifies the role of 'id' for updates, the mutual exclusivity of parent entity IDs, the behavior of replies inheriting thread type, and formatting tips for 'body' (literal Markdown, @mentions). This goes well beyond 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 that the tool creates or updates comments on multiple entity types (issue, project, initiative, document, milestone). It distinguishes between create and update modes using the 'id' parameter, and differentiates from siblings like 'delete_comment' and 'list_comments'.
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 explicitly explains when to use each parameter: for new threads, pass 'body' and exactly one entity ID; for replies, pass 'parentId' and 'body'. It also advises resolving milestone names via 'list_milestones' first. Alternative tools are not mentioned, but the usage is well-guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_documentSave documentADestructiveInspect
Create or update a Linear document. If id is provided, updates the existing document; otherwise creates a new one. When creating, title is required and exactly one parent (project, issue, initiative, cycle, or team) must be specified. On update, passing a parent reparents the document.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Document ID or slug to update. Omit to create a new document. | |
| icon | No | Icon name or emoji code (e.g. "Rocket" or ":eagle:"), not a raw Unicode emoji | |
| team | No | Team name or ID. Attaches the document to the team, unless `cycle` is also passed, in which case it disambiguates the cycle. | |
| color | No | Hex color | |
| cycle | No | Cycle name, number, or ID. When passing a name or number, also pass `team` to disambiguate. | |
| issue | No | Issue ID or identifier (e.g., LIN-123) | |
| title | No | Document title (required when creating) | |
| content | No | Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe) | |
| project | No | Project name, ID, or slug | |
| initiative | No | Initiative name or ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true; description adds that it creates or updates, reparents on update, and specifies required parents. This adds useful behavioral context beyond the annotations.
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?
Three sentences, front-loaded with the main purpose, then conditions. No redundant or extraneous information. Efficiently conveys all necessary usage rules.
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?
Covers main behaviors (create/update, parent constraints, reparenting) adequately for a tool with 10 parameters and no output schema. Could mention error handling or response format, but not essential.
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 coverage is 100%, giving a baseline of 3. Description adds crucial constraints: title required when creating, exactly one parent must be specified, and reparenting behavior on update. This adds significant meaning.
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?
Clearly states 'Create or update a Linear document' which is a specific verb-resource pair. The description differentiates it from sibling tools like get_document or list_documents by focusing on mutation.
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?
Explicitly distinguishes between create and update based on presence of `id`. States required fields for creation (title and exactly one parent). Does not explicitly mention when not to use this tool, but the conditions are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_issueSave issueADestructiveInspect
Create or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, title and team are required. Note: use assignee (not assigneeId) to set the assignee — it accepts a user ID, name, email, or "me".
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Only for updating an existing issue. Pass the issue ID or identifier (e.g., LIN-123). Do NOT pass this parameter when creating a new issue. | |
| team | No | Team name or ID (required when creating) | |
| cycle | No | Cycle name, number, or ID. Null to remove | |
| links | No | Link attachments to add [{url, title}]. Append-only; existing links are never removed | |
| state | No | State type, name, or ID | |
| title | No | Issue title (required when creating) | |
| blocks | No | Issue IDs/identifiers this blocks. Append-only; existing relations are never removed | |
| labels | No | Label names or IDs | |
| dueDate | No | Due date (ISO format) | |
| project | No | Project name, ID, or slug | |
| assignee | No | User ID, name, email, or "me". Null to remove | |
| delegate | No | Agent name or ID. When the user asks to delegate to "Linear" or "the Linear agent", this refers to the "Linear" app user specifically. Null to remove | |
| estimate | No | Issue estimate value. On create, pass null or omit for no estimate. On update, pass null to clear the estimate; omitting leaves it unchanged. 0 is a real estimate only on teams that allow zero estimates. | |
| parentId | No | Parent issue ID or identifier (e.g., LIN-123). Null to remove | |
| priority | No | 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low | |
| releases | No | Release IDs or slugs to set on the issue. Cannot be combined with addReleases/removeReleases | |
| blockedBy | No | Issue IDs/identifiers blocking this. Append-only; existing relations are never removed | |
| milestone | No | Milestone name or ID | |
| relatedTo | No | Related issue IDs/identifiers. Append-only; existing relations are never removed | |
| addReleases | No | Release IDs or slugs to add. Append-only; existing releases are never removed | |
| description | No | Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe) | |
| duplicateOf | No | Duplicate of issue ID/identifier. Null to remove | |
| removeBlocks | No | Issue IDs/identifiers to stop blocking | |
| removeReleases | No | Release IDs or slugs to remove. Only valid when updating an existing issue | |
| removeBlockedBy | No | Issue IDs/identifiers to remove as blockers of this issue | |
| removeRelatedTo | No | Related issue IDs/identifiers to remove |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true (mutation) and readOnlyHint=false. The description adds a useful note about assignee parameter behavior, but does not disclose other behavioral traits like side effects, partial updates, 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 three concise sentences, front-loaded with the core purpose, and contains no extraneous information.
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 high parameter count (26) and full schema descriptions, the description covers the core create/update logic and a key parameter note. It could be more comprehensive (e.g., explicitly stating partial update behavior) but is largely adequate.
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 baseline is 3. The description adds value for one parameter (assignee) but does not enhance semantics for other parameters beyond the schema's descriptions.
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 'Create or update a Linear issue' and distinguishes between creation (requires id, title, team) and update (id provided). This is specific and differentiates from sibling tools like save_comment or save_document.
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 clear guidance on when to create vs. update based on presence of `id`, and specifies required fields for creation. It does not explicitly exclude alternatives, but the sibling context makes this the primary issue mutation tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_milestoneSave milestoneADestructiveInspect
Create or update a milestone in a Linear project. If id is provided, updates the existing milestone; otherwise creates a new one. When creating, name is required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Milestone name or ID | |
| name | No | Milestone name (required when creating) | |
| project | Yes | Project name, ID, or slug | |
| targetDate | No | Target completion date (ISO format, null to remove) | |
| description | No | Milestone description |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint true (potential data loss) and readOnlyHint false. The description adds behavioral detail: id-driven create/update logic and the requirement for 'name' when creating. This goes beyond the annotations, explaining the conditional 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 extremely concise—two sentences—and front-loads the core purpose. Every word adds value, with no redundancy or fluff.
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?
The description covers the core behavior (create/update, id logic, name requirement) and is sufficient for a mutation tool with 5 parameters. It lacks explanation of return values or error conditions, but given no output schema and the tool's straightforward nature, it is reasonably complete.
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 coverage is 100%, but the description adds meaning beyond raw schema by explaining the conditional use of 'id' and the requirement for 'name' when creating. This clarifies parameter semantics that are not obvious from the schema alone.
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 tool creates or updates a milestone, distinguishing between the two based on presence of 'id'. It identifies the resource (milestone) and the action (save), and differentiates from sibling tools like get_milestone or list_milestones which are read-only.
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 clear context for when to use the tool (create vs update based on id) and conditions ('name' required for creation). It does not explicitly state exclusions or alternatives, but the sibling list implies other tools for reading or listing milestones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectSave projectADestructiveInspect
Create or update a Linear project. If id is provided, updates the existing project; otherwise creates a new one. When creating, name and at least one team (via addTeams or setTeams) are required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Project ID. If provided, updates the existing project | |
| icon | No | Icon name or emoji code (e.g. "Rocket" or ":eagle:"), not a raw Unicode emoji | |
| lead | No | User ID, name, email, or "me". Null to remove | |
| name | No | Project name (required when creating) | |
| color | No | Hex color | |
| state | No | Project state | |
| labels | No | Label names or IDs | |
| summary | No | Short summary (max 255 chars) | |
| addTeams | No | Team name or ID to add | |
| priority | No | 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low | |
| setTeams | No | Replace all teams with these. Cannot combine with addTeams/removeTeams | |
| startDate | No | Start date (ISO format). Pair with startDateResolution to indicate precision (e.g. month, quarter) | |
| targetDate | No | Target date (ISO format). Pair with targetDateResolution to indicate precision (e.g. month, quarter) | |
| description | No | Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe) | |
| removeTeams | No | Team name or ID to remove | |
| addInitiatives | No | Initiative names/IDs to add | |
| setInitiatives | No | Replace all initiatives with these. Cannot combine with addInitiatives/removeInitiatives | |
| removeInitiatives | No | Initiative names/IDs to remove | |
| startDateResolution | No | Start date resolution | |
| targetDateResolution | No | Target date resolution |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the upsert behavior (create vs update) which goes beyond the annotation destructiveHint=true. It also adds required field constraints for creation. While not detailing side effects like overwrite behavior, it provides meaningful behavioral context not in the annotations.
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 three sentences with no waste: first states purpose, second explains create/update condition, third specifies creation requirements. It is front-loaded and every sentence adds value.
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 20 parameters and no output schema, the description covers the core behavior and conditional requirements well but omits return value information (e.g., whether the created/updated project object is returned). It also does not mention error scenarios or authentication needs, which would be helpful for a complex mutation tool.
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 has 100% description coverage for all 20 parameters, but the description adds critical conditional semantics: it explains that name and at least one team (via addTeams or setTeams) are required during creation, which is not captured in the schema (no required array). It also clarifies the id parameter's role in switching between create and update modes.
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 'Create or update a Linear project' with specific verb (create/update) and resource (Linear project). It distinguishes between creation (no id) and update (id provided), which is precise. Given siblings like get_project and list_projects, this tool's unique role is evident.
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 explains when to use: to create or update a project. It provides conditional logic (if id provided, update; else create) and required fields for creation (name and at least one team). However, it does not explicitly exclude alternatives like get_project for reading, but since no other project mutation exists, context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_releaseSave releaseADestructiveInspect
Create or update a release. If id is provided, updates the existing release; otherwise creates a new one. When creating, name and pipeline are required. Release status is modeled as the release pipeline stage.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Release ID or slug to update. Omit to create a new release. | |
| name | No | Release name (required when creating) | |
| stage | No | Release stage ID, exact name, or lifecycle type within the release pipeline | |
| version | No | Version identifier | |
| pipeline | No | Release pipeline ID, slug, or exact name (required when creating) | |
| commitSha | No | Commit SHA associated with the release | |
| createdAt | No | Import/create timestamp (ISO DateTime) | |
| startDate | No | Estimated start date (ISO YYYY-MM-DD, null to remove) | |
| startedAt | No | Started timestamp (ISO DateTime, null to remove) | |
| targetDate | No | Estimated completion date (ISO YYYY-MM-DD, null to remove) | |
| completedAt | No | Completed timestamp (ISO DateTime, null to remove) | |
| description | No | Release description |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the create/update behavior and notes that release status is modeled as the pipeline stage. The annotations already indicate destructiveHint=true and readOnlyHint=false, so the description adds context about the status modeling. It does not detail potential side effects of updates, but the annotation covers the safety profile adequately.
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 two sentences, front-loading the main purpose and then adding key details. Every sentence is necessary and contributes to understanding.
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 12 parameters and complete schema coverage, the description adequately covers the core functionality. It could be more explicit about update semantics (e.g., partial vs full replace), but for a create/update tool with good field descriptions, this is sufficient.
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?
With 100% schema description coverage, the baseline is 3. The description adds value by summarizing the create/update logic and highlighting that 'name' and 'pipeline' are required when creating, which is not explicit in the schema's individual field descriptions.
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 'Create or update a release' and distinguishes between the two based on the presence of the 'id' parameter. It also mentions the effect on release status (modeled as pipeline stage), which is specific and actionable.
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 explains when to use the tool for creating (no id) vs updating (with id), and specifies that 'name' and 'pipeline' are required when creating. However, it does not provide guidance on when not to use the tool or alternative tools, though sibling tools are distinct resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_release_noteSave release notesADestructiveInspect
Create or update release notes. If id is provided, updates the existing release notes; otherwise creates a new one. When creating, pipeline and either releases or a release range are required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Release notes ID or slug to update. Omit to create new release notes. | |
| title | No | Release notes title | |
| content | No | Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe) | |
| pipeline | No | Release pipeline ID, slug, or exact name (required when creating) | |
| releases | No | Release IDs or slugs to include in the note | |
| rangeToRelease | No | Newest release ID or slug in the note range | |
| rangeFromRelease | No | Oldest release ID or slug in the note range |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate `readOnlyHint=false` and `destructiveHint=true`, so the description's 'create or update' is consistent. The description adds the create/update distinction but does not elaborate on what data is affected (e.g., whether updates replace or merge content). Given the annotations already convey the destructive nature, the description adds moderate context.
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 extremely concise—two sentences covering the core logic and key requirements. No wasted words, and the most important information (create vs. update condition) is front-loaded.
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 moderate complexity (7 parameters, create/update logic) and the existence of full schema descriptions and annotations, the description is mostly complete. It explains the essential behavior and parameter requirements. However, it lacks information on return values or error scenarios, but the absence of an output schema reduces the burden.
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 coverage is 100% with each parameter described. The description goes beyond by clarifying the relationship between parameters: for creation, `pipeline` and either `releases` or `rangeFromRelease`/`rangeToRelease` are required. This adds value beyond the individual parameter descriptions, providing interplay semantics.
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?
Description clearly states it creates or updates release notes, with specific verb 'Create or update' and resource 'release notes'. It distinguishes between create and update based on the presence of 'id'. This is unambiguous and differentiates from sibling tools like 'list_release_notes' or 'get_release_note'.
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 explicit guidance on when to create vs. update (if `id` is provided). It specifies required parameters for creation (`pipeline` and either `releases` or a release range). However, it does not state when not to use this tool or mention alternatives, but since it's the only tool for saving release notes, the guidance is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_status_updateSave status updateADestructiveInspect
Create or update a project/initiative status update. Omit id to create, provide id to update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Status update ID - if provided, updates this existing update | |
| body | No | Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe) | |
| type | Yes | Type of status update | |
| health | No | onTrack | atRisk | offTrack | |
| project | No | Project name, ID, or slug | |
| initiative | No | Initiative name or ID | |
| isDiffHidden | No | Deprecated. Hide diff with previous update (create only) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds some behavioral context (create/update distinction) beyond the annotations (destructiveHint: true), but it does not elaborate on side effects, return values, or safety considerations. The annotations already indicate a destructive nature, so the description's additional value is modest.
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 two sentences, front-loading the purpose and providing essential usage guidance in a clear, compact form. Every word earns its place with no redundancy or filler.
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?
Despite having 7 parameters and no output schema, the description covers the key behavioral distinction (create vs. update) and leverages thorough schema descriptions. It lacks details on return values or validation, but for a straightforward CRUD tool it is sufficiently complete.
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 baseline is 3. The description adds minimal new information beyond the schema, primarily the usage pattern for 'id'. Other parameters are adequately described in the schema but not enhanced by 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 clearly states the tool creates or updates a status update, specifying the action and resource. It distinguishes between create and update by mentioning the role of the 'id' parameter, and among sibling tools (e.g., delete_status_update, get_status_updates) it is unique in handling save operations.
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 direct guidance on when to create vs. update (omit id vs. provide id). However, it does not explicitly state when not to use this tool, such as for deletions (handled by delete_status_update) or other operations, nor does it mention prerequisites or context like required permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentationSearch documentationBRead-onlyIdempotentInspect
Search Linear's documentation to learn about features and usage
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| query | Yes | Search query |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's additional context that the tool searches documentation adds some value but does not detail behavior like pagination or result 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, concise sentence that communicates the core purpose without unnecessary words. However, it could include more details without becoming verbose.
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 search tool with two parameters and no output schema, the description is minimally adequate. It covers the basic purpose but does not explain the 'page' parameter's behavior or what the search results contain.
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?
Input schema has 100% coverage with descriptions for both 'query' and 'page'. The tool description does not add any additional meaning or usage hints for these parameters beyond what the schema provides.
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 the resource 'Linear's documentation', and the purpose 'to learn about features and usage'. This distinguishes it from related tools like get_document (retrieve specific doc) and list_documents (list all docs).
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 on when to use this tool versus alternatives like get_document or list_documents is provided. The description lacks explicit context for when search is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!