fix: update MCP config paths in various files#1229
Conversation
🦋 Changeset detectedLatest commit: c7353d5 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 how the MCP server is launched: internal configs switch to the built dist entry, and user-facing docs switch to using npx task-master-ai. The extension’s MCP client checks for ./dist/mcp-server.js and otherwise uses npx. A changeset records a patch: “Fix MCP not connecting to new Taskmaster version.” Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Extension
participant FS as Filesystem
participant MCP as MCP Server
User->>Extension: Start MCP
rect rgba(230,245,255,0.6)
note right of Extension: Determine launch method
Extension->>FS: Check ./dist/mcp-server.js exists
alt dist entry exists
Extension->>MCP: Launch node ./dist/mcp-server.js
else fallback
Extension->>MCP: Launch npx -y task-master-ai
end
end
MCP-->>Extension: Ready/connection established
Extension-->>User: MCP connected
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)
441-459: Avoid shadowing 'path' and improve npx resolution (Windows support).The loop variable named
pathshadows the imported module; also, add common Windows locations for npx.Apply:
- for (const path of npxPaths) { + for (const candidate of npxPaths) { 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 } }And extend candidates:
const npxPaths = [ '/opt/homebrew/bin/npx', '/usr/local/bin/npx', '/usr/bin/npx', + 'C:\\\\Program Files\\\\nodejs\\\\npx.cmd', + 'C:\\\\Program Files (x86)\\\\nodejs\\\\npx.cmd', 'npx' ];
68-70: Use existing imports instead of re‑requiring 'path'.
const path = require('path')shadows the top‑level import. Drop the re‑require and reuse the imported module.Apply:
- const fs = require('fs'); - const path = require('path'); + const fs = require('fs');
📜 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)
.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
{.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
🧠 Learnings (30)
📓 Common learnings
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: 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: 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/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to scripts/modules/** : When using the MCP server, restart it if core logic in `scripts/modules` or MCP tool/direct function definitions change.
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/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`).
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/.
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: 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-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:
apps/docs/getting-started/quick-start/configuration-quick.mdxapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdx.changeset/smart-foxes-sit.mdapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdxdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdxdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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: Applies to .taskmaster/config.json : Do not manually edit `.taskmaster/config.json` unless you are certain of the changes; use the `task-master models` command or `models` MCP tool for configuration.
Applied to files:
apps/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:
apps/docs/getting-started/quick-start/configuration-quick.mdxapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdxdocs/mcp-provider-guide.md
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdxapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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
📚 Learning: 2025-07-18T17:10:53.657Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
Applied to files:
apps/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: 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:
apps/docs/getting-started/quick-start/configuration-quick.mdx.cursor/mcp.json
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdxdocs/mcp-provider-guide.md
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdxapps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdx.cursor/mcp.json
📚 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:
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 snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
apps/extension/src/utils/mcpClient.tsdocs/mcp-provider-guide.md.cursor/mcp.json
📚 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:
apps/extension/src/utils/mcpClient.ts.cursor/mcp.json
📚 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.tsdocs/mcp-provider-guide.md
📚 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/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:
apps/extension/src/utils/mcpClient.ts.cursor/mcp.json
📚 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 {scripts/modules/utils.js,mcp-server/src/core/utils/path-utils.js,mcp-server/src/tools/utils.js} : Keep utilities relevant to their location, export all utility functions in a single statement per file, group related exports together, export configuration constants, do not use default exports, and do not create circular dependencies.
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/tools/utils.js : Use `handleApiResult`, `createContentResponse`, `createErrorResponse`, `getCachedOrExecute`, and `processMCPResponseData` in `mcp-server/src/tools/utils.js` to standardize MCP tool responses and caching.
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-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:
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:
docs/mcp-provider-guide.md
📚 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: Applies to scripts/modules/** : When using the MCP server, restart it if core logic in `scripts/modules` or MCP tool/direct function definitions change.
Applied to files:
.cursor/mcp.json
📚 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 .cursor/mcp.json : When using MCP/Cursor integration, ensure that the required API keys are present in the env section of .cursor/mcp.json.
Applied to files:
.cursor/mcp.json
📚 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
🪛 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). (3)
- GitHub Check: Test
- GitHub Check: typecheck
- GitHub Check: build
🔇 Additional comments (3)
docs/mcp-provider-guide.md (1)
454-456: LGTM: switch to npx invocation.Matches the recommended startup path and the extension fallback.
apps/docs/getting-started/quick-start/configuration-quick.mdx (1)
21-23: LGTM: npx in mcp.json example.Consistent with provider guide and lowers setup friction.
.changeset/smart-foxes-sit.md (1)
2-3: Incorrect — "extension" is a valid workspace packageScript output lists both "extension" (apps/extension/package.json) and "task-master-ai" (package.json); keep
"extension": patchif this change targets the VS Code extension, otherwise replace/add"task-master-ai": patch.Likely an incorrect or invalid review comment.
| "extension": patch | ||
| --- | ||
|
|
||
| Fix MCP not connecting to new Taskmaster version |
There was a problem hiding this comment.
🧹 Nitpick
Polish the summary to be user‑facing and imperative.
Consider: “Update MCP startup to dist/npx to restore connectivity.”
🧰 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
.changeset/smart-foxes-sit.md around line 5: the changeset summary is informal
and not user‑facing; replace the current line "Fix MCP not connecting to new
Taskmaster version" with an imperative, polished summary such as "Update MCP
startup to dist/npx to restore connectivity" (or similar concise imperative
phrasing) so the changeset message is clear and customer‑facing.
| "command": "node", | ||
| "args": ["./mcp-server/server.js"], | ||
| "args": ["./dist/mcp-server.js"], | ||
| "env": { |
There was a problem hiding this comment.
🧹 Nitpick
Align MCP startup with docs and fallback: prefer npx over node+dist.
Docs/examples use npx and the extension falls back to npx; mirroring that here reduces path brittleness and setup friction.
Apply:
- "command": "node",
- "args": ["./dist/mcp-server.js"],
+ "command": "npx",
+ "args": ["-y", "task-master-ai"],If you intentionally want local dist for dev, add a comment in this file explaining that and keep docs on npx to avoid user confusion.
📝 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.
| "command": "node", | |
| "args": ["./mcp-server/server.js"], | |
| "args": ["./dist/mcp-server.js"], | |
| "env": { | |
| "command": "npx", | |
| "args": ["-y", "task-master-ai"], | |
| "env": { |
🤖 Prompt for AI Agents
In .cursor/mcp.json around lines 4 to 6, the startup command currently uses
"node" with "./dist/mcp-server.js" which is brittle and inconsistent with docs;
change the command/args to use "npx" to run the packaged entry (e.g., "npx",
args: ["mcp-server"]) so it falls back to global/npm-managed resolution, and
update env if needed; if you intentionally want to prefer the local dist for
development, keep the current node+dist but add a one-line comment in this file
explaining that choice and leave docs recommending npx to avoid user confusion.
| const mcpServerPath = path.resolve( | ||
| path.dirname(taskMasterPath), | ||
| 'mcp-server/server.js' | ||
| './dist/mcp-server.js' | ||
| ); |
There was a problem hiding this comment.
Bug risk: dist path derived from module entry can resolve to dist/dist.
require.resolve('task-master-ai') often points to the package entry (commonly under dist), so joining './dist/mcp-server.js' may produce .../dist/dist/mcp-server.js. Resolve via package.json to get the package root.
Apply:
- const taskMasterPath = require.resolve('task-master-ai');
- const mcpServerPath = path.resolve(
- path.dirname(taskMasterPath),
- './dist/mcp-server.js'
- );
+ const pkgJsonPath = require.resolve('task-master-ai/package.json');
+ const packageRoot = path.dirname(pkgJsonPath);
+ const mcpServerPath = path.join(packageRoot, '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 pkgJsonPath = require.resolve('task-master-ai/package.json'); | |
| const packageRoot = path.dirname(pkgJsonPath); | |
| const mcpServerPath = path.join(packageRoot, 'dist', 'mcp-server.js'); |
🤖 Prompt for AI Agents
In apps/extension/src/utils/mcpClient.ts around lines 409 to 412, the code
builds mcpServerPath by resolving the module entry and appending
'./dist/mcp-server.js', which can produce a duplicated dist (…/dist/dist).
Instead, resolve the package root via its package.json (e.g. use
require.resolve('task-master-ai/package.json') and take path.dirname of that)
and then join the relative dist path (path.join(packageRoot, 'dist',
'mcp-server.js')); update the code to use that packageRoot-derived path so the
final path is correct even when the module entry lives in a dist folder.
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 (3)
apps/extension/src/utils/mcpClient.ts (3)
69-70: Avoid shadowing the imported path moduleLocal
const path = require('path')shadows the top-level import and can confuse tooling.Apply:
- const path = require('path'); try { const targetDir = this.config.cwd; const taskmasterDir = path.join(targetDir, '.taskmaster');
449-456: Rename loop variable to avoid shadowing and improve logsThe loop variable
pathshadows the importedpath. Rename tonpxPath.- for (const path of npxPaths) { + for (const npxPath of npxPaths) { try { - if (path === 'npx' || fs.existsSync(path)) { - command = path; - logger.log(`✅ Using npx at: ${path}`); + if (npxPath === 'npx' || fs.existsSync(npxPath)) { + command = npxPath; + logger.log(`✅ Using npx at: ${npxPath}`); break; }
170-205: Process inspection likely before spawn; move after connect (optional)
StdioClientTransportcommonly spawns onclient.connect(). Checkingtransport.processbefore that will often be null.Consider moving the PID/stdout/stderr wiring after
await this.client.connect(this.transport);.
📜 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
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
.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
🧠 Learnings (27)
📓 Common learnings
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: 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: 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/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to scripts/modules/** : When using the MCP server, restart it if core logic in `scripts/modules` or MCP tool/direct function definitions change.
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/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: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
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/.
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: 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-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.jsondocs/mcp-provider-guide.mdapps/extension/src/utils/mcpClient.tsapps/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.jsondocs/mcp-provider-guide.mdapps/extension/src/utils/mcpClient.tsapps/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 : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
.cursor/mcp.jsondocs/mcp-provider-guide.mdapps/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,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-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.jsondocs/mcp-provider-guide.mdapps/extension/src/utils/mcpClient.tsapps/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:
.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 : 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.jsondocs/mcp-provider-guide.mdapps/extension/src/utils/mcpClient.tsapps/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: Applies to scripts/modules/** : When using the MCP server, restart it if core logic in `scripts/modules` or MCP tool/direct function definitions change.
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: Applies to mcp-server/src/tools/*.js : Do not log entire large data structures or sensitive information in MCP tool files.
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: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Applied to files:
.cursor/mcp.jsondocs/mcp-provider-guide.mdapps/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 : 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.jsondocs/mcp-provider-guide.mdapps/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.jsonapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 Learning: 2025-07-18T17:10:02.683Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:02.683Z
Learning: Applies to {.env,.cursor/mcp.json} : Store sensitive API keys and endpoint URLs for Taskmaster in a `.env` file (for CLI usage) or in the `env` section of `.cursor/mcp.json` (for MCP/Cursor integration). Do not store non-API key settings in these files.
Applied to files:
.cursor/mcp.json
📚 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-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-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: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:
docs/mcp-provider-guide.mdapps/extension/src/utils/mcpClient.tsapps/docs/getting-started/quick-start/configuration-quick.mdx
📚 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: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:
apps/extension/src/utils/mcpClient.ts
📚 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:
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-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: Applies to .taskmaster/config.json : Do not manually edit `.taskmaster/config.json` unless you are certain of the changes; use the `task-master models` command or `models` MCP tool for configuration.
Applied to files:
apps/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
📚 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:
apps/docs/getting-started/quick-start/configuration-quick.mdx
🪛 GitHub Actions: CI
.cursor/mcp.json
[error] 14-20: Formatter would have printed content with formatting differences detected by biome format. 1 formatting error found (biome format). Exit code 1 from the format-check step. Run 'npm run format-check' (or 'biome format .') to fix.
🪛 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). (2)
- GitHub Check: build
- GitHub Check: typecheck
🔇 Additional comments (4)
apps/docs/getting-started/quick-start/configuration-quick.mdx (1)
21-22: LGTM: Quick-start config uses npxConsistent with provider guide and reduces local build assumptions.
apps/extension/src/utils/mcpClient.ts (1)
409-414: LGTM — task-master-ai declared in package.jsonapps/extension/package.json lists "task-master-ai" in dependencies ("*").
docs/mcp-provider-guide.md (1)
454-456: LGTM — VS Code example updated to npxrg search in docs/ and apps/ for 'mcp-server/server.js' returned no matches; manually verify top-level README, CI configs, package.json scripts, and other locations for stale references before merging.
.cursor/mcp.json (1)
14-20: Fix Biome config errors (biome.json) and re-run formatterBiome failed to run: unknown key
ignorein files block (biome.json:3) and unknown keysinclude/ignorein linter block (biome.json:28–29). Replace those keys with supported ones (files: maxSize, ignoreUnknown, includes, experimentalScannerIgnores; linter: enabled, rules, includes, domains) and then run:
npx -y @biomejs/biome format . --write && git status --porcelain⛔ Skipped due to learnings
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 {.env,.cursor/mcp.json} : 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).Learnt from: CR PR: eyaltoledano/claude-task-master#0 File: public/assets/.windsurfrules:0-0 Timestamp: 2025-09-22T16:42:10.070Z Learning: Configure environment variables: ANTHROPIC_API_KEY (required), MODEL, MAX_TOKENS, TEMPERATURE, DEBUG, TASKMASTER_LOG_LEVEL, DEFAULT_SUBTASKS, DEFAULT_PRIORITY, PROJECT_NAME, PROJECT_VERSION, PERPLEXITY_API_KEY, PERPLEXITY_MODEL
| --- | ||
| "extension": patch | ||
| --- |
There was a problem hiding this comment.
🧹 Nitpick
markdownlint MD041 is a false positive for changesets
Changeset files intentionally start with frontmatter. Exclude .changeset/** from MD041 in markdownlint config instead of changing file structure.
Add or update .markdownlint.json:
{
- "MD041": true
+ "MD041": {
+ "level": "warning"
+ },
+ "ignores": [
+ ".changeset/**"
+ ]
}Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In .changeset/smart-foxes-sit.md around lines 1 to 3, the changeset frontmatter
triggers markdownlint rule MD041; instead of altering changeset files, update
the markdownlint configuration to exclude .changeset/** from MD041. Add or
update .markdownlint.json (or your markdownlint config) to set "MD041": {
"allow_front_matter": false } globally and add an "ignore" or "exclude" pattern
for ".changeset/**" (or use the config's "files" patterns) so files under
.changeset are skipped for MD041.
| "extension": patch | ||
| --- | ||
|
|
||
| Fix MCP not connecting to new Taskmaster version |
There was a problem hiding this comment.
🧩 Analysis chain
Confirm package name and fix brand spelling in summary
- Verify that the target package for this patch is indeed "extension". If the MCP server package also needs a release due to path expectations, add a separate changeset for "task-master-ai".
- Use the project’s brand spelling.
Apply this minimal copy tweak:
-Fix MCP not connecting to new Taskmaster version
+Fix MCP not connecting to new Task Master versionRun this to confirm the package names present in the repo and whether "extension" is a valid workspace package:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Listing workspace package names (top-level only):"
fd -H -a package.json -d 3 | sed 's|^\./||' | while read -r f; do
name=$(jq -r '.name // empty' "$f")
if [[ -n "$name" ]]; then printf "%-50s %s\n" "$name" "$f"; fi
done | sort
echo
echo "Checking if apps/extension/package.json exists and depends on task-master-ai:"
if [[ -f apps/extension/package.json ]]; then
jq -r '{
name: .name,
dep: .dependencies["task-master-ai"],
optDep: .optionalDependencies["task-master-ai"]
}' apps/extension/package.json
else
echo "apps/extension/package.json not found"
fiLength of output: 757
Target correct package and fix brand spelling
- Change the changeset to bump
task-master-ai(where the MCP server code lives), notextension. - Update the summary to use the project’s brand spelling “Task Master.”
--- .changeset/smart-foxes-sit.md
- "extension": patch
+ "task-master-ai": patch
---
- Fix MCP not connecting to new Taskmaster version
+ Fix MCP not connecting to new Task Master version📝 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 not connecting to new Task Master version |
🧰 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, the changeset currently
bumps the wrong package ("extension") and uses the incorrect brand spelling;
update the package key to "task-master-ai" (the MCP server package) instead of
"extension", and edit the summary line to use the project's brand spelling "Task
Master" (e.g., "Fix MCP not connecting to new Task Master version").
.cursor/mcp.json
Outdated
| "command": "node", | ||
| "args": ["./dist/mcp-server.js"], |
There was a problem hiding this comment.
Use npx for portability instead of node ./dist/mcp-server.js
Running a local dist path will fail for users without a built artifact. Docs in this PR switch to npx -y task-master-ai; align this config for consistency and zero‑install.
Apply:
- "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.
| "command": "node", | |
| "args": ["./dist/mcp-server.js"], | |
| "command": "npx", | |
| "args": ["-y", "task-master-ai"], |
🤖 Prompt for AI Agents
.cursor/mcp.json around lines 4 to 5: the launch configuration currently uses
"command": "node" with args ["./dist/mcp-server.js"], which fails for users
without a built artifact; update the config to use npx for portability by
changing the command to "npx" and set args to ["-y","task-master-ai"] (or
equivalent single-string command that runs the package) so it launches via npx
and supports zero‑install.
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