# Connect Linear to your AI agent

> Yes — ClawLink is a hosted Linear MCP server. 32 tools your agent can call from chat, with one-click hosted OAuth and nothing to run locally.

Web version: https://claw-link.dev/hub/linear

ClawLink hosts a managed Linear MCP server that exposes 32 tools to your AI agent. You connect Linear in one click, and your agent can read, create, and update Linear data from chat without you building or running a local MCP server.

## Quick facts

- 32 tools callable from chat
- One-click hosted OAuth
- Works with OpenClaw, Hermes, Claude Code, Cursor, Codex, and any MCP client
- No local server or config files

## Overview

The usual path is: build auth, handle token refresh, wire up the tools. With ClawLink you connect Linear once and start using the real actions from the agent.

## Setup

Linear uses OAuth. You connect it in the browser: click Connect, sign in, approve. ClawLink stores the token and refreshes it on its own. You never touch a key or wire up a redirect URL.

Authentication: hosted OAuth

## What you can do

- **Work without tab-switching** — Pull up Linear issues, repos, tasks, or alerts without leaving the conversation.
- **Ship the routine stuff faster** — The agent grabs Linear context, drafts the next step, and runs the common maintenance actions.
- **Debug with real data** — Ask for the current state from Linear before the agent suggests a fix. No guessing.

## Linear tools

32 Linear tools, ready the moment you connect.

- `linear_create_attachment` — Creates a new attachment and associates it with a specific, existing Linear issue.
- `linear_create_comment_reaction` — Tool to add a reaction to an existing Linear comment. Use when you want to programmatically react to a comment on an issue.
- `linear_create_linear_comment` — Creates a new comment on a specified Linear issue. This action modifies shared workspace data and is not reversible — confirm the target issue and comment content before executing.
- `linear_create_linear_issue` — Creates a new issue in a specified Linear project and team, requiring team_id and title, and allowing optional properties like description, assignee, state, priority, cycle, and due date. All UUID parameters (state_id, assignee_id, cycle_id, label_ids, project_id) must belong to the same team as team_id. The created issue's id is returned in data.id — capture it for use as parent_id in sub-issues or follow-up operations. No template_id field exists; expand templates manually into title and description before calling.
- `linear_create_linear_issue_relation` — Create a relationship between two Linear issues using the issueRelationCreate mutation. Use this to establish connections like 'blocks', 'duplicate', or 'related' between issues.
- `linear_create_linear_label` — Creates a new label in Linear for a specified team, used to categorize and organize issues. Label names must be unique within each team. If a label with the same name already exists, the existing label will be returned. Both new and existing labels return the same object structure; check the label's `createdAt` or compare IDs to determine if creation occurred.
- `linear_create_linear_project` — Creates a new Linear project with specified name and team associations.
- `linear_create_project_milestone` — Tool to create a project milestone in Linear with a name and optional target date and sort order. Use when you need to add milestones to track progress within a project.
- `linear_create_project_update` — Tool to create a project status update post for a Linear project. Use when you need to post progress updates, status reports, or announcements for a project.
- `linear_get_attachment` — Downloads a specific attachment from a Linear issue; the `file_name` must include the correct file extension.
- `linear_get_current_user` — Gets the currently authenticated user's ID, name, email, and other profile information — this is the account behind the API token, which may be a bot or service account rather than a human user. Use the returned `id` field (nested under `data.viewer`) for downstream Linear operations requiring user ID filtering. To search or compare other workspace members, use LINEAR_LIST_LINEAR_USERS instead.
- `linear_get_cycles_by_team_id` — Retrieves all cycles for a specified Linear team ID; cycles are time-boxed work periods (like
- `linear_get_issue_defaults` — Fetches a Linear team's default issue estimate and state, useful for pre-filling new issue forms
- `linear_get_linear_issue` — Retrieves an existing Linear issue's comprehensive details, including id, identifier, title
- `linear_get_linear_project` — Retrieves a single Linear project by its unique identifier
- `linear_list_issue_drafts` — List issue drafts
- `linear_list_issues_by_team_id` — List all issues for a specific Linear team, scoped by team ID
- `linear_list_linear_cycles` — Retrieves all cycles (time-boxed sprint iterations) org-wide from the Linear account; no
- `linear_list_linear_issues` — Lists non-archived Linear issues; if project_id is not specified, issues from all accessible
- `linear_list_linear_labels` — Retrieves labels from Linear
- `linear_list_linear_projects` — Retrieves all projects from the Linear account
- `linear_list_linear_states` — Retrieves all workflow states for a specified team in Linear, representing the stages an issue
- `linear_list_linear_teams` — Retrieves all teams with their members and projects
- `linear_list_linear_users` — Lists all workspace users (not team-scoped) with their IDs, names, emails, and active status
- `linear_search_issues` — Search Linear issues using full-text search across identifier, title, and description
- `linear_update_issue` — Updates an existing Linear issue using its `issue_id`; requires at least one other attribute
- `linear_update_linear_comment` — Update an existing Linear comment's body text
- `linear_update_linear_project` — Update an existing Linear project
- `linear_remove_issue_label` — Removes a specified label from an existing Linear issue using their IDs; successful even if the
- `linear_remove_reaction` — Remove a reaction on a comment

## Example prompts

- **Create attachment:** Create it in Linear. Confirm the key fields with me before you finish.
- **Create comment reaction:** Create it in Linear. Confirm the key fields with me before you finish.
- **Create linear comment:** Create it in Linear. Confirm the key fields with me before you finish.
- **Create linear issue:** Create it in Linear. Confirm the key fields with me before you finish.

## ClawLink vs. building it yourself

| | Manual | ClawLink |
|---|---|---|
| Connection | Build it yourself. You register a developer app with Linear, set up redirect URLs, handle the consent screen, store and refresh access tokens, and redo the wiring when scopes change. | Hosted hosted OAuth. Connect once in the browser. ClawLink owns the lifecycle. |
| Maintenance | Token refresh, permission debugging, env config, every edge case. All yours. | ClawLink handles the plumbing. You focus on the workflow. |
| Time to first call | Days to weeks. Auth, storage, tool wiring, testing. Then the agent can act. | About two minutes from sign-up to the agent calling Linear. |

## FAQ

### How do I connect Linear to my AI agent?

Install ClawLink, open the dashboard, click Connect next to Linear, and finish the hosted OAuth flow. Your agent can call Linear from the next message. Two minutes, total.

### Is there a Linear MCP server I can use?

Yes. ClawLink exposes Linear as 32 tools your agent calls through a hosted MCP-compatible runtime. You don't run a local server or edit a config file. The tools are there the moment you connect.

### Do I need Linear API credentials?

No separate API key. You sign in to Linear through the normal OAuth flow and ClawLink handles the token after that.

### How much does it cost?

Your first integration is free, plus a 7-day trial of the full catalog. Paid plans unlock the rest of the library.

### Can I set this up from the terminal instead of the dashboard?

Yes. Run npx -y @useclawlink/cli login, then npx -y @useclawlink/cli connect linear. The first opens a browser to sign in to ClawLink. The second opens a browser to authorize Linear. No API keys to create. Works with OpenClaw, Hermes, Claude Code, Cursor, Codex, and any agent that runs shell commands.
