{"id":28629736,"url":"https://github.com/touchlab/linear-mcp-integration","last_synced_at":"2025-06-12T12:13:25.415Z","repository":{"id":289216382,"uuid":"970506664","full_name":"touchlab/linear-mcp-integration","owner":"touchlab","description":"In progress","archived":false,"fork":false,"pushed_at":"2025-04-22T06:23:21.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-22T07:12:30.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/touchlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-22T05:51:47.000Z","updated_at":"2025-04-22T06:23:25.000Z","dependencies_parsed_at":"2025-04-22T07:12:35.606Z","dependency_job_id":"6d07006d-c0f9-4e08-9e37-6efa311c811f","html_url":"https://github.com/touchlab/linear-mcp-integration","commit_stats":null,"previous_names":["touchlab/linear-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/touchlab/linear-mcp-integration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Flinear-mcp-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Flinear-mcp-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Flinear-mcp-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Flinear-mcp-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/touchlab","download_url":"https://codeload.github.com/touchlab/linear-mcp-integration/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touchlab%2Flinear-mcp-integration/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259462578,"owners_count":22861514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-12T12:13:24.335Z","updated_at":"2025-06-12T12:13:25.394Z","avatar_url":"https://github.com/touchlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linear MCP Server\n\nThis project provides an MCP server for interacting with the Linear API, enabling integration with MCP clients like Cline, IDE extensions, and other AI tools. It provides tools for managing Linear issues, projects, and teams via the Model Context Protocol.\n\nThis package is available on npm: [@touchlab/linear-mcp-integration](https://www.npmjs.com/package/@touchlab/linear-mcp-integration)\n\n**Current Status:**\n*   Personal Access Token (PAT) authentication is implemented and tested.\n*   Core functionality for managing issues, projects, teams, and users via PAT has been tested.\n*   OAuth 2.0 flow exists in the code but is **untested and likely non-functional**.\n\n## Attribution\n\nThis project is based on [cline/linear-mcp](https://github.com/cline/linear-mcp). The logic is largely the same, but key parts of the internals have been modified after testing.\n\n## [NPM Package](https://www.npmjs.com/package/@touchlab/linear-mcp-integration)\n\n## Setup Guide\n\n### 1. Authentication (Required)\n\nThis server **requires** a **Linear Personal Access Token (PAT)**.\n\n1.  Go to your Linear workspace settings: **Account \u003e Security \u0026 access**.\n\n![Step1](./photos/Step1.png)\n\n2.  Under the **Personal API keys** section, click **New API key**.\n\n![Step2](./photos/Step2.png)\n\n3.  Give the key a descriptive label (e.g., \"MCP Server Key\"). \nFor Permissions select **Full Access**. \nFor team access select **All teams you have access to**\n\n![Step3](./photos/Step3.png)\n\n4.  Copy the generated key immediately (it won't be shown again).\n\n![Step4](./photos/Step4.png)\n\n5.  You will need to provide this key to the server using the `LINEAR_ACCESS_TOKEN` environment variable when running it (see Step 2).\n\n### 2. Running the Server\n\nYou can run the server directly using `npx` without cloning the repository, or install it globally.\n\n**Option A: Using `npx` (Recommended)**\n\nThis method runs the server directly from the npm registry without global installation. Configure your MCP client (like Cline, Cursor, Claude, etc) to run the server using `npx` and pass the PAT via environment variables:\n\n```json\n// Example MCP Client Configuration (e.g., Cline, Cursor, Claude)\n{\n  \"mcpServers\": {\n    \"linear\": {\n      \"command\": \"npx\", \n      \"args\": [\"@touchlab/linear-mcp-integration\"],\n      \"env\": {\n        \"LINEAR_ACCESS_TOKEN\": \"lin_api_your_personal_access_token\"\n      }\n    }\n  }\n}\n```\n\n**Option B: Global Installation (Less Common)**\n\nIf you prefer, you can install the package globally:\n\n```bash\nnpm install -g @touchlab/linear-mcp-integration\n```\n\nThen, you can run it directly from your terminal (you still need to provide the environment variable):\n\n```bash\nLINEAR_ACCESS_TOKEN=YOUR_PAT\n```\n\n*(Note: Global installation is generally less preferred for server processes unless you have a specific need.)*\n\n### 3. Authentication Methods Details\n\n*   **Personal Access Token (PAT) - Required \u0026 Tested:** This is the primary and tested authentication method. Follow the steps in Section 1.\n*   **OAuth Flow (Untested / Non-Functional):** The code includes handlers for OAuth (`linear_auth`, `linear_auth_callback`), but this flow has **not been tested** and requires further development to be considered functional. Contributions welcome!\n\n## Available Tools\n\nThe server currently supports the following tools (tested with PAT authentication unless noted):\n\n*   **Authentication (OAuth - Untested):**\n    *   `linear_auth`: Initiate OAuth flow (Untested)\n    *   `linear_auth_callback`: Handle OAuth callback (Untested)\n*   **Issues:**\n    *   `linear_create_issue`: Create a single issue.\n    *   `linear_create_issues`: Create multiple issues in bulk.\n    *   `linear_search_issues`: Search issues (filter by title currently).\n    *   `linear_delete_issue`: Delete a single issue.\n*   **Projects:**\n    *   `linear_create_project_with_issues`: Create a project and associated issues.\n    *   `linear_get_project`: Get project details by ID.\n    *   `linear_search_projects`: Search projects by *exact* name match.\n*   **Teams:**\n    *   `linear_get_teams`: Get details for all teams.\n*   **Users:**\n    *   `linear_get_user`: Get information about the authenticated user.\n\n*(Note: Bulk delete and bulk update functionality has been removed.)*\n\n## Development (For Contributors)\n\nIf you want to run the MCP server locally first run these commands:\n\n```bash\n# Clone the repository\n# git clone https://github.com/touchlab/linear-mcp-integration.git\n# cd linear-mcp-integration\n\n# Install dependencies\nnpm install\n\n# Build the server\nnpm run build\n\n# Start the server (requires LINEAR_ACCESS_TOKEN in .env or environment)\nnpm start\n```\n\nThen update your MCP configuration to point to the built `index.js`.\n\n```json\n// Example MCP Client Configuration (e.g., Cline, Cursor, Claude)\n{\n  \"mcpServers\": {\n    \"linear\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/your/linear-mcp-integration/build/index.js\"],\n      \"env\": {\n        \"LINEAR_ACCESS_TOKEN\": \"lin_api_your_personal_access_token\"\n      }\n    }\n  }\n}    \n```\n\nYour client should now be able to access your MCP server.\n\n## Contributing\n\nThis fork of [Cline's version](https://github.com/cline/linear-mcp) is maintained by [Touchlab](https://github.com/touchlab).\n\n**Contributions are welcome, especially for improving or fully implementing the OAuth 2.0 flow.** Please feel free to open issues or pull requests on the [touchlab/linear-mcp-integration](https://github.com/touchlab/linear-mcp-integration) repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouchlab%2Flinear-mcp-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftouchlab%2Flinear-mcp-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouchlab%2Flinear-mcp-integration/lists"}