Skip to content

fix: update MCP config paths in various files#1229

Merged
Crunchyman-ralph merged 3 commits intonextfrom
ralph/fix/add.new.path.to.mcp
Sep 22, 2025
Merged

fix: update MCP config paths in various files#1229
Crunchyman-ralph merged 3 commits intonextfrom
ralph/fix/add.new.path.to.mcp

Conversation

@Crunchyman-ralph
Copy link
Collaborator

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

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 version by updating default server path and startup invocation, improving reliability across local and packaged setups.
  • Documentation

    • Updated setup guides and examples to reflect the new MCP startup method, simplifying configuration for users.
  • Chores

    • Added a changeset to publish a patch release addressing the MCP connectivity fix.

@changeset-bot
Copy link

changeset-bot bot commented Sep 22, 2025

🦋 Changeset detected

Latest commit: c7353d5

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
Copy link
Contributor

coderabbitai bot commented Sep 22, 2025

Walkthrough

Updates 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

Cohort / File(s) Summary of Changes
Runtime: use built dist entry for MCP server
./.cursor/mcp.json, apps/extension/src/utils/mcpClient.ts
Point launch path from mcp-server/server.js to ./dist/mcp-server.js; extension logic checks for dist path and uses it, otherwise falls back to NPX.
Docs: switch launch command to NPX
apps/docs/getting-started/quick-start/configuration-quick.mdx, docs/mcp-provider-guide.md
Replace node ./mcp-server/server.js with npx -y task-master-ai in examples and guidance.
Release notes
.changeset/smart-foxes-sit.md
Add patch changeset noting fix: MCP not connecting to new Taskmaster version.

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
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 "fix: update MCP config paths in various files" accurately and concisely summarizes the primary change in the branch — updating MCP-related paths across configuration, extension code, and docs — and uses the conventional "fix:" prefix, making the intent clear to reviewers scanning history.
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 ralph/fix/add.new.path.to.mcp

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

@Crunchyman-ralph Crunchyman-ralph merged commit 674d1f6 into next Sep 22, 2025
9 of 11 checks passed
@Crunchyman-ralph Crunchyman-ralph deleted the ralph/fix/add.new.path.to.mcp branch September 22, 2025 17:15
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

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)

441-459: Avoid shadowing 'path' and improve npx resolution (Windows support).

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

📥 Commits

Reviewing files that changed from the base of the PR and between fd9dd43 and c7353d5.

📒 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 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
{.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
🧠 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.mdx
  • apps/extension/src/utils/mcpClient.ts
  • docs/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.md
  • apps/extension/src/utils/mcpClient.ts
  • docs/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.mdx
  • docs/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.mdx
  • docs/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.mdx
  • apps/extension/src/utils/mcpClient.ts
  • docs/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.mdx
  • docs/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.mdx
  • apps/extension/src/utils/mcpClient.ts
  • docs/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.mdx
  • docs/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.mdx
  • apps/extension/src/utils/mcpClient.ts
  • docs/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.ts
  • docs/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.ts
  • docs/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 package

Script output lists both "extension" (apps/extension/package.json) and "task-master-ai" (package.json); keep "extension": patch if 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
Copy link
Contributor

Choose a reason for hiding this comment

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

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

Comment on lines 4 to 6
"command": "node",
"args": ["./mcp-server/server.js"],
"args": ["./dist/mcp-server.js"],
"env": {
Copy link
Contributor

Choose a reason for hiding this comment

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

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

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

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

Choose a reason for hiding this comment

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

⚠️ Potential issue

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.

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

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 (3)
apps/extension/src/utils/mcpClient.ts (3)

69-70: Avoid shadowing the imported path module

Local 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 logs

The loop variable path shadows the imported path. Rename to npxPath.

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

StdioClientTransport commonly spawns on client.connect(). Checking transport.process before 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

📥 Commits

Reviewing files that changed from the base of the PR and between fd9dd43 and f7379db.

📒 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
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 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
🧠 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.json
  • docs/mcp-provider-guide.md
  • apps/extension/src/utils/mcpClient.ts
  • 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
  • docs/mcp-provider-guide.md
  • apps/extension/src/utils/mcpClient.ts
  • 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 : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.

Applied to files:

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

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

Consistent with provider guide and reduces local build assumptions.

apps/extension/src/utils/mcpClient.ts (1)

409-414: LGTM — task-master-ai declared in package.json

apps/extension/package.json lists "task-master-ai" in dependencies ("*").

docs/mcp-provider-guide.md (1)

454-456: LGTM — VS Code example updated to npx

rg 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 formatter

Biome failed to run: unknown key ignore in files block (biome.json:3) and unknown keys include / ignore in 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

Comment on lines +1 to +3
---
"extension": patch
---
Copy link
Contributor

Choose a reason for hiding this comment

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

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

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

Fix MCP not connecting to new Taskmaster version
Copy link
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

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 version

Run 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"
fi

Length of output: 757


Target correct package and fix brand spelling

  • Change the changeset to bump task-master-ai (where the MCP server code lives), not extension.
  • 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.

Suggested change
"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
Comment on lines 4 to 5
"command": "node",
"args": ["./dist/mcp-server.js"],
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

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.

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

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.

1 participant