{"_id":"mcp-server-linear","_rev":"7-b2a8ac3370f85c086913e55a2edfc808","name":"mcp-server-linear","dist-tags":{"latest":"1.6.0"},"versions":{"1.2.0":{"name":"mcp-server-linear","version":"1.2.0","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","_id":"mcp-server-linear@1.2.0","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"homepage":"https://github.com/dvcrn/linear-mcp#readme","bugs":{"url":"https://github.com/dvcrn/linear-mcp/issues"},"dist":{"shasum":"22f3ced7788f9f41a2e472cc146222f73c91e565","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.2.0.tgz","fileCount":68,"integrity":"sha512-6PUBzPdpnSN/8P0VMlQskBENXgNFlEXwCWLzADoLJogC2JK+sIbiF7qK66chztfhAYSAaEXUBq+szDjupAC4tA==","signatures":[{"sig":"MEUCIQDC9vOh+b1GdApnQ7Gg9UhlxVtP7ucUP1tUifwIg/LVEAIgYNRTLNK/r8wknIink7Lb62boomK2vwwX/A8l/k6i8Gw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179729},"main":"build/index.js","type":"module","types":"build/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"c82de0bea024d462143fccb6da643a5e76cefc22","private":false,"scripts":{"dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\"","test":"jest","build":"tsc && chmod +x build/index.js","start":"node build/index.js","prepare":"npm run build","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:integration":"jest --testMatch '**/*.integration.test.ts'"},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"repository":{"url":"git+https://github.com/dvcrn/linear-mcp.git","type":"git"},"_npmVersion":"11.0.0","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","directories":{},"_nodeVersion":"23.5.0","dependencies":{"graphql":"^16.10.0","@linear/sdk":"^38.0.0","graphql-tag":"^2.12.6","@modelcontextprotocol/sdk":"^1.4.0","@graphql-typed-document-node/core":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","open":"^10.1.0","dotenv":"^16.4.7","express":"^4.21.2","nodemon":"^3.1.9","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.10","@types/dotenv":"^8.2.3","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-linear_1.2.0_1741426353764_0.6759388073612718","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"mcp-server-linear","version":"1.3.0","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","_id":"mcp-server-linear@1.3.0","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"homepage":"https://github.com/dvcrn/mcp-server-linear#readme","bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"dist":{"shasum":"c67e98eed73d419a8b484c053cb5f57b941c2473","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.3.0.tgz","fileCount":68,"integrity":"sha512-X5fyezxLzzM1oXB9/TF0l2GOqMbvJMuCjz66AHZltwibkhMaAhyB+rG1/DqXdGkveG++tD0CTk91PjhwJiR7/w==","signatures":[{"sig":"MEUCIQDQW01N3HaU6CUlCKl81Jwwghs44dmaUCcm8AquAUpyswIgFCzppZptsaYB2Y5RYEqp1alCvUKPrtTrh2rE3Tc8se8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181629},"main":"build/index.js","type":"module","types":"build/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"4c2dba91d74f934cbc5796a621a7549ce299ea54","private":false,"scripts":{"dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\"","test":"jest","build":"tsc && chmod +x build/index.js","start":"node build/index.js","prepare":"npm run build","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:integration":"jest --testMatch '**/*.integration.test.ts'"},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"repository":{"url":"git+https://github.com/dvcrn/mcp-server-linear.git","type":"git"},"_npmVersion":"11.0.0","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","directories":{},"_nodeVersion":"23.5.0","dependencies":{"graphql":"^16.10.0","@linear/sdk":"^38.0.0","graphql-tag":"^2.12.6","@modelcontextprotocol/sdk":"^1.4.0","@graphql-typed-document-node/core":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","open":"^10.1.0","dotenv":"^16.4.7","express":"^4.21.2","nodemon":"^3.1.9","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.10","@types/dotenv":"^8.2.3","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-linear_1.3.0_1741524078758_0.8155396915556363","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"mcp-server-linear","version":"1.4.0","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","_id":"mcp-server-linear@1.4.0","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"homepage":"https://github.com/dvcrn/mcp-server-linear#readme","bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"dist":{"shasum":"799f5290ee1cb713056c14221476c6773af399be","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.4.0.tgz","fileCount":68,"integrity":"sha512-9iLFo/BuafFxtgmW5TuDs1QI7sXrtTuRgufrooRhB+rL5vopLKrFG10AdB3J8WXNL8IFHYn6/CRLXd4d9LJV7A==","signatures":[{"sig":"MEUCICfWsnv8iwnvnUbeTreA/TrIphyrIyXUlRgFHo+B4BpbAiEA5IQ3+M23tgWcDCUvV2ElF2Uw289lNzokSw2SGUOO3IA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222551},"main":"build/index.js","type":"module","types":"build/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"48ed8c2e75989746db3fa9a25e377e13d8dcf2aa","private":false,"scripts":{"dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\"","test":"jest","build":"tsc && chmod +x build/index.js","start":"node build/index.js","prepare":"npm run build","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:integration":"jest --testMatch '**/*.integration.test.ts'"},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"repository":{"url":"git+https://github.com/dvcrn/mcp-server-linear.git","type":"git"},"_npmVersion":"10.9.2","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","directories":{},"_nodeVersion":"23.9.0","dependencies":{"graphql":"^16.10.0","@linear/sdk":"^38.0.0","graphql-tag":"^2.12.6","@modelcontextprotocol/sdk":"^1.4.0","@graphql-typed-document-node/core":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","open":"^10.1.0","dotenv":"^16.4.7","express":"^4.21.2","nodemon":"^3.1.9","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.10","@types/dotenv":"^8.2.3","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-linear_1.4.0_1742185552254_0.3166327516685232","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"mcp-server-linear","version":"1.4.1","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","_id":"mcp-server-linear@1.4.1","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"homepage":"https://github.com/dvcrn/mcp-server-linear#readme","bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"bin":{"mcp-server-linear":"dist/index.js"},"dist":{"shasum":"4388d54dd4d96752dbce57e7767fa95699202493","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.4.1.tgz","fileCount":68,"integrity":"sha512-OMqrQDNZgQhDEPxow7Fd3YV5I3uT/3VwLeoLbwrxt2h2tRy1Sxf+ciDt4aTrBluJpIzar5vWT64rJSOZUa5Exg==","signatures":[{"sig":"MEYCIQCqEwgv39dsZuNEUi+G0GDdtril/x6h+fLp7lFgXdMP3QIhAJ5DOAb8kucsyiad8Bf7zL/Ag68VOvZK2qYBtevzzsHE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222608},"main":"build/index.js","type":"module","types":"build/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"09b55071a13da1149d2915063bab5d2acc4a643c","private":false,"scripts":{"dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\"","test":"jest","build":"tsc && chmod +x build/index.js","start":"node build/index.js","prepare":"npm run build","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:integration":"jest --testMatch '**/*.integration.test.ts'"},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"repository":{"url":"git+https://github.com/dvcrn/mcp-server-linear.git","type":"git"},"_npmVersion":"10.9.2","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","directories":{},"_nodeVersion":"23.9.0","dependencies":{"graphql":"^16.10.0","@linear/sdk":"^38.0.0","graphql-tag":"^2.12.6","@modelcontextprotocol/sdk":"^1.4.0","@graphql-typed-document-node/core":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","open":"^10.1.0","dotenv":"^16.4.7","express":"^4.21.2","nodemon":"^3.1.9","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.10","@types/dotenv":"^8.2.3","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-linear_1.4.1_1744190092438_0.5210085841474972","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"mcp-server-linear","version":"1.4.2","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","_id":"mcp-server-linear@1.4.2","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"homepage":"https://github.com/dvcrn/mcp-server-linear#readme","bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"bin":{"mcp-server-linear":"build/index.js"},"dist":{"shasum":"6424ae0da59887b0dd817a4b1d180f112d173440","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.4.2.tgz","fileCount":68,"integrity":"sha512-Qy4PpWuwgddHGSznSMTur3/t3dr/Ae9OeYKWHPNnMuriJmatc2nIz2H11fHEiFsjD4mzdy8oTlnzB6pTgFW3Dg==","signatures":[{"sig":"MEQCICNqHdqQa+eLbYruwXz+uBYtYb9Ik2T0s/qWcu45fDvvAiA0hsCRthQaNI9b8VVedG8jcQwJFmeDOrPLZTUIpXjFcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222609},"main":"build/index.js","type":"module","types":"build/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"ae2b801e4cc7ec53f8840dfe84fe5c5bdee80266","private":false,"scripts":{"dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\"","test":"jest","build":"tsc && chmod +x build/index.js","start":"node build/index.js","prepare":"npm run build","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:integration":"jest --testMatch '**/*.integration.test.ts'"},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"repository":{"url":"git+https://github.com/dvcrn/mcp-server-linear.git","type":"git"},"_npmVersion":"10.9.2","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","directories":{},"_nodeVersion":"23.9.0","dependencies":{"graphql":"^16.10.0","@linear/sdk":"^38.0.0","graphql-tag":"^2.12.6","@modelcontextprotocol/sdk":"^1.4.0","@graphql-typed-document-node/core":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","open":"^10.1.0","dotenv":"^16.4.7","express":"^4.21.2","nodemon":"^3.1.9","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.10","@types/dotenv":"^8.2.3","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-linear_1.4.2_1744190413166_0.9873816246260092","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"mcp-server-linear","version":"1.5.0","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","_id":"mcp-server-linear@1.5.0","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"homepage":"https://github.com/dvcrn/mcp-server-linear#readme","bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"bin":{"mcp-server-linear":"build/index.js"},"dist":{"shasum":"7d94e6a6e3049b2bd3625e6c94c98d9d3636ec7d","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.5.0.tgz","fileCount":68,"integrity":"sha512-1XGlD2Vw7Z16mM7wmt+gCbtq+PVtRvuuw5fJqHn0+dZD4jE4nkxn2gKSF5fRXcM0i304Qqm8Xizv1RFqQWXlnw==","signatures":[{"sig":"MEUCIDGJ4TuzL2TefN7Gwmx8DNySkURXZoZLfC9yViKMa8JiAiEA0Utrg3Q5tWUo8+70xrN1gu9LFmFrZLqyOPkd84l9n6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239119},"main":"build/index.js","type":"module","types":"build/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"ff6827764c83e322045c4b311627ae4e6a774ca4","private":false,"scripts":{"dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\"","test":"jest","build":"tsc && chmod +x build/index.js","start":"node build/index.js","prepare":"npm run build","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:integration":"jest --testMatch '**/*.integration.test.ts'"},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"repository":{"url":"git+https://github.com/dvcrn/mcp-server-linear.git","type":"git"},"_npmVersion":"10.9.2","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","directories":{},"_nodeVersion":"23.9.0","dependencies":{"graphql":"^16.10.0","@linear/sdk":"^38.0.0","graphql-tag":"^2.12.6","@modelcontextprotocol/sdk":"^1.4.0","@graphql-typed-document-node/core":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","open":"^10.1.0","dotenv":"^16.4.7","express":"^4.21.2","nodemon":"^3.1.9","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.10.10","@types/dotenv":"^8.2.3","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-linear_1.5.0_1744202545214_0.9039498105983867","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"mcp-server-linear","version":"1.6.0","description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","private":false,"repository":{"type":"git","url":"git+https://github.com/dvcrn/mcp-server-linear.git"},"main":"build/index.js","type":"module","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"bin":{"mcp-server-linear":"build/index.js"},"publishConfig":{"access":"public"},"engines":{"node":">=16.0.0"},"scripts":{"test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:integration":"jest --testMatch '**/*.integration.test.ts'","get-test-tokens":"node --loader ts-node/esm scripts/get-test-tokens.ts","test:oauth":"node --loader ts-node/esm scripts/test-oauth.ts","prepare":"npm run build","build":"tsc && chmod +x build/index.js","start":"node build/index.js","dev":"nodemon --watch src --ext ts --exec \"npm run build && npm start\""},"keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"author":{"name":"ModelContextProtocol"},"license":"MIT","devDependencies":{"@types/dotenv":"^8.2.3","@types/express":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^22.10.10","dotenv":"^16.4.7","express":"^4.21.2","jest":"^29.7.0","nodemon":"^3.1.9","open":"^10.1.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.7.3"},"dependencies":{"@graphql-typed-document-node/core":"^3.2.0","@linear/sdk":"^38.0.0","@modelcontextprotocol/sdk":"^1.4.0","graphql":"^16.10.0","graphql-tag":"^2.12.6"},"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","_id":"mcp-server-linear@1.6.0","gitHead":"135f43f91d55448b4f45fa159949d3066cac9dee","bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"homepage":"https://github.com/dvcrn/mcp-server-linear#readme","_nodeVersion":"23.9.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-U5yZsNOImvL0S1P8BqDOFDKJXxgI8HjEx7fbvGEuS3W/orKIwF/hw+wGYmjT+A/M2UUSbjVTcTkrZ0w4uZmRFw==","shasum":"124c6dfcb4baf525eba9d8e7784e2c95dc7245b0","tarball":"https://registry.npmjs.org/mcp-server-linear/-/mcp-server-linear-1.6.0.tgz","fileCount":68,"unpackedSize":239941,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICixKNMCEHXbOHOzcrXgLloJpxeevth58pBAanUXzksoAiEAn2ydZYFCJf+30G+8xY6wcAUbSZm62+1ZuHtjFAjjYOI="}]},"_npmUser":{"name":"dvcrn","email":"npm@davemail.io"},"directories":{},"maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-linear_1.6.0_1744246075033_0.6521248590938609"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-08T09:32:33.621Z","modified":"2025-04-10T00:47:55.482Z","1.2.0":"2025-03-08T09:32:33.975Z","1.3.0":"2025-03-09T12:41:18.965Z","1.4.0":"2025-03-17T04:25:52.429Z","1.4.1":"2025-04-09T09:14:52.661Z","1.4.2":"2025-04-09T09:20:13.375Z","1.5.0":"2025-04-09T12:42:25.396Z","1.6.0":"2025-04-10T00:47:55.316Z"},"bugs":{"url":"https://github.com/dvcrn/mcp-server-linear/issues"},"author":{"name":"ModelContextProtocol"},"license":"MIT","homepage":"https://github.com/dvcrn/mcp-server-linear#readme","keywords":["linear","mcp","model-context-protocol","cline","issue-tracking","project-management"],"repository":{"type":"git","url":"git+https://github.com/dvcrn/mcp-server-linear.git"},"description":"An MCP server for interacting with Linear's API, providing tools for managing issues, projects, and teams","maintainers":[{"name":"dvcrn","email":"npm@davemail.io"}],"readme":"# Linear MCP Server\n\nAn MCP server for interacting with Linear's API. This server provides a set of tools for managing Linear issues, projects, and teams through Cline.\n\n## Setup Guide\n\n### 1. Get Linear API Token\n\nYou can use either a **Developer Token** or a **Personal API Key**.\n\n**Option 1: Developer Token**\n1. Go to Linear: Workspace Settings > API > OAuth application > Create or select an application (e.g., \"Cline MCP\").\n2. Under \"Developer Token\", click \"Create & copy token\".\n3. Select \"Application\" as the actor and copy the generated token.\n\n**Option 2: Personal API Key**\n1. Go to Linear: Your Personal Settings > API > Personal API Keys.\n2. Click \"Create key\", give it a label (e.g., \"Cline MCP\"), and copy the generated key.\n\n### 2. Configure Cline MCP\n\n1. Open your Cline MCP settings file:\n   - macOS: `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n   - Windows: `%APPDATA%/Code/User/GlobalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n   - Linux: `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`\n\n2. Add the Linear MCP server configuration:\n   ```json\n   {\n     \"mcpServers\": {\n       \"linear\": {\n         \"command\": \"npx\",\n         \"args\": [\"mcp-server-linear\"],\n         \"env\": {\n           \"LINEAR_ACCESS_TOKEN\": \"your_linear_api_token_here\"\n         },\n         \"disabled\": false,\n         \"autoApprove\": []\n       }\n     }\n   }\n   ```\n\nThat's it! The server will be automatically downloaded and run through npx when needed.\n\nIf you use Cline/Roo, you can also simply tell it `install the MCP from https://github.com/dvcrn/mcp-server-linear` and it'll do the rest.\n\n\n## Available Actions\n\nThe server currently supports the following operations:\n\n### Issue Management\n- ✅ Create issues with full field support (title, description, team, project, parent/child relationships, etc.)\n- ✅ Update existing issues (priority, description, etc.)\n- ✅ Delete issues (single or bulk deletion)\n- ✅ Search issues with filtering and by identifier\n- ✅ Associate issues with projects\n- ✅ Create parent/child issue relationships\n- ✅ Comment management (create, update, delete comments)\n- ✅ Comment resolution handling (resolve/unresolve comments)\n- ✅ Create customer needs from attachments\n\n### Project Management\n- ✅ Create projects with associated issues\n- ✅ Get project information\n- ✅ List all projects with optional filtering\n- ✅ Associate issues with projects\n- ✅ Project milestone management (create, update, delete)\n- ✅ List and filter project milestones\n\n### Team Management\n- ✅ Get team information (with states and workflow details)\n- ✅ Access team states and labels\n\n### Authentication\n- ✅ Personal Access Token (PAT) authentication\n- ✅ Secure token storage\n\n### Batch Operations\n- ✅ Bulk issue creation\n- ✅ Bulk issue deletion\n\n### Bulk Updates (In Testing)\n- 🚧 Bulk issue updates (parallel processing implemented, needs testing)\n\n## Features in Development\n\nThe following features are currently being worked on:\n\n### Issue Management\n- 🚧 Complex search filters\n- 🚧 Pagination support for large result sets\n\n### Metadata Operations\n- 🚧 Label management (create/update/assign)\n\n### Project Management\n- ✅ Project milestone management\n- 🚧 Project template support\n- 🚧 Advanced project operations\n\n### Authentication\n- 🚧 OAuth flow with automatic token refresh\n\n### Performance & Security\n- 🚧 Rate limiting\n- 🚧 Detailed logging\n- 🚧 Load testing and optimization\n\n## Parent/Child Issue Relationships\n\nThe server supports creating and managing hierarchical relationships between issues:\n\n### Creating Sub-issues\nYou can create sub-issues by specifying a parent issue's UUID when creating a new issue:\n\n```json\n{\n  \"title\": \"Sub-task Implementation\",\n  \"description\": \"Implement this specific part of the parent task\",\n  \"teamId\": \"team_uuid\",\n  \"parentId\": \"parent_issue_uuid\"\n}\n```\n\nNote: The parentId must be the UUID of the parent issue, not the issue identifier (e.g., use the UUID, not \"ENG-123\").\n\n## Using Multiple Linear Workspaces\n\nYou can connect to multiple Linear workspaces by adding the Linear MCP server multiple times with different `TOOL_PREFIX` values. This allows you to work with separate Linear workspaces within the same Cline environment.\n\n### Configuration Example\n\n```json\n{\n  \"mcpServers\": {\n    \"company1-linear\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-server-linear\"],\n      \"env\": {\n        \"LINEAR_ACCESS_TOKEN\": \"your_company1_linear_token_here\",\n        \"TOOL_PREFIX\": \"company1\"\n      },\n      \"disabled\": false,\n      \"autoApprove\": []\n    },\n    \"company2-linear\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-server-linear\"],\n      \"env\": {\n        \"LINEAR_ACCESS_TOKEN\": \"your_company2_linear_token_here\",\n        \"TOOL_PREFIX\": \"company2\"\n      },\n      \"disabled\": false,\n      \"autoApprove\": []\n    },\n    \"company3-linear\": {\n      \"command\": \"npx\",\n      \"args\": [\"mcp-server-linear\"],\n      \"env\": {\n        \"LINEAR_ACCESS_TOKEN\": \"your_company3_linear_token_here\",\n        \"TOOL_PREFIX\": \"company3\"\n      },\n      \"disabled\": false,\n      \"autoApprove\": []\n    }\n  }\n}\n```\n\n### How It Works\n\nWhen you set a `TOOL_PREFIX` value:\n\n1. All tool names are prefixed with it (e.g., `company1_linear_create_issue`)\n2. Tool descriptions include the prefix (e.g., \"For 'company1' Linear workspace: Create a new issue\")\n\nThis makes it clear which workspace each tool is operating on and prevents conflicts between different Linear instances.\n\n## Contributing\n\nIf you want to contribute to the development of this MCP server, follow these steps:\n\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n3. Copy `.env.example` to `.env`:\n   ```bash\n   cp .env.example .env\n   ```\n4. Add your Linear API token to `.env`:\n   ```\n   LINEAR_ACCESS_TOKEN=your_personal_access_token\n   ```\n\n### Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Run tests\nnpm test\n\n# Build and run the server locally\nnpm run build\nnpm start\n\n# Or use development mode with auto-reload\nnpm run dev\n```\n\n### Integration Testing\n\nIntegration tests verify that authentication and API calls work correctly:\n\n1. Set up authentication in `.env` (PAT recommended for testing)\n2. Run integration tests:\n   ```bash\n   npm run test:integration\n   ```\n\nFor OAuth testing:\n1. Configure OAuth credentials in `.env`:\n   ```\n   LINEAR_CLIENT_ID=your_oauth_client_id\n   LINEAR_CLIENT_SECRET=your_oauth_client_secret\n   LINEAR_REDIRECT_URI=http://localhost:3000/callback\n   ```\n2. Remove `.skip` from OAuth tests in `src/__tests__/auth.integration.test.ts`\n3. Run integration tests\n","readmeFilename":"README.md"}