Release vscode extension patch (#1229)#1230
Conversation
🦋 Changeset detectedLatest commit: 674d1f6 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
WalkthroughUpdates MCP server invocation from local Node script to NPX-based execution and adjusts bundled server path to dist/mcp-server.js. Aligns configuration, extension client resolution, and docs with the new entrypoint. Adds a patch-level changeset noting a fix for MCP not connecting to the new Taskmaster version. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant VSCode Ext as VS Code Extension
participant MCP Proc as MCP Server (task-master-ai)
participant NPX as NPX Resolver
User->>VSCode Ext: Start MCP integration
VSCode Ext->>NPX: npx -y task-master-ai
NPX-->>VSCode Ext: Resolve & execute dist/mcp-server.js
activate MCP Proc
VSCode Ext->>MCP Proc: Connect via MCP protocol
MCP Proc-->>VSCode Ext: Ready/Capabilities
note over VSCode Ext,MCP Proc: New path: dist/mcp-server.js (prebuilt)
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
apps/extension/src/utils/mcpClient.ts (2)
67-70: Avoid shadowing imports; use the already imported path moduleYou re-require 'path' despite importing it at the top, shadowing the import. Drop the local require.
- const fs = require('fs'); - const path = require('path'); + const fs = require('fs');
449-455: Minor: Rename loop variable to avoid shadowing and add Windows npx fallbackThe loop variable
pathshadows the imported module name. Also consider Windows (npx.cmd) paths.- for (const path of npxPaths) { + const winPaths = process.platform === 'win32' ? [ + 'C:\\\\Program Files\\\\nodejs\\\\npx.cmd', + 'C:\\\\Program Files (x86)\\\\nodejs\\\\npx.cmd', + 'npx' + ] : []; + for (const candidate of [...npxPaths, ...winPaths]) { try { - if (path === 'npx' || fs.existsSync(path)) { - command = path; - logger.log(`✅ Using npx at: ${path}`); + if (candidate === 'npx' || fs.existsSync(candidate)) { + command = candidate; + logger.log(`✅ Using npx at: ${candidate}`); break; } } catch (error) { // Continue to next path } }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (5)
.changeset/smart-foxes-sit.md(1 hunks).cursor/mcp.json(1 hunks)apps/docs/getting-started/quick-start/configuration-quick.mdx(1 hunks)apps/extension/src/utils/mcpClient.ts(1 hunks)docs/mcp-provider-guide.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
{.env,.cursor/mcp.json}
📄 CodeRabbit inference engine (.cursor/rules/dev_workflow.mdc)
Store sensitive API keys and specific endpoint URLs in the
.envfile in the project root for CLI usage, or in theenvsection of.cursor/mcp.jsonfor MCP/Cursor integration. Do not store non-API key settings in these files.Store API keys only in
.env(for CLI, loaded bydotenvinscripts/dev.js) or.cursor/mcp.json(for MCP, accessed viasession.env).Set API keys for AI providers (e.g., ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.) in your .env file in the project root (for CLI use) or within the env section of your .cursor/mcp.json file (for MCP/Cursor integration).
Files:
.cursor/mcp.json
.cursor/mcp.json
📄 CodeRabbit inference engine (.cursor/rules/taskmaster.mdc)
When using MCP/Cursor integration, ensure that the required API keys are present in the env section of .cursor/mcp.json.
Files:
.cursor/mcp.json
.changeset/*.md
📄 CodeRabbit inference engine (.cursor/rules/changeset.mdc)
.changeset/*.md: When runningnpm run changesetornpx changeset add, provide a concise summary of the changes for theCHANGELOG.mdin imperative mood, typically a single line, and not a detailed Git commit message.
The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Do not use your detailed Git commit message body as the changeset summary.
Files:
.changeset/smart-foxes-sit.md
.changeset/*
📄 CodeRabbit inference engine (.cursor/rules/new_features.mdc)
Create appropriate changesets for new features, use semantic versioning, include tagged system information in release notes, and document breaking changes if any.
Files:
.changeset/smart-foxes-sit.md
docs/**/*
📄 CodeRabbit inference engine (.cursor/rules/new_features.mdc)
Add feature documentation to '/docs' folder, include tagged system usage examples, update command reference documentation, and provide migration notes if relevant.
Files:
docs/mcp-provider-guide.md
🧠 Learnings (25)
📓 Common learnings
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/AGENTS.md:0-0
Timestamp: 2025-09-22T16:42:54.285Z
Learning: Applies to public/assets/**/.mcp.json : Configure the Task Master MCP server in .mcp.json under mcpServers.task-master-ai with command npx and the listed env keys
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/architecture.mdc:0-0
Timestamp: 2025-07-18T17:07:39.336Z
Learning: Applies to mcp-server/src/tools/*.js : MCP server tools in mcp-server/src/tools/*.js must have their execute methods wrapped with the withNormalizedProjectRoot higher-order function from tools/utils.js to ensure consistent path handling.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Create direct function wrappers in 'mcp-server/src/core/direct-functions/' for MCP tool implementation, following silent mode patterns and using findTasksJsonPath for consistent path resolution.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use path.join() instead of string concatenation for file paths, and follow established file naming conventions (e.g., 'task_001.txt') in direct functions.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.
📚 Learning: 2025-07-17T21:33:57.585Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-09-22T16:42:54.285Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/AGENTS.md:0-0
Timestamp: 2025-09-22T16:42:54.285Z
Learning: Applies to public/assets/**/.mcp.json : Configure the Task Master MCP server in .mcp.json under mcpServers.task-master-ai with command npx and the listed env keys
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:12:57.903Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Create direct function wrappers in 'mcp-server/src/core/direct-functions/' for MCP tool implementation, following silent mode patterns and using findTasksJsonPath for consistent path resolution.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use path.join() instead of string concatenation for file paths, and follow established file naming conventions (e.g., 'task_001.txt') in direct functions.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:06:04.909Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_providers.mdc:0-0
Timestamp: 2025-07-18T17:06:04.909Z
Learning: Applies to .cursor/mcp.json.example : Add the new PROVIDER_API_KEY with its placeholder to the env section for taskmaster-ai in .cursor/mcp.json.example.
Applied to files:
.cursor/mcp.jsondocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-31T22:08:16.039Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file; always use the provided CLI or MCP tools for configuration changes.
Applied to files:
.cursor/mcp.jsondocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:18:17.759Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-31T22:08:16.039Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Applied to files:
.cursor/mcp.jsondocs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:07:39.336Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/architecture.mdc:0-0
Timestamp: 2025-07-18T17:07:39.336Z
Learning: Applies to mcp-server/src/tools/*.js : MCP server tools in mcp-server/src/tools/*.js must have their execute methods wrapped with the withNormalizedProjectRoot higher-order function from tools/utils.js to ensure consistent path handling.
Applied to files:
.cursor/mcp.jsonapps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-31T22:08:16.039Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : All other Taskmaster settings (model choice, max tokens, temperature, log level, custom endpoints) are managed in .taskmaster/config.json via the task-master models command or models MCP tool.
Applied to files:
.cursor/mcp.json
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: If an MCP tool fails with unclear errors (like JSON parsing failures), run the equivalent task-master CLI command in the terminal to get more detailed error messages.
Applied to files:
.cursor/mcp.jsonapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use kebab-case for all file names in mcp-server/src/tools/ and mcp-server/src/core/direct-functions/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:14:54.131Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/telemetry.mdc:0-0
Timestamp: 2025-07-18T17:14:54.131Z
Learning: Applies to mcp-server/src/tools/**/*.js : MCP tool files in mcp-server/src/tools/ must call the corresponding direct function wrapper and pass the result to handleApiResult(result, log) from mcp-server/src/tools/utils.js, ensuring telemetryData is included in the final MCP response.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use camelCase with Direct suffix for direct function implementations in mcp-server/src/core/direct-functions/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : The *Direct function is responsible for finding the exact tasks.json path using findTasksJsonPath, relying on the projectRoot passed in args.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-07-18T17:18:17.759Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/core/utils/path-utils.js : Call `findTasksJsonPath(args, log)` from within direct function wrappers in `mcp-server/src/core/direct-functions/` to get the absolute path to the relevant `tasks.json`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: 2025-09-22T16:42:10.070Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/.windsurfrules:0-0
Timestamp: 2025-09-22T16:42:10.070Z
Learning: Use the task-master CLI as the primary interface instead of node scripts/dev.js; install globally with npm -g or use npx; all commands accept the same options and include additional commands like init
Applied to files:
docs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:10:12.881Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.
Applied to files:
docs/mcp-provider-guide.mdapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:06:57.833Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_services.mdc:0-0
Timestamp: 2025-07-18T17:06:57.833Z
Learning: Applies to scripts/modules/task-manager/*.js : Do not initialize AI clients (Anthropic, Perplexity, etc.) directly within core logic (`task-manager/`) or MCP direct functions.
Applied to files:
apps/docs/getting-started/quick-start/configuration-quick.mdx
🪛 markdownlint-cli2 (0.18.1)
.changeset/smart-foxes-sit.md
5-5: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: Test
- GitHub Check: build
- GitHub Check: typecheck
- GitHub Check: Test
- GitHub Check: update-docs
🔇 Additional comments (2)
docs/mcp-provider-guide.md (1)
454-455: LGTM: VS Code example now uses NPXThis matches the recommended startup path and the rest of the docs. Ensure the root .cursor/mcp.json is updated similarly (see separate comment).
apps/docs/getting-started/quick-start/configuration-quick.mdx (1)
21-22: LGTM: Switch to NPX for MCP startupThis matches current guidance and reduces local build coupling. Please ensure the sample .cursor/mcp.json in the repo mirrors this change.
| "extension": patch | ||
| --- | ||
|
|
||
| Fix MCP not connecting to new Taskmaster version |
There was a problem hiding this comment.
🧩 Analysis chain
Ensure correct package scope and tighten the summary
- Verify the package name "extension" matches the publishable package in this repo; if the intention is to ship the VS Code extension only, this is fine. If MCP server changes require a publish too, add a changeset for "task-master-ai" per repo convention.
- Make the summary imperative and align brand spelling ("Task Master").
Run to confirm the package name and whether "extension" exists:
Apply this summary tweak:
-Fix MCP not connecting to new Taskmaster version
+Fix MCP connection to new Task Master builds🏁 Script executed:
#!/bin/bash
# List all package names and check for an "extension" package
fd -t f package.json | xargs -I{} jq -r '.name + " :: " + input_filename' {} | sed 's# :: ./##'Length of output: 232
Update changeset to target task-master-ai and tighten summary
In .changeset/smart-foxes-sit.md, update the package and summary:
-"extension": patch
+"task-master-ai": patch
---
-Fix MCP not connecting to new Taskmaster version
+Fix MCP connection to new Task Master builds📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "extension": patch | |
| --- | |
| Fix MCP not connecting to new Taskmaster version | |
| "task-master-ai": patch | |
| --- | |
| Fix MCP connection to new Task Master builds |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
5-5: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
🤖 Prompt for AI Agents
In .changeset/smart-foxes-sit.md around lines 2 to 5, update the changeset
header to target the task-master-ai package (replace the current "extension":
patch line with an entry for "task-master-ai": patch) and tighten the summary
line to a concise description (e.g., "Fix MCP connection to new Taskmaster
version") so the file targets the correct package and uses a shorter, clearer
summary.
| "task-master-ai": { | ||
| "command": "node", | ||
| "args": ["./mcp-server/server.js"], | ||
| "args": ["./dist/mcp-server.js"], |
There was a problem hiding this comment.
Make .cursor/mcp.json use NPX to match docs and avoid local dist dependency
Using node ./dist/mcp-server.js requires a local build; docs now recommend npx. Align config to reduce setup friction.
- "command": "node",
- "args": ["./dist/mcp-server.js"],
+ "command": "npx",
+ "args": ["-y", "task-master-ai"],📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "args": ["./dist/mcp-server.js"], | |
| "command": "npx", | |
| "args": ["-y", "task-master-ai"], |
🤖 Prompt for AI Agents
In .cursor/mcp.json around line 5, the args value currently runs the built local
file ("./dist/mcp-server.js") which forces a local build; update it to invoke
the published package via npx to match docs and avoid that dependency — replace
the args array to call npx with the package entry (for example use ["npx",
"mcp-server"] or the documented package name) so the cursor config runs the
remote binary instead of ./dist, and adjust any required flags (like --yes) per
your docs.
| const mcpServerPath = path.resolve( | ||
| path.dirname(taskMasterPath), | ||
| 'mcp-server/server.js' | ||
| './dist/mcp-server.js' | ||
| ); |
There was a problem hiding this comment.
Critical: Incorrect dist path resolution (dist/dist/…)
require.resolve('task-master-ai') usually resolves to dist/index.js; joining ./dist/mcp-server.js from that dirname yields dist/dist/mcp-server.js. Resolve from the package root (package.json) instead.
- const taskMasterPath = require.resolve('task-master-ai');
- const mcpServerPath = path.resolve(
- path.dirname(taskMasterPath),
- './dist/mcp-server.js'
- );
+ const pkgRoot = path.dirname(require.resolve('task-master-ai/package.json'));
+ const mcpServerPath = path.join(pkgRoot, 'dist', 'mcp-server.js');📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const mcpServerPath = path.resolve( | |
| path.dirname(taskMasterPath), | |
| 'mcp-server/server.js' | |
| './dist/mcp-server.js' | |
| ); | |
| const pkgRoot = path.dirname(require.resolve('task-master-ai/package.json')); | |
| const mcpServerPath = path.join(pkgRoot, 'dist', 'mcp-server.js'); |
🤖 Prompt for AI Agents
In apps/extension/src/utils/mcpClient.ts around lines 409-412, the current
resolution uses the dirname of require.resolve('task-master-ai') which produces
dist/dist/mcp-server.js; instead resolve the package root by resolving
'task-master-ai/package.json' and use its directory as the base, then join
'dist/mcp-server.js' from that package root. Replace the existing path
resolution with logic that calls require.resolve('task-master-ai/package.json'),
takes its dirname, and builds the path to dist/mcp-server.js from there (with
appropriate error handling if resolution fails).
What type of PR is this?
Description
Related Issues
How to Test This
# Example commands or stepsExpected result:
Contributor Checklist
npm run changesetnpm testnpm run format-check(ornpm run formatto fix)Changelog Entry
For Maintainers
Summary by CodeRabbit
Bug Fixes
Documentation
Chores