Skip to content

Release vscode extension patch (#1229)#1230

Merged
Crunchyman-ralph merged 1 commit into
mainfrom
next
Sep 22, 2025
Merged

Release vscode extension patch (#1229)#1230
Crunchyman-ralph merged 1 commit into
mainfrom
next

Conversation

@Crunchyman-ralph

@Crunchyman-ralph Crunchyman-ralph commented Sep 22, 2025

Copy link
Copy Markdown
Collaborator

What type of PR is this?

  • 🐛 Bug fix
  • ✨ Feature
  • 🔌 Integration
  • 📝 Docs
  • 🧹 Refactor
  • Other:

Description

Related Issues

How to Test This

# Example commands or steps

Expected result:

Contributor Checklist

  • Created changeset: npm run changeset
  • Tests pass: npm test
  • Format check passes: npm run format-check (or npm run format to fix)
  • Addressed CodeRabbit comments (if any)
  • Linked related issues (if any)
  • Manually tested the changes

Changelog Entry


For Maintainers

  • PR title follows conventional commits
  • Target branch correct
  • Labels added
  • Milestone assigned (if applicable)

Summary by CodeRabbit

  • Bug Fixes

    • Resolved MCP connection issues with the latest Taskmaster, improving reliability and startup behavior.
  • Documentation

    • Updated setup guides to launch the MCP server via npx (with non-interactive flag), aligning instructions with the latest package distribution.
    • Clarified configuration examples for smoother onboarding.
  • Chores

    • Added a patch-level changeset entry documenting the fix.

@changeset-bot

changeset-bot Bot commented Sep 22, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 674d1f6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
extension Patch
@tm/cli Patch

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

@coderabbitai

coderabbitai Bot commented Sep 22, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updates 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

Cohort / File(s) Summary of changes
MCP invocation path updates
.../apps/extension/src/utils/mcpClient.ts, .cursor/mcp.json
Switched default/bundled server path from mcp-server/server.js to dist/mcp-server.js. Updated config to use new build output for the MCP server.
Documentation updates
apps/docs/getting-started/quick-start/configuration-quick.mdx, docs/mcp-provider-guide.md
Changed startup commands from node ./mcp-server/server.js to npx -y task-master-ai, updating examples and guidance accordingly.
Changeset metadata
.changeset/smart-foxes-sit.md
Added patch-level changeset noting fix: “Fix MCP not connecting to new Taskmaster version.”

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)
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • eyaltoledano

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Release vscode extension patch (#1229)" clearly communicates the primary intent of this changeset — a patch release for the VS Code extension — and matches the changes (MCP invocation/path updates and related docs/changeset). It is concise and not misleading; the parenthetical reference to #1229 is minor noise but provides traceability. Overall the title gives a teammate scanning history a clear sense of the main change.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch next

Comment @coderabbitai help to get the list of available commands and usage tips.

@eyaltoledano eyaltoledano self-requested a review September 22, 2025 17:18
@Crunchyman-ralph Crunchyman-ralph merged commit a58719c into main Sep 22, 2025
19 of 20 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 module

You 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 fallback

The loop variable path shadows 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

📥 Commits

Reviewing files that changed from the base of the PR and between f106fb8 and 674d1f6.

📒 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 .env file in the project root 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.

Store API keys only in .env (for CLI, loaded by dotenv in scripts/dev.js) or .cursor/mcp.json (for MCP, accessed via session.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 running npm run changeset or npx changeset add, provide a concise summary of the changes for the CHANGELOG.md in 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.json
  • apps/extension/src/utils/mcpClient.ts
  • docs/mcp-provider-guide.md
  • apps/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.json
  • apps/extension/src/utils/mcpClient.ts
  • docs/mcp-provider-guide.md
  • 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,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.json
  • apps/extension/src/utils/mcpClient.ts
  • docs/mcp-provider-guide.md
  • apps/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.json
  • 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:

  • .cursor/mcp.json
  • apps/extension/src/utils/mcpClient.ts
  • apps/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.json
  • docs/mcp-provider-guide.md
  • 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:

  • .cursor/mcp.json
  • apps/extension/src/utils/mcpClient.ts
  • docs/mcp-provider-guide.md
  • apps/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.json
  • docs/mcp-provider-guide.md
  • apps/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.json
  • 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:

  • .cursor/mcp.json
  • apps/extension/src/utils/mcpClient.ts
  • docs/mcp-provider-guide.md
  • 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 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.json
  • apps/extension/src/utils/mcpClient.ts
  • docs/mcp-provider-guide.md
  • apps/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.json
  • docs/mcp-provider-guide.md
  • apps/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.json
  • apps/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.json
  • 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,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.md
  • apps/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.md
  • 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
🪛 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 NPX

This 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 startup

This matches current guidance and reduces local build coupling. Please ensure the sample .cursor/mcp.json in the repo mirrors this change.

Comment on lines +2 to +5
"extension": patch
---

Fix MCP not connecting to new Taskmaster version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 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.

Suggested change
"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.

Comment thread .cursor/mcp.json
"task-master-ai": {
"command": "node",
"args": ["./mcp-server/server.js"],
"args": ["./dist/mcp-server.js"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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.

Suggested change
"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.

Comment on lines 409 to 412
const mcpServerPath = path.resolve(
path.dirname(taskMasterPath),
'mcp-server/server.js'
'./dist/mcp-server.js'
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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.

Suggested change
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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants