Skip to main content
Glama
timescale

Tiger Linear MCP Server

by timescale

Tiger Linear MCP Server

A wrapper around the Linear API to provide some focused tools to LLMs via the Model Context Protocol.

Development

Cloning and running the server locally.

git clone git@github.com:timescale/tiger-linear-mcp-server.git

Building

Run npm i to install dependencies and build the project. Use npm run watch to rebuild on changes.

Create a .env file based on the .env.sample file.

cp .env.sample .env

Testing

The MCP Inspector is a very handy to exercise the MCP server from a web-based UI.

npx @modelcontextprotocol/inspector

Field

Value

Transport Type

STDIO

Command

node

Arguments

dist/index.js

Testing in Claude Desktop

Create/edit the file ~/Library/Application Support/Claude/claude_desktop_config.json to add an entry like the following, making sure to use the absolute path to your local tiger-linear-mcp-server project, and use a valid api token.

{
  "mcpServers": {
    "tiger-linear": {
      "command": "node",
      "args": [
        "/absolute/path/to/tiger-linear-mcp-server/dist/index.js",
        "stdio"
      ],
      "env": {
        "LINEAR_API_KEY": "lin_api_..."
      }
    }
  }
}

Available Tools

4 tools
get_issueGet IssueA

Fetches the details of a specific issue by its key.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe issue key, like ABC-123

Output Schema

ParametersJSON Schema
NameRequiredDescription
issueYes
involvedUsersYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no readOnlyHint or destructiveHint annotations, the description carries the burden. The verb 'Fetches' transparently indicates a read-only operation, which is appropriate for this simple get-by-key tool. It does not elaborate on error cases, but given the simplicity, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero filler. It conveys the essential information with maximum efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter), the presence of an output schema, and the clear action stated, the description is fully complete. No additional details are needed for an agent to use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%—the key parameter is well-described ('The issue key, like ABC-123'). The description's 'by its key' adds no new meaning beyond what the schema already provides, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetches'), the resource ('the details of a specific issue'), and the means ('by its key'). It distinguishes from siblings like get_issues (plural) by indicating this tool targets a single, specific issue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage—use this when you have a specific issue key and need its details—but it does not explicitly state when to avoid this tool or mention alternatives. The sibling list provides 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.

get_issuesGet IssuesA

Fetches issues filtered by user ID and/or project ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesFilter issues by assignee user ID. Use this or project_id.
projectIdYesFilter issues by project ID. Use this or user_id.
timestampEndYesFilter issues that have been updated at or before this date. Defaults to current time.
timestampStartYesFilter issues that have been updated at or after this date. Defaults to 7 days ago.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes
involvedUsersYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations beyond the title, the description carries the full burden. The verb 'fetches' clearly implies a read-only operation, but the description does not disclose potential side effects, authentication requirements, rate limits, or pagination behavior. It is minimally transparent 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence (8 words) that front-loads the verb and resource. Every word contributes meaning, with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple filtered list tool given the rich input schema and presence of an output schema. However, it lacks explicit usage guidance relative to siblings and does not clarify the logical combination of filters (AND/OR) beyond the brief phrase. It is minimal but not incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's phrase 'by user ID and/or project ID' adds a minor clarification that both filters can be combined, which is not explicit in the schema's 'Use this or project_id' language. However, it does not add detail about the timestamp parameters, leaving the schema to carry that weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Fetches issues filtered by user ID and/or project ID' clearly specifies a verb (fetches), resource (issues), and the filtering scope. The plural 'issues' distinguishes it from the sibling tool 'get_issue' (singular), and the resource name separates it from 'get_users' and 'get_projects'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instead of the sibling 'get_issue' or when not to use it. It simply states what the tool does without mentioning alternatives or exclusions, leaving the agent to infer usage purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectsGet ProjectsB

Fetches all projects within the Linear organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesKeyword to use to find partial matches on project. Will return projects whose id (e.g. ab5d27fb-e6f5-417b-84a7-91f9aa2a5fc5), name, description, or content contain the given keyword. This is case insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims to fetch 'all projects' but does not disclose that the keyword parameter can filter results. This omission could mislead an agent into expecting an unfiltered list in all cases. No annotations exist to compensate for the lack of behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the verb and resource. It wastes no words, though it omits important details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, output schema present), the description is under-specified. It fails to mention the filtering capability, leading to an incomplete picture. The absence of usage guidance further reduces completeness for an agent deciding when to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides a detailed, 100% description of the keyword parameter, including matching behavior and case insensitivity. The description adds nothing 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetches') and clearly identifies the resource ('all projects within the Linear organization'). It distinguishes itself from sibling tools that operate on different resources (issues, users).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The sibling tools work on different resources, but there is no explicit mention of when to choose get_projects or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usersGet UsersB

Fetches all users within the Linear organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesKeyword to use to find partial matches on users. Will return users whose id (e.g. ab5d27fb-e6f5-417b-84a7-91f9aa2a5fc5), name, displayName, or email contain the given keyword. This is case insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
usersYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety hints (e.g., readOnlyHint), so the description carries full burden. It only states a simple fetch operation, without disclosing pagination, rate limits, or that the keyword parameter is required but nullable to return all users. This lacks the behavioral context needed for safe operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that uses no filler words. It efficiently conveys the core purpose without unnecessary detail, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and detailed parameter schema, the description is minimally sufficient for a simple list tool. However, the required-but-nullable keyword parameter and absence of usage context around filtering could confuse an agent, leaving room for improvement in guiding full invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description covers 100% of the parameter, detailing that keyword performs case-insensitive partial matches on id, name, displayName, or email. The tool description adds no additional parameter meaning, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches all users in the Linear organization with a specific verb ('Fetches') and resource ('users'). This immediately distinguishes it from sibling tools like get_issue and get_projects, which target different entity types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor any exclusions or prerequisites. The description does not mention whether a keyword is needed or how to fetch all users without filtering, leaving the agent to infer usage from the schema.

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.

  1. 4 tool updatesv0.1.0
    • First observedget_issue
    • First observedget_issues
    • First observedget_projects
    • First observedget_users

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct resource and granularity: single issue, list of issues, all users, and all projects. There is no overlap or ambiguity between singular and plural forms.

Naming Consistency5/5

All tools follow the consistent 'get_<resource>' pattern, making the API intuitive and predictable. No mixed conventions or vague verbs.

Tool Count5/5

Four tools is well within the ideal 3-15 range and each tool earns its place by covering the core read operations for issues, users, and projects. The count feels appropriate for a focused read-only server.

Completeness2/5

The tool surface is read-only only, with no create, update, or delete operations for issues or other resources. For a Linear server, there are also missing common resources like teams and cycles, leaving significant gaps for any agent needing to manage workflows.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to Linear's issue tracking system through a standardized Model Context Protocol interface, allowing users to create, update, search, and manage issues, projects, and comments via natural language.
    288
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to interact with Linear for issue tracking and project management through the Model Context Protocol, supporting capabilities like creating issues, searching, managing sprints, and bulk updating statuses.
    5
    -

Latest Blog Posts

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/timescale/tiger-linear-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server