mcp-server-linear
Provides tools for interacting with Linear's API, enabling AI agents to manage issues, projects, comments, and other resources programmatically through the Linear platform.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-linearlist all open issues for team Alpha"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-server-linear
Model Context Protocol (MCP) server for interacting with the Linear API. This server provides tools and resources for accessing and manipulating Linear issues, projects, and other data through a standardized MCP interface.
Overview
The mcp-server-linear project serves as a bridge between client applications (particularly AI assistants and other tools) and Linear, providing a standardized interface for accessing and manipulating Linear resources.
Key features:
Standardized access to Linear resources (issues, projects, initiatives, teams)
Full CRUD operations for issues and comments
Advanced issue filtering and search capabilities
Consistent error handling and response formats
Integration with AI assistants through MCP protocol
Related MCP server: Linear MCP Server
Configuration
Linear API Authentication
This server supports two authentication methods:
Option 1: API Key Authentication
You can set up the LINEAR_API_KEY environment variable:
Go to Linear Settings > API
Under "Personal API keys", click "Create key"
Give your key a name (e.g., "MCP Server")
Copy the generated API key
Set the environment variable when running the server
Option 2: OAuth Authentication
Alternatively, you can use OAuth authentication by setting the following environment variables:
Create an OAuth application at Linear Settings > API > Applications
Configure your application and obtain the client ID and client secret
Set the following environment variables:
LINEAR_OAUTH_CLIENT_ID=your_oauth_client_id
LINEAR_OAUTH_CLIENT_SECRET=your_oauth_client_secretIf both authentication methods are configured, OAuth authentication will be prioritized.
Alternatively, you can set the environment variables in your shell profile or use a tool like dotenv.
Usage
Starting the Server
You can run the MCP server directly using npx without installing it globally:
LINEAR_API_KEY=your_api_key_here npx -y @mkusaka/mcp-server-linearIntegration with MCP Clients
This MCP server can be integrated with various AI assistants and MCP-compatible clients:
Anthropic Claude Integration
You can use this MCP server with Anthropic Claude through various clients:
Cline (VS Code Extension)
Cline is a VS Code extension that allows you to use MCP servers with Claude AI:
Open your Cline MCP settings file:
macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonWindows:
%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonLinux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Add the Linear MCP server configuration:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@mkusaka/mcp-server-linear"],
"env": {
"LINEAR_API_KEY": "your_linear_api_key"
// or when using OAuth authentication
// "LINEAR_OAUTH_CLIENT_ID": "your_oauth_client_id",
// "LINEAR_OAUTH_CLIENT_SECRET": "your_oauth_client_secret"
},
"disabled": false,
"autoApprove": []
}
}
}Cursor
Add the following to your Cursor configuration file (~/.cursor/config.json):
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@mkusaka/mcp-server-linear"],
"env": {
"LINEAR_API_KEY": "your_linear_api_key"
// or when using OAuth authentication
// "LINEAR_OAUTH_CLIENT_ID": "your_oauth_client_id",
// "LINEAR_OAUTH_CLIENT_SECRET": "your_oauth_client_secret"
},
"disabled": false,
"autoApprove": []
}
}
}Available Tools
This MCP server provides the following tools:
Issue Management
create_issue- Create a new issue in Linearupdate_issue- Update an existing issuedelete_issue- Delete an existing issueupdate_issue_labels- Update the labels of an issueupdate_issue_priority- Update the priority of an issueupdate_issue_estimate- Update the estimate of an issueupdate_issue_state- Update the state of an issuesearch_issues- Search for issues with advanced filtering options
Comment Management
create_comment- Create a new comment on an issueupdate_comment- Update an existing commentdelete_comment- Delete an existing commentget_issue_comments- Get comments for a specific issue
Resource Access
projects- Get all projects in Linearproject- Get a single project by IDissue- Get a single issue by IDproject_statuses- Get all project statusesproject_issues- Get all issues in a projectissue_labels- Get all issue labelsissue_states- Get all available issue statesget_viewer- Get current user information including teamsupdate_project_state- Update the state of a project
Architecture
This server follows the Model Context Protocol (MCP) architecture to provide a standardized way to access Linear resources. Key architectural decisions include:
Resource Organization: Resources are organized by domain in separate files
Error Handling: Consistent error handling across all resources
Response Format: Consistent JSON response format
For more detailed information about the architecture, see adr.md.
Development
# Run tests
pnpm test
# Build the project
pnpm run build
# Watch for changes
pnpm run watch
# Run with inspector
pnpm run debugFor development and testing, you can use the MCP Inspector to interact with the server:
# Install the MCP Inspector globally
pnpm install -g @modelcontextprotocol/inspector
# Run the server with the inspector
LINEAR_API_KEY=your_api_key_here mcp-inspector /path/to/mcp-server-linear/dist/index.js
# Or using npx
LINEAR_API_KEY=your_api_key_here npx -y @modelcontextprotocol/inspector @mkusaka/mcp-server-linearCommand Line Options
# Enable logging (logs to linear-mcp.log by default)
pnpm run start -- --debug
# Enable logging with custom log file path
pnpm run start -- --debug --log-file custom-path.logContributing
Contributions are welcome! See adr.md for architecture decisions and project structure.
License
MIT
Available Tools
21 toolscreate_commentB
Create a new comment in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | comment body | |
| issueId | Yes | target issue id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description gives no behavioral details (e.g., permissions, immediate effect, rate limits). For a write operation, more disclosure is warranted.
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, no waste. Perfectly concise for a simple 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 tool simplicity (2 required params, no output schema, no annotations), description is adequate. Could mention that comment is added to the specified issue but not necessary.
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%. Description adds no parameter meaning beyond what the schema already provides (body and issueId). 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 clearly states verb 'Create', resource 'comment', and context 'in Linear'. It distinguishes from siblings like 'update_comment' and 'delete_comment'.
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 like 'get_issue_comments' or 'update_comment'. Agent must infer context from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueB
Create a new issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | issue title | |
| labels | No | issue labels | |
| teamId | Yes | target team id | |
| estimate | No | issue estimate | |
| parentId | No | parent issue id | |
| priority | No | issue priority | |
| projectId | No | target project id | |
| description | No | issue description | |
| dependencyIds | No | dependency issue ids |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Create a new issue'. No disclosure of side effects, permissions, error cases, or what the response contains.
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?
Extremely concise single sentence. Front-loaded with key information. Could add more structure but 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?
Given high complexity (9 parameters, many optional), no output schema, and no annotations, the description is insufficient. Missing return value, validation rules, and usage 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 covers all parameters with descriptions (100% coverage). Description adds no extra parameter information beyond the schema, 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 verb 'Create' and resource 'new issue in Linear'. It distinguishes from siblings like update_issue and delete_issue.
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. No mention of prerequisites 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.
delete_commentC
Delete an existing comment in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| commentId | Yes | target comment id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'delete' without mentioning side effects, permissions, error responses, or whether the comment must exist.
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 at one sentence, but it is front-loaded and to the point 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 tool with one parameter and no output schema, the description is minimal but omits important context such as error handling, idempotency, and prerequisites for executing the deletion.
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?
Although the schema describes the parameter as 'target comment id', the description does not add any additional meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and resource (existing comment in Linear). It distinguishes this from sibling tools like create_comment or update_comment.
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, such as when to delete vs update a comment, or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_issueB
Delete an existing issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | target issue id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details beyond the deletion action. With no annotations, it should disclose whether deletion is permanent, any side effects (e.g., cascading deletes), or permission requirements. The current text provides minimal insight.
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 superfluous words. It is efficiently front-loaded with the action and resource.
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 tool with one parameter, the description is minimally adequate. However, it omits typical caveats like irreversibility or confirmation, which would be helpful for an agent to fully understand the tool's impact.
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 the parameter 'issueId' has a basic description ('target issue id'). The description does not add additional meaning, but the schema is sufficient for a single parameter. 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 verb 'Delete' and the resource 'existing issue in Linear'. It distinguishes from sibling deletion tools by explicitly specifying 'issue', making the tool's purpose immediately clear.
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. There is no mention of prerequisites, when not to use it, or suggestions for other tools like 'update_issue' or 'search_issues'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_commentsB
Get comments for a specific issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | target issue id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fails to disclose any behavioral traits beyond the basic read operation. There is no mention of pagination, ordering, authentication requirements, or potential limitations. Since no annotations are provided, the description carries the full burden but only states a trivial verb-noun phrase.
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—a single sentence with no superfluous words. However, it could be slightly more informative without losing brevity, e.g., by mentioning that it returns all comments for the specified issue.
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 parameter, no output schema), the description lacks completeness. It does not state that the tool returns a list of comments or any details about the response format, which is critical for an agent to correctly interpret the output.
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 clear description ('target issue id') for the single required parameter. The description adds marginal context by tying the parameter to a 'specific issue' in Linear, but does not significantly enhance understanding 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 action ('Get comments'), the resource ('for a specific issue'), and the platform ('in Linear'). It distinctly identifies its function without ambiguity and differentiates from siblings like create_comment or delete_comment.
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 does not provide explicit guidance on when to use this tool versus alternatives such as search_issues or project_issues. The usage context is implied (when you have an issue ID), but no exclusions or alternative tool recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewerA
Get current user information including teams
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It adds the detail 'including teams' but does not disclose authentication requirements, rate limits, or any side effects. Since it is a read-only retrieval, transparency is adequate but not rich.
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 unnecessary words. Every part is relevant and 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 no output schema and a simple purpose, the description is reasonably complete. It notes 'including teams' which adds value, but could mention other common fields like email or role. Still sufficient for its 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?
There are zero parameters, so schema coverage is 100%. The description does not need to add parameter meaning. Baseline 4 is appropriate for a parameterless tool.
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 current user information including teams, with a specific verb and resource. It distinguishes from all sibling tools which focus on issues, comments, or projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives, but the context of retrieving user info makes usage implied. No when-not or exclusion details are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issueC
Get a single issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | target issue id | |
| includeParent | No | include parent | |
| includeChildren | No | include children | |
| includeComments | No | include comments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that the tool gets an issue, with no disclosure of return format, side effects, or permissions. This is insufficient for a mutation-free retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it is too brief to be fully helpful. While it avoids verbosity, it sacrifices necessary context that could be added without becoming long.
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 has 4 parameters and no output schema or annotations, the description is highly incomplete. It does not explain what the returned issue contains, how parameters affect output, or provide usage examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters. The description adds no additional meaning 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 action ('Get') and resource ('single issue in Linear'), providing a specific verb and resource. However, it does not differentiate from sibling tools like get_issue_comments or search_issues, which also deal with 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 provides no guidance on when to use this tool versus alternatives. Sibling tools like get_issue_comments, search_issues, and update_issue exist, but no context is given for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_labelsA
Get all issue labels in Linear
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. 'Get all issue labels' implies a read-only, non-destructive operation. However, it does not disclose any potential behavior like scope (e.g., workspace-level), response size, or lack of pagination. For a zero-parameter tool, this is adequate but minimal.
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, complete sentence with no extraneous words. It is front-loaded and efficient.
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 trivial (no params, no output schema). The description covers the basic purpose. While it could mention the output format, it is reasonably complete for a simple list 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?
There are zero parameters, and schema description coverage is 100%. The description does not need to add parameter semantics. Baseline 4 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 explicitly states the action (Get), resource (all issue labels), and context (in Linear), which is specific and distinguishes it from siblings like update_issue_labels and get_issue_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?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools for issues and labels, the agent would benefit from context on when to fetch all labels versus using other label-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_statesA
Get all available issue states (workflow states) in Linear
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It confirms a read operation, which is expected, but lacks details on aspects like caching, permissions, or pagination. The description is minimal but not misleading.
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 wasted words. It efficiently conveys the tool's action and scope.
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 there is no output schema and no parameters, the description provides adequate context for a simple retrieval tool. However, it could hint at the output structure (e.g., list of state names) to 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?
The tool has no parameters, so the description does not need to add parameter meaning. The baseline for zero-parameter tools is 4, and the description meets that without redundancy.
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's purpose: retrieving all available issue states in Linear. It uses a specific verb ('Get') and resource ('issue states'), distinguishing it from sibling tools that handle comments, projects, or mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that this tool might be useful before creating an issue to know valid states, nor does it specify any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectB
Get a single project in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | target project id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'Get', implying a read operation, but does not confirm idempotency, auth requirements, rate limits, or error handling.
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 waste. It is appropriately sized for a simple 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 parameter, no output schema), the description is minimally adequate but lacks details about return format or error cases. It 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% for the single parameter 'projectId', which is described as 'target project id' in the schema. The description adds no additional meaning beyond what the schema already 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 'Get' and the resource 'a single project in Linear'. It distinguishes from the sibling 'projects' tool by specifying 'single', though it does not explicitly differentiate from other 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 is provided on when to use this tool versus alternatives like 'projects' or 'project_issues'. The description does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_issuesC
Get all issues in a project in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | target project id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only says 'Get all issues' without disclosing details like pagination, ordering, whether archived issues are included, or required permissions. For a mutation-free read tool, more context is needed.
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 efficient, though some additional details could be added 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 retrieval tool with one parameter and no output schema, the description is adequate but not thorough. It explains what it does but lacks details about the return format, potential edge cases, or any filtering options.
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 for the single parameter 'projectId' with description 'target project id'. The tool's description does not add further meaning beyond the schema, 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 action ('Get all issues') and the resource ('in a project in Linear'). It is specific enough to convey the tool's purpose, but it does not distinguish from sibling tools like 'search_issues', which might also retrieve issues with filtering.
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 (e.g., 'search_issues' or 'issue' for a single issue). It does not mention any prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectsA
Get all projects in Linear
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'get all projects' without mentioning authentication, rate limits, pagination, or whether deleted projects are included. This is insufficient for safe invocation.
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 unnecessary words. It conveys the essential purpose efficiently.
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 no output schema, the description should ideally clarify the return format (e.g., list of project IDs/names). It omits this info and does not mention pagination or ordering, but for a simple list retrieval it remains minimally 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?
There are zero parameters, so the schema coverage is trivially 100%. The description adds no parameter information beyond the schema, which is acceptable per the baseline for 0 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 'Get all projects in Linear' clearly specifies the action (get) and resource (all projects). It effectively distinguishes from sibling tools like 'project' (singular) and 'project_issues', which serve 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 implies usage for retrieving all projects, but provides no explicit guidance on when to use this tool versus alternatives like 'project' for a single project. There are no exclusions or context for 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.
project_statusesA
Get all available project statuses in Linear
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool retrieves statuses, implying a read operation, but does not disclose authentication needs, rate limits, or whether the statuses are predefined or customizable. It meets minimal adequacy.
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, and direct sentence with no extraneous words. 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?
Given no parameters and no output schema, the description is minimal. It does not explain the return format or fields of statuses, which would aid an AI agent. Could be more complete by noting it returns a list of status objects.
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 tool has zero parameters, and schema description coverage is 100% (empty schema). According to guidelines, no-parameter tools baseline is 4. The description adds nothing about parameters, but none are needed.
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 retrieves all available project statuses in Linear, using a specific verb ('Get') and resource ('project statuses'). It distinguishes itself from sibling tools like 'project' or 'projects' by focusing on statuses rather than projects themselves.
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 fetching all project statuses but provides no explicit guidance on when to use this tool versus alternatives. Siblings like 'issue_states' exist but are for issues, so it's somewhat clear, but no when-not or alternative advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesC
Search for issues with advanced filtering options
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Cursor for pagination | |
| first | No | Number of issues to return | |
| filter | No | Filter criteria for issues | |
| orderBy | No | Field to order results by | updatedAt |
| orderDirection | No | Direction to order results | DESC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'search', implying read-only, but omits key details like pagination, return structure, or that results are a list. This is insufficient for a complex search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single vague sentence. It is under-specified rather than concise; every word should add value, but here even the sole sentence does not provide adequate context.
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 (nested filter object, pagination, sorting) and lack of output schema, the description is far from complete. It fails to explain how filters work, what is returned, or any limitations.
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. The description adds no extra meaning beyond 'advanced filtering options'; all parameter details come from the schema. No improvement or degradation.
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 the tool searches for issues with advanced filtering, but does not differentiate it from sibling tools like 'issue', 'project_issues', or 'get_issue_comments'. It is clear enough but lacks specificity.
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. With many sibling tools for fetching issues, the absence of usage context is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_commentA
Update an existing comment in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | comment body | |
| commentId | Yes | target comment id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Update' which implies mutation, but lacks details on side effects, permissions, idempotency, or what happens to the comment.
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 that conveys the purpose efficiently with no 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?
For a simple tool with 2 parameters and no output schema, the description is sufficient. However, it could be improved with behavioral details given the lack of 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 description coverage is 100%, so baseline is 3. The description does not add any extra meaning beyond the schema fields 'body' and 'commentId'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update), resource (comment), and scope (existing, in Linear). It distinguishes from siblings like create_comment and delete_comment.
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 context (updating an existing comment) but does not explicitly state when to use this tool vs alternatives like delete_comment or create_comment. No exclusions 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.
update_issueB
Update an existing issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | issue title | |
| issueId | Yes | target issue id | |
| projectId | No | target project id | |
| description | No | issue description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must bear full burden. It mentions 'update' (mutation) but does not disclose behavior such as whether it performs partial updates, overwrites fields, or handles missing IDs.
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 of 5 words, which is efficient. However, it could be slightly more informative without losing 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?
Given four parameters and no output schema, the description is insufficient. It does not explain partial update behavior, required fields beyond issueId, or how it interacts with sibling update tools. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions cover all four parameters (100% coverage), but they are minimal (e.g., 'issue title', 'target issue id'). They add basic meaning but lack detail like formats or constraints 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 'update' and the resource 'issue' within the 'Linear' system, distinguishing it from sibling tools like create_issue or delete_issue.
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 siblings like update_issue_state or update_issue_priority. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issue_estimateB
Update the estimate of an existing issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | target issue id | |
| estimate | No | issue estimate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It only states the action (update) without noting side effects, permissions, idempotency, or constraints (e.g., valid estimate range).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no unnecessary words. It is front-loaded and maximally concise.
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 mutation with 2 parameters and no output schema, the description provides minimal completeness. It states the purpose but lacks return value info, constraints, or confirmation of changes. Compare to calibration examples: it is adequate but not rich.
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 does not add any additional meaning beyond the schema's field descriptions (issueId as target, estimate as issue estimate).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'estimate of an existing issue', making it distinct from sibling tools like update_issue_priority or update_issue_state. It also specifies the system (Linear).
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 update_issue, which could also modify the estimate. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issue_labelsB
Update the labels of an existing issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| labels | No | issue labels | |
| issueId | Yes | target issue id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose whether labels are replaced or appended, validation rules, permissions, or any side effects. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence conveying the core purpose without unnecessary words. Efficient but could be slightly more structured with front-loaded key details.
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 and full schema coverage, the description is adequate but lacks behavioral nuances essential for correct agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds no additional meaning beyond the schema, but being at 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 verb 'Update', the resource 'labels of an existing issue', and the context 'Linear'. This distinguishes it from sibling tools like 'update_issue' which deals with other fields.
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 alternative guidance is provided. While it implies label-specific updates, it does not clarify when to use this vs. 'update_issue' or other field-specific tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issue_priorityB
Update the priority of an existing issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | target issue id | |
| priority | No | issue priority |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the action (update) but does not disclose whether the operation is idempotent, what side effects occur, or what the return value is. The enum values are in the schema, not the description. Minimal but acceptable for a simple field update.
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 wasted words. It is appropriately sized for a simple tool, though it could benefit from slightly more structure (e.g., listing 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 the tool's simplicity (updating one field) and no output schema, the description is adequate but lacks context on return behavior or confirmation. It does not mention that the priority uses an enum or that the update is immediate.
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. The description adds no extra meaning beyond the schema, so the 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 ('Update') and clearly identifies the resource ('priority of an existing issue') and system ('Linear'). It distinguishes itself from sibling tools like 'update_issue' and 'update_issue_state' by focusing solely on priority.
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 'update_issue' (which could also modify priority alongside other fields). It does not mention prerequisites, error conditions, or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issue_stateB
Update the state of an existing issue in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | target issue id | |
| stateId | Yes | issue state id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'update', but doesn't disclose whether operation is reversible, requires permissions, or triggers side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. However, lacks front-loading of critical scoping info. Adequately concise but not optimized.
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, no annotations, and description fails to explain that stateId must be valid for the issue or that this transitions the issue. Incomplete for a mutation tool with 2 required params.
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 has 100% coverage with basic descriptions ('target issue id', 'issue state id'). Description adds no extra meaning beyond schema, 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 'Update the state of an existing issue in Linear', which is a specific verb+resource combination. It distinguishes from siblings like update_issue (updates other fields) and issue_states (lists states).
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 update_issue (which might also change state). No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_project_stateB
Update the state of an existing project in Linear
| Name | Required | Description | Default |
|---|---|---|---|
| statusId | Yes | project status id | |
| projectId | Yes | target project id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'update', implying mutation, but does not disclose side effects, permissions, reversibility, or response details. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no extraneous information. It is front-loaded and concise.
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 (2 params, no nested objects) and no output schema, the description is adequate but lacks guidance on how to obtain statusId (e.g., from project_statuses) or what happens after update. It 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 the schema already documents both parameters. The description adds no additional semantics beyond the parameter names. It does not explain the format or source of statusId or projectId.
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 updates the state of an existing project in Linear, with a specific verb and resource. It distinguishes from sibling tools like update_issue_state (different entity) and create_comment (different action). However, it could be more explicit about what 'state' means (e.g., 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 update_issue_state or projects. It does not mention prerequisites or workflow context. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
21 tool updates
v1.0.15- First observed
create_comment - First observed
create_issue - First observed
delete_comment - First observed
delete_issue - First observed
get_issue_comments - First observed
get_viewer - First observed
issue - First observed
issue_labels - First observed
issue_states - First observed
project - First observed
project_issues - First observed
project_statuses - First observed
projects - First observed
search_issues - First observed
update_comment - First observed
update_issue - First observed
update_issue_estimate - First observed
update_issue_labels - First observed
update_issue_priority - First observed
update_issue_state - First observed
update_project_state
TDQS
Every tool has a distinct purpose focusing on issues, comments, projects, or viewer info. No overlaps exist; each action-resource pair is unique.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_issue, update_issue_priority). No mixing of styles.
21 tools is on the higher side but still within a manageable range for a comprehensive project management server. Each tool seems justified.
CRUD is complete for issues and comments, but project creation/deletion is missing. Also lacking team management tools, leaving notable gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Linear project management and issue tracking
Linear MCP — wraps the Linear GraphQL API (OAuth)
The official Planning Center MCP server for interacting with your ministry's data.
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP server for managing Linear issues, projects, teams, and milestones through the Model Context Protocol. It enables users to create, update, and list workspace resources including issue statuses, comments, and user details.22ISC
- AlicenseNot gradedqualityFmaintenanceMCP server for Linear that allows creating issues, adding comments, and listing issues and teams.134MIT
- AlicenseBqualityCmaintenanceAn MCP server that integrates with Linear's API, enabling users to manage issues, projects, teams, and comments through natural language. It supports creating, updating, deleting, and searching issues, as well as project and team management.252,486MIT
- AlicenseNot gradedqualityDmaintenanceMCP server providing tools to manage Linear projects and issues, including creation, listing, viewing details, and deletion, as well as team and user info retrieval.288MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mkusaka/mcp-server-linear'
If you have feedback or need assistance with the MCP directory API, please join our Discord server