Skip to content

feat: upgrade fastmcp dependency to 3.23.0+#1406

Merged
Crunchyman-ralph merged 1 commit intonextfrom
ralph/feat/upgrade.fastmcp
Nov 14, 2025
Merged

feat: upgrade fastmcp dependency to 3.23.0+#1406
Crunchyman-ralph merged 1 commit intonextfrom
ralph/feat/upgrade.fastmcp

Conversation

@Crunchyman-ralph
Copy link
Collaborator

@Crunchyman-ralph Crunchyman-ralph commented Nov 14, 2025

What type of PR is this?

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

Description

Upgrades fastmcp dependency to v3.20.1 which includes xsschema 0.40-beta.5,
enabling full Zod v4 compatibility. This resolves MCP server connection failures
with Cursor IDE's latest update.

Changes:

  • Remove all temporary zod/v3 imports across MCP tools
  • Update all MCP tool schemas to use standard zod imports
  • Fix capability negotiation issues with Cursor IDE

Related Issues

Fixes #1404

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

  • Chores
    • Updated FastMCP dependency to v3.23.0 with Zod v4 support for improved MCP server compatibility.
    • Standardized schema validation library imports across all tools to align with current dependencies.

Upgrades fastmcp dependency to v3.20.1 which includes xsschema 0.40-beta.5,
enabling full Zod v4 compatibility. This resolves MCP server connection failures
with Cursor IDE's latest update.

Changes:
- Remove all temporary zod/v3 imports across MCP tools
- Update all MCP tool schemas to use standard zod imports
- Fix capability negotiation issues with Cursor IDE

Fixes #1404
@changeset-bot
Copy link

changeset-bot bot commented Nov 14, 2025

🦋 Changeset detected

Latest commit: d8479ad

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

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 Nov 14, 2025

Walkthrough

Upgrades the MCP server's fastmcp dependency to v3.23.0 and updates Zod import paths from zod/v3 to zod across approximately 47 tool files in both the apps/mcp and mcp-server directories, aligning with the latest Zod v4 compatibility.

Changes

Cohort / File(s) Summary
Changeset Entry
.changeset/petite-news-build.md
Documents patch for MCP server compatibility, upgrading fastmcp to v3.23.0 with Zod v4 support to resolve capability negotiation failures.
Dependency Updates
package.json, apps/mcp/package.json
Bumps fastmcp from ^3.5.0 to ^3.23.0 (root) and from ^3.19.2 to ^3.23.0 (apps/mcp).
Autopilot Tools Zod Import Updates
apps/mcp/src/tools/autopilot/*.tool.ts (abort, commit, complete, finalize, next, resume, start, status)
Replaces Zod import path from zod/v3 to zod; removes v3-specific compatibility comments where present.
Task Tools Zod Import Updates
apps/mcp/src/tools/tasks/get-task.tool.ts, get-tasks.tool.ts
Replaces Zod import path from zod/v3 to zod.
MCP Server Tools Zod Import Updates
mcp-server/src/tools/*.js (add-dependency, add-subtask, add-task, add-tag, analyze, clear-subtasks, complexity-report, copy-tag, delete-tag, expand-all, expand-task, fix-dependencies, generate, get-operation-status, initialize-project, list-tags, models, move-task, next-task, parse-prd, remove-dependency, remove-subtask, remove-task, rename-tag, research, response-language, rules, scope-down, scope-up, set-task-status, update, update-subtask, update-task, use-tag, validate-dependencies)
Replaces Zod import path from zod/v3 to zod across all 36 tool files.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Highly repetitive changes: Same import path update applied across ~47 files with consistent pattern and zero logic modifications.
  • Low complexity: Import-path-only changes with no behavioral, control-flow, or public API alterations.
  • Key verification points:
    • Confirm all import statements correctly reference zod instead of zod/v3.
    • Verify fastmcp version bumps are consistent across package.json files.
    • Validate that Zod v4 compatibility is achieved without runtime errors (especially for schema validation in tools).

Possibly related PRs

Suggested reviewers

  • eyaltoledano

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: upgrading fastmcp dependency from ^3.5.0 to ^3.23.0 as documented across multiple files.
Linked Issues check ✅ Passed All objectives from #1404 are addressed: fastmcp upgraded to v3.23.0 for Zod v4 compatibility, all zod/v3 imports removed, and schemas updated to standard zod imports to fix capability negotiation.
Out of Scope Changes check ✅ Passed All changes are directly related to the upgrade objective: fastmcp dependency bumps and corresponding zod import path updates across all affected files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ralph/feat/upgrade.fastmcp

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

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: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between da8ed6a and d8479ad.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (48)
  • .changeset/petite-news-build.md (1 hunks)
  • apps/mcp/package.json (1 hunks)
  • apps/mcp/src/tools/autopilot/abort.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/commit.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/complete.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/finalize.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/next.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/resume.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/start.tool.ts (1 hunks)
  • apps/mcp/src/tools/autopilot/status.tool.ts (1 hunks)
  • apps/mcp/src/tools/tasks/get-task.tool.ts (1 hunks)
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts (1 hunks)
  • mcp-server/src/tools/add-dependency.js (1 hunks)
  • mcp-server/src/tools/add-subtask.js (1 hunks)
  • mcp-server/src/tools/add-tag.js (1 hunks)
  • mcp-server/src/tools/add-task.js (1 hunks)
  • mcp-server/src/tools/analyze.js (1 hunks)
  • mcp-server/src/tools/clear-subtasks.js (1 hunks)
  • mcp-server/src/tools/complexity-report.js (1 hunks)
  • mcp-server/src/tools/copy-tag.js (1 hunks)
  • mcp-server/src/tools/delete-tag.js (1 hunks)
  • mcp-server/src/tools/expand-all.js (1 hunks)
  • mcp-server/src/tools/expand-task.js (1 hunks)
  • mcp-server/src/tools/fix-dependencies.js (1 hunks)
  • mcp-server/src/tools/generate.js (1 hunks)
  • mcp-server/src/tools/get-operation-status.js (1 hunks)
  • mcp-server/src/tools/initialize-project.js (1 hunks)
  • mcp-server/src/tools/list-tags.js (1 hunks)
  • mcp-server/src/tools/models.js (1 hunks)
  • mcp-server/src/tools/move-task.js (1 hunks)
  • mcp-server/src/tools/next-task.js (1 hunks)
  • mcp-server/src/tools/parse-prd.js (1 hunks)
  • mcp-server/src/tools/remove-dependency.js (1 hunks)
  • mcp-server/src/tools/remove-subtask.js (1 hunks)
  • mcp-server/src/tools/remove-task.js (1 hunks)
  • mcp-server/src/tools/rename-tag.js (1 hunks)
  • mcp-server/src/tools/research.js (1 hunks)
  • mcp-server/src/tools/response-language.js (1 hunks)
  • mcp-server/src/tools/rules.js (1 hunks)
  • mcp-server/src/tools/scope-down.js (1 hunks)
  • mcp-server/src/tools/scope-up.js (1 hunks)
  • mcp-server/src/tools/set-task-status.js (1 hunks)
  • mcp-server/src/tools/update-subtask.js (1 hunks)
  • mcp-server/src/tools/update-task.js (1 hunks)
  • mcp-server/src/tools/update.js (1 hunks)
  • mcp-server/src/tools/use-tag.js (1 hunks)
  • mcp-server/src/tools/validate-dependencies.js (1 hunks)
  • package.json (1 hunks)
🧰 Additional context used
🧠 Learnings (39)
📓 Common learnings
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 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: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1232
File: packages/build-config/package.json:14-15
Timestamp: 2025-09-22T19:45:13.323Z
Learning: In the eyaltoledano/claude-task-master repository, Crunchyman-ralph intentionally omits version fields from internal packages (like tm/build-config) to prevent changesets from releasing new versions for these packages. This is the desired behavior for internal tooling packages that should not be published or versioned independently.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.337Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1252
File: packages/ai-sdk-provider-grok-cli/package.json:21-35
Timestamp: 2025-09-26T19:28:42.612Z
Learning: Successfully implemented dependency safety system for Crunchyman-ralph using Python-based validation that integrates with their build process. The system prevents production failures by catching missing external dependencies during build time and provides clear error messages directing developers to add missing dependencies to root package.json. Peer dependencies were removed from internal packages as they're unnecessary with their tsdown bundling setup.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1289
File: mcp-server/server.js:10-12
Timestamp: 2025-10-14T14:30:14.725Z
Learning: In MCP server implementations using stdio transport (like mcp-server/server.js), the TASK_MASTER_MCP environment variable must be forced to 'true' unconditionally to silence console output from tm-core, as any console.log/warn/error would corrupt the JSON-RPC protocol stream. This is not a user preference but a technical requirement for stdio-based MCP servers.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 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.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1132
File: .github/workflows/weekly-metrics-discord.yml:81-93
Timestamp: 2025-08-13T22:10:46.958Z
Learning: Crunchyman-ralph ignores YAML formatting nitpicks about trailing spaces when there's no project-specific YAML formatter configured, preferring to focus on functionality over cosmetic formatting issues.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1132
File: .github/workflows/weekly-metrics-discord.yml:81-93
Timestamp: 2025-08-13T22:10:46.958Z
Learning: Crunchyman-ralph ignores YAML formatting nitpicks about trailing spaces when there's no project-specific YAML formatter configured, preferring to focus on functionality over cosmetic formatting issues.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1105
File: scripts/modules/supported-models.json:242-254
Timestamp: 2025-08-08T11:33:15.297Z
Learning: Preference: In scripts/modules/supported-models.json, the "name" field is optional. For OpenAI entries (e.g., "gpt-5"), Crunchyman-ralph prefers omitting "name" when the id is explicit enough; avoid nitpicks requesting a "name" in such cases.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1200
File: src/ai-providers/custom-sdk/grok-cli/language-model.js:96-100
Timestamp: 2025-09-19T16:06:42.182Z
Learning: The user Crunchyman-ralph prefers to keep environment variable names explicit (like GROK_CLI_API_KEY) rather than supporting multiple aliases, to avoid overlap and ensure clear separation between different CLI implementations.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1178
File: packages/tm-core/src/subpath-exports.test.ts:6-9
Timestamp: 2025-09-03T12:45:30.724Z
Learning: The user Crunchyman-ralph prefers to avoid overly nitpicky or detailed suggestions in code reviews, especially for test coverage of minor import paths. Focus on more substantial issues rather than comprehensive coverage of all possible edge cases.
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1217
File: apps/cli/src/index.ts:16-21
Timestamp: 2025-09-18T16:35:35.147Z
Learning: The user Crunchyman-ralph considers suggestions to export types for better ergonomics (like exporting UpdateInfo type alongside related functions) as nitpicky and prefers not to implement such suggestions.
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Track and report changes made during dependency cleanup

Applied to files:

  • mcp-server/src/tools/delete-tag.js
  • mcp-server/src/tools/analyze.js
  • mcp-server/src/tools/complexity-report.js
  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-07-17T21:33:57.585Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 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/mcp/package.json
  • mcp-server/src/tools/remove-task.js
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/add-task.js
  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/set-task-status.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/clear-subtasks.js
  • .changeset/petite-news-build.md
📚 Learning: 2025-09-22T19:45:04.337Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.337Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.

Applied to files:

  • apps/mcp/package.json
  • package.json
📚 Learning: 2025-09-26T19:03:33.225Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1252
File: package.json:130-132
Timestamp: 2025-09-26T19:03:33.225Z
Learning: In the eyaltoledano/claude-task-master repository, packages are bundled using tsdown during the build process, which means dependencies imported by the source code (including tm internal packages like tm/ai-sdk-provider-grok-cli) are included in the final bundle and don't need to be available as separate runtime dependencies, so they should remain as devDependencies rather than being moved to dependencies.

Applied to files:

  • apps/mcp/package.json
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/move-task.js
  • mcp-server/src/tools/add-dependency.js
📚 Learning: 2025-09-26T19:07:10.485Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1252
File: packages/ai-sdk-provider-grok-cli/package.json:21-35
Timestamp: 2025-09-26T19:07:10.485Z
Learning: In the eyaltoledano/claude-task-master repository, the tsdown build configuration uses `noExternal: [/^tm\//]` which means internal tm/ packages are bundled into the final output while external npm dependencies remain external and are resolved from the root package.json dependencies at runtime. This eliminates the need for peer dependencies in internal packages since the root package.json already provides the required external dependencies.

Applied to files:

  • apps/mcp/package.json
📚 Learning: 2025-09-26T19:05:47.555Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1252
File: packages/ai-sdk-provider-grok-cli/package.json:11-13
Timestamp: 2025-09-26T19:05:47.555Z
Learning: In the eyaltoledano/claude-task-master repository, internal tm/ packages use a specific export pattern where the "exports" field points to TypeScript source files (./src/index.ts) while "main" points to compiled output (./dist/index.js) and "types" points to source files (./src/index.ts). This pattern is used consistently across internal packages like tm/core and tm/ai-sdk-provider-grok-cli because they are consumed directly during build-time bundling with tsdown rather than being published as separate packages.

Applied to files:

  • apps/mcp/package.json
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/generate.js
📚 Learning: 2025-10-01T19:53:34.261Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1262
File: scripts/modules/task-manager/update-tasks.js:216-233
Timestamp: 2025-10-01T19:53:34.261Z
Learning: For scripts/modules/task-manager/*.js: Use generateObjectService with Zod schemas for structured AI responses rather than generateTextService + manual JSON parsing, as modern AI providers increasingly support the tool use and generateObject paradigm with improved reliability.

Applied to files:

  • apps/mcp/src/tools/autopilot/resume.tool.ts
  • apps/mcp/src/tools/autopilot/finalize.tool.ts
  • mcp-server/src/tools/scope-up.js
  • mcp-server/src/tools/expand-all.js
  • mcp-server/src/tools/parse-prd.js
  • mcp-server/src/tools/add-subtask.js
  • mcp-server/src/tools/remove-task.js
  • apps/mcp/src/tools/autopilot/status.tool.ts
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/autopilot/complete.tool.ts
  • apps/mcp/src/tools/autopilot/start.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/update-subtask.js
  • mcp-server/src/tools/add-task.js
  • mcp-server/src/tools/add-tag.js
  • mcp-server/src/tools/next-task.js
  • apps/mcp/src/tools/autopilot/next.tool.ts
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/response-language.js
  • mcp-server/src/tools/analyze.js
  • mcp-server/src/tools/initialize-project.js
  • mcp-server/src/tools/set-task-status.js
  • mcp-server/src/tools/move-task.js
  • mcp-server/src/tools/complexity-report.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/clear-subtasks.js
  • mcp-server/src/tools/use-tag.js
  • mcp-server/src/tools/models.js
  • mcp-server/src/tools/research.js
  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/scope-down.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/rules.js
  • mcp-server/src/tools/generate.js
  • mcp-server/src/tools/update-task.js
  • mcp-server/src/tools/validate-dependencies.js
  • mcp-server/src/tools/get-operation-status.js
  • mcp-server/src/tools/update.js
📚 Learning: 2025-09-24T15:46:28.029Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1114
File: src/ai-providers/gemini-cli.js:12-12
Timestamp: 2025-09-24T15:46:28.029Z
Learning: When AI SDK provider packages are moved from optional dependencies to required dependencies in package.json, static imports should be used instead of dynamic imports with error handling, as the package is guaranteed to be available at runtime.

Applied to files:

  • apps/mcp/src/tools/autopilot/resume.tool.ts
  • apps/mcp/src/tools/autopilot/start.tool.ts
  • mcp-server/src/tools/move-task.js
  • mcp-server/src/tools/models.js
  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/generate.js
📚 Learning: 2025-09-03T13:46:00.640Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1178
File: packages/tm-core/src/auth/oauth-service.ts:20-20
Timestamp: 2025-09-03T13:46:00.640Z
Learning: For Node.js v22 and later, JSON imports should use `with { type: 'json' }` syntax, not `assert { type: 'json' }`. The `assert` syntax was removed in Node.js v22 in favor of the `with` syntax for import attributes. This applies to the eyaltoledano/claude-task-master codebase which uses Node.js v24.

Applied to files:

  • apps/mcp/src/tools/autopilot/resume.tool.ts
  • mcp-server/src/tools/add-subtask.js
  • mcp-server/src/tools/remove-task.js
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/update-subtask.js
  • mcp-server/src/tools/add-task.js
  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/analyze.js
  • mcp-server/src/tools/set-task-status.js
  • mcp-server/src/tools/move-task.js
  • mcp-server/src/tools/models.js
  • apps/mcp/src/tools/autopilot/commit.tool.ts
  • mcp-server/src/tools/generate.js
  • mcp-server/src/tools/update-task.js
📚 Learning: 2025-07-18T05:38:17.352Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 943
File: scripts/modules/task-manager/move-task.js:24-24
Timestamp: 2025-07-18T05:38:17.352Z
Learning: In the Claude Task Master system, core task-manager functions are designed with fallback mechanisms for missing projectRoot parameters using the pattern `const projectRoot = providedProjectRoot || findProjectRoot();`. The readJSON and writeJSON functions have default parameters (projectRoot = null, tag = null) and handle missing parameters gracefully. Adding strict validation to these core functions would break the established flexible architecture pattern.

Applied to files:

  • apps/mcp/src/tools/autopilot/resume.tool.ts
  • apps/mcp/src/tools/autopilot/finalize.tool.ts
  • mcp-server/src/tools/parse-prd.js
  • apps/mcp/src/tools/autopilot/status.tool.ts
  • apps/mcp/src/tools/autopilot/complete.tool.ts
  • apps/mcp/src/tools/autopilot/start.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/analyze.js
  • mcp-server/src/tools/generate.js
📚 Learning: 2025-07-18T17:08:48.695Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Group imports by module/functionality, import only what's needed (not entire modules), and do not create circular dependencies.

Applied to files:

  • mcp-server/src/tools/scope-up.js
  • mcp-server/src/tools/expand-all.js
  • mcp-server/src/tools/move-task.js
  • mcp-server/src/tools/remove-dependency.js
📚 Learning: 2025-10-12T11:06:36.374Z
Learnt from: rtmcrc
Repo: eyaltoledano/claude-task-master PR: 933
File: mcp-server/src/tools/agent-llm.js:1-3
Timestamp: 2025-10-12T11:06:36.374Z
Learning: The agent_llm MCP tool in mcp-server/src/tools/agent-llm.js is an exception to the standard MCP tool pattern. It should NOT use handleApiResult because it handles delegated LLM calls rather than direct API calls. Using createErrorResponse for error messages is the correct approach for this tool.

Applied to files:

  • mcp-server/src/tools/scope-up.js
  • mcp-server/src/tools/response-language.js
  • mcp-server/src/tools/initialize-project.js
  • mcp-server/src/tools/complexity-report.js
  • mcp-server/src/tools/models.js
  • mcp-server/src/tools/scope-down.js
  • mcp-server/src/tools/rules.js
  • mcp-server/src/tools/get-operation-status.js
📚 Learning: 2025-07-18T17:08:48.695Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Follow the provided structure for adding subtasks, including required options and detailed error handling.

Applied to files:

  • mcp-server/src/tools/expand-all.js
  • mcp-server/src/tools/add-subtask.js
  • mcp-server/src/tools/update-subtask.js
  • mcp-server/src/tools/add-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/clear-subtasks.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/generate.js
📚 Learning: 2025-07-21T02:41:13.453Z
Learnt from: rtmcrc
Repo: eyaltoledano/claude-task-master PR: 933
File: scripts/modules/task-manager/expand-all-tasks.js:0-0
Timestamp: 2025-07-21T02:41:13.453Z
Learning: In scripts/modules/task-manager/expand-all-tasks.js, the success flag should always be true when the expansion process completes successfully, even if individual tasks fail due to LLM errors. Failed tasks are designed to be expanded on subsequent iterations, so individual task failures don't constitute overall operation failure.

Applied to files:

  • mcp-server/src/tools/expand-all.js
📚 Learning: 2025-11-03T19:33:32.348Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1377
File: src/ai-providers/zai.js:38-80
Timestamp: 2025-11-03T19:33:32.348Z
Learning: Crunchyman-ralph confirms the codebase must use Zod v4 API exclusively (schema._zod.def, value._zod.def) with no exceptions for Zod v3 API (schema._def, value._def). All schema introspection code should use the Zod v4 internal API.

Applied to files:

  • mcp-server/src/tools/parse-prd.js
  • mcp-server/src/tools/update-subtask.js
  • mcp-server/src/tools/use-tag.js
  • mcp-server/src/tools/models.js
  • mcp-server/src/tools/research.js
  • mcp-server/src/tools/rules.js
  • mcp-server/src/tools/update-task.js
📚 Learning: 2025-07-20T01:35:05.831Z
Learnt from: rtmcrc
Repo: eyaltoledano/claude-task-master PR: 933
File: scripts/modules/task-manager/parse-prd.js:226-226
Timestamp: 2025-07-20T01:35:05.831Z
Learning: The parsePRD function in scripts/modules/task-manager/parse-prd.js has a different parameter structure than other task-manager functions - it uses `options` parameter instead of `context` parameter because it generates tasks from PRD documents rather than operating on existing tasks.

Applied to files:

  • mcp-server/src/tools/parse-prd.js
  • mcp-server/src/tools/update.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Use string IDs with dot notation (e.g., "1.2") for subtask references

Applied to files:

  • mcp-server/src/tools/add-subtask.js
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/clear-subtasks.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Allow numeric subtask IDs to reference other subtasks within the same parent

Applied to files:

  • mcp-server/src/tools/add-subtask.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Check for and remove references to non-existent tasks during cleanup

Applied to files:

  • mcp-server/src/tools/remove-task.js
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/clear-subtasks.js
  • mcp-server/src/tools/remove-dependency.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Remove references to non-existent tasks during validation

Applied to files:

  • mcp-server/src/tools/remove-task.js
  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/add-task.js
  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/analyze.js
  • mcp-server/src/tools/set-task-status.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/clear-subtasks.js
  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/generate.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-07-18T17:08:48.695Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Follow the provided structure for removing subtasks, including required options, conversion option, and detailed error handling.

Applied to files:

  • mcp-server/src/tools/remove-task.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/clear-subtasks.js
📚 Learning: 2025-09-26T19:10:32.906Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1252
File: tsconfig.json:22-28
Timestamp: 2025-09-26T19:10:32.906Z
Learning: In the eyaltoledano/claude-task-master repository, all internal tm/ package path mappings in tsconfig.json consistently point to TypeScript source files (e.g., "./packages/*/src/index.ts") rather than built JavaScript. This is intentional architecture because tsdown bundles internal packages directly from source during build time, eliminating the need for separate compilation of internal packages.

Applied to files:

  • apps/mcp/src/tools/tasks/get-task.tool.ts
  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/expand-task.js
  • mcp-server/src/tools/analyze.js
  • mcp-server/src/tools/generate.js
📚 Learning: 2025-09-17T19:09:08.882Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1211
File: jest.resolver.cjs:8-15
Timestamp: 2025-09-17T19:09:08.882Z
Learning: In the eyaltoledano/claude-task-master project, the team only uses .ts files and does not plan to use .tsx or .mts extensions, so Jest resolver and build tooling should focus on .js → .ts mapping only.

Applied to files:

  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
📚 Learning: 2025-10-08T19:57:00.982Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1282
File: packages/tm-core/src/utils/index.ts:16-34
Timestamp: 2025-10-08T19:57:00.982Z
Learning: For the tm-core package in the eyaltoledano/claude-task-master repository, the team prefers a minimal, need-based export strategy in index files rather than exposing all internal utilities. Exports should only be added when functions are actually consumed by other packages in the monorepo.

Applied to files:

  • apps/mcp/src/tools/tasks/get-tasks.tool.ts
  • mcp-server/src/tools/expand-task.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Support both task and subtask dependencies in cycle detection

Applied to files:

  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Represent task dependencies as arrays of task IDs

Applied to files:

  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Validate that referenced tasks exist before adding dependencies

Applied to files:

  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Do not create circular dependencies between subtasks

Applied to files:

  • mcp-server/src/tools/next-task.js
  • mcp-server/src/tools/remove-subtask.js
  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/clear-subtasks.js
  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-10-05T10:14:41.302Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1273
File: packages/tm-core/src/repositories/supabase-task-repository.ts:165-167
Timestamp: 2025-10-05T10:14:41.302Z
Learning: In Zod v4, validation errors from ZodError are accessed via the `issues` property, not `errors` (which was used in Zod v3). When handling ZodError in TypeScript, use `error.issues` to access the array of validation issues.

Applied to files:

  • mcp-server/src/tools/response-language.js
  • mcp-server/src/tools/initialize-project.js
  • mcp-server/src/tools/models.js
  • mcp-server/src/tools/scope-down.js
📚 Learning: 2025-07-18T17:08:48.695Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Use path.join() to construct file paths, follow established naming conventions (like task_001.txt), check file existence before deletion, and handle file deletion errors gracefully.

Applied to files:

  • mcp-server/src/tools/analyze.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Format task and dependency IDs consistently when adding dependencies

Applied to files:

  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/add-dependency.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Prevent tasks from depending on themselves

Applied to files:

  • mcp-server/src/tools/fix-dependencies.js
  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
  • mcp-server/src/tools/validate-dependencies.js
📚 Learning: 2025-10-14T14:30:14.725Z
Learnt from: Crunchyman-ralph
Repo: eyaltoledano/claude-task-master PR: 1289
File: mcp-server/server.js:10-12
Timestamp: 2025-10-14T14:30:14.725Z
Learning: In MCP server implementations using stdio transport (like mcp-server/server.js), the TASK_MASTER_MCP environment variable must be forced to 'true' unconditionally to silence console output from tm-core, as any console.log/warn/error would corrupt the JSON-RPC protocol stream. This is not a user preference but a technical requirement for stdio-based MCP servers.

Applied to files:

  • .changeset/petite-news-build.md
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Check for and remove self-references during cleanup

Applied to files:

  • mcp-server/src/tools/remove-dependency.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Handle different ID formats consistently when removing dependencies

Applied to files:

  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
📚 Learning: 2025-07-18T17:09:40.548Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Handle both direct and indirect self-dependencies

Applied to files:

  • mcp-server/src/tools/remove-dependency.js
  • mcp-server/src/tools/add-dependency.js
📚 Learning: 2025-07-18T17:08:48.695Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Regenerate task files after destructive operations, passing all required parameters to generation functions, and provide an option to skip regeneration if needed.

Applied to files:

  • mcp-server/src/tools/generate.js
📚 Learning: 2025-07-18T17:08:48.695Z
Learnt from: CR
Repo: eyaltoledano/claude-task-master PR: 0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : For AI-powered commands that benefit from project context, use the ContextGatherer utility for multi-source context extraction, support task IDs, file paths, custom context, and project tree, implement fuzzy search for automatic task discovery, and display detailed token breakdown for transparency.

Applied to files:

  • mcp-server/src/tools/update.js
⏰ 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). (1)
  • GitHub Check: Test
🔇 Additional comments (47)
mcp-server/src/tools/next-task.js (1)

6-6: LGTM! Clean migration to standard Zod v4 import.

The import path change from 'zod/v3' to 'zod' is correct and aligns with the repository-wide migration to Zod v4 compatibility. The schema definitions used in this file (z.object, z.string, z.optional) are fully compatible with Zod v4.

mcp-server/src/tools/research.js (1)

6-6: LGTM! Zod v4 migration is compatible with existing schemas.

The import path update is correct. All Zod APIs used in this file, including z.enum() for the detailLevel parameter, are fully compatible with Zod v4.

mcp-server/src/tools/remove-subtask.js (1)

6-6: LGTM! Standard Zod v4 migration.

The import path change is correct and consistent with the repository-wide Zod v4 migration. The schema definitions remain fully compatible.

mcp-server/src/tools/remove-dependency.js (1)

6-6: LGTM! Import path correctly updated for Zod v4.

The change from 'zod/v3' to 'zod' is correct. All schema APIs used in this file are compatible with Zod v4.

mcp-server/src/tools/rename-tag.js (1)

6-6: LGTM! Zod v4 import path migration complete.

The import update is correct and the schema definitions are fully compatible with Zod v4.

mcp-server/src/tools/add-subtask.js (1)

6-6: LGTM! Consistent Zod v4 migration.

The import path change is correct and all schema APIs remain compatible with Zod v4.

apps/mcp/package.json (1)

27-27: Capability negotiation fix not found in fastmcp 3.23.0 release notes.

Verification found that v3.23.0 (released Nov 13, 2025) does not mention any changes to client capability negotiation — its listed change is an OAuth config passthrough fix. The review comment requests verification of capability negotiation fixes in this version, but the release notes do not document such changes.

Manually verify that the upgrade to 3.23.0 addresses your actual MCP server connection failures, as the capability negotiation fix claim cannot be confirmed from the release documentation.

package.json (1)

88-88: LGTM, but review breaking changes before deploying and verify MCP server capability negotiation.

fastmcp@3.23.0 is valid (latest version confirmed), and the upgrade from ^3.5.0 aims to resolve the capability negotiation issues with Cursor IDE (#1404). However, this version jump includes significant breaking changes across multiple minor versions:

  • OpenAPI endpoints now convert to Tools by default; verify client/tool handling
  • Configuration loading and strict mode changes; review your config schema
  • OAuth proxy now issues FastMCP JWTs instead of forwarding provider tokens
  • CLI output and context/state management changed; update any dependent scripts
  • Tool timeouts, JSON-RPC batching, and OpenAPI parser updates

Before deploying, please:

  1. Review the FastMCP upgrade guide and changelog for items applicable to your setup
  2. Test MCP server startup and capability advertisement
  3. Manually verify the MCP server connection with Cursor IDE using the npx invocation pattern to confirm issue #1404 is resolved
  4. Run smoke tests on tool calls, OpenAPI-generated tools, and long-running tool timeouts
mcp-server/src/tools/expand-all.js (1)

6-6: LGTM! Clean migration to standard Zod import.

The import path update from 'zod/v3' to 'zod' correctly aligns with the fastmcp v3.23.0 upgrade and full Zod v4 compatibility. The schema definitions use stable Zod features that are backward compatible.

mcp-server/src/tools/use-tag.js (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/validate-dependencies.js (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/rules.js (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/copy-tag.js (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/scope-down.js (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/initialize-project.js (1)

1-1: LGTM! Import path correctly updated.

mcp-server/src/tools/scope-up.js (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/add-dependency.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update from zod/v3 to zod correctly migrates this tool to use native Zod v4. The basic schema construction API (z.object, z.string, z.optional, z.describe) used in this file is fully compatible between versions.

mcp-server/src/tools/generate.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. All schema definitions remain compatible.

mcp-server/src/tools/fix-dependencies.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. All schema definitions remain compatible.

mcp-server/src/tools/clear-subtasks.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. The schema construction including .refine() validation is fully compatible.

mcp-server/src/tools/get-operation-status.js (1)

2-2: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. All schema definitions remain compatible.

mcp-server/src/tools/remove-task.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. All schema definitions remain compatible.

mcp-server/src/tools/models.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. All schema definitions remain compatible.

mcp-server/src/tools/set-task-status.js (1)

6-6: LGTM - Zod v4 migration complete.

The import path update correctly migrates this tool to native Zod v4. The schema construction including z.enum() with TASK_STATUS_OPTIONS is fully compatible.

mcp-server/src/tools/update-task.js (1)

6-6: LGTM! Zod v4 migration is correct.

The import path update from zod/v3 to zod aligns with the PR's objective to adopt Zod v4 compatibility following the fastmcp upgrade to v3.23.0. The basic schema APIs used in this file (z.object(), z.string(), z.boolean()) are backward compatible in Zod v4.

mcp-server/src/tools/delete-tag.js (1)

6-6: LGTM! Consistent with Zod v4 migration.

The import path update is consistent with the broader migration across MCP tools to adopt Zod v4 compatibility.

mcp-server/src/tools/complexity-report.js (1)

6-6: LGTM! Zod v4 migration applied correctly.

The import path update is correct and consistent with the PR's migration strategy.

apps/mcp/src/tools/tasks/get-task.tool.ts (1)

6-6: LGTM! Zod v4 migration is correct.

The import path update from zod/v3 to zod is consistent with the broader migration to Zod v4 compatibility across MCP tooling.

mcp-server/src/tools/add-tag.js (1)

6-6: LGTM! Zod v4 migration applied correctly.

The import path update is consistent with the repository-wide migration to Zod v4.

apps/mcp/src/tools/tasks/get-tasks.tool.ts (1)

6-6: LGTM! Zod v4 migration is correct.

The import path update aligns with the PR's objective to remove temporary zod/v3 imports and adopt standard Zod v4 compatibility.

mcp-server/src/tools/list-tags.js (1)

6-6: LGTM! Consistent with Zod v4 migration.

The import path update is correct and aligns with the repository-wide Zod v4 migration strategy.

mcp-server/src/tools/expand-task.js (1)

6-6: LGTM! Zod v4 migration applied correctly.

The import path update from zod/v3 to zod completes the migration to Zod v4 compatibility for this MCP tool, consistent with the fastmcp v3.23.0 upgrade.

mcp-server/src/tools/update.js (1)

6-6: LGTM! Correct Zod v4 migration.

The import path update from zod/v3 to zod correctly aligns with the Zod v4 upgrade. The schema definitions using basic types and modifiers are fully compatible with v4.

mcp-server/src/tools/analyze.js (1)

6-6: LGTM! Zod v4 import updated correctly.

The import path change is correct. The schema definitions, including .optional().default() patterns and .coerce.number(), are compatible with Zod v4.

mcp-server/src/tools/update-subtask.js (1)

6-6: LGTM! Correct Zod v4 import.

The import path update is correct and the schema definitions are fully compatible with Zod v4.

mcp-server/src/tools/move-task.js (1)

6-6: LGTM! Zod v4 migration applied correctly.

The import path change from zod/v3 to zod is correct. The schema definitions are compatible with Zod v4.

apps/mcp/src/tools/autopilot/resume.tool.ts (1)

6-6: LGTM! Correct Zod v4 import update.

The import path update is correct and aligns with the broader Zod v4 compatibility upgrade across the MCP server tooling.

mcp-server/src/tools/add-task.js (1)

6-6: LGTM! Zod v4 import migration is correct.

The import path change from zod/v3 to zod is correct. The tool schema definitions are fully compatible with Zod v4.

apps/mcp/src/tools/autopilot/next.tool.ts (1)

6-6: LGTM! Correct Zod v4 import.

The import path update is correct and the schema definition is compatible with Zod v4.

apps/mcp/src/tools/autopilot/abort.tool.ts (1)

6-6: LGTM! Zod v4 import updated correctly.

The import path change from zod/v3 to zod is correct and completes the Zod v4 migration for the autopilot tools.

mcp-server/src/tools/parse-prd.js (1)

6-6: LGTM! Import path updated correctly.

The migration from zod/v3 to zod aligns with the Zod v4 upgrade. The basic schema API used in this file (z.object, z.string, z.boolean) remains fully compatible with Zod v4.

apps/mcp/src/tools/autopilot/start.tool.ts (1)

6-6: LGTM! Zod import updated correctly.

The switch to the standard zod import is correct. All schema definitions in this file use Zod v4-compatible APIs.

apps/mcp/src/tools/autopilot/finalize.tool.ts (1)

6-6: LGTM! Import path correctly updated.

mcp-server/src/tools/response-language.js (1)

1-1: LGTM! Zod import updated correctly.

apps/mcp/src/tools/autopilot/status.tool.ts (1)

6-6: LGTM! Import updated to standard Zod package.

apps/mcp/src/tools/autopilot/complete.tool.ts (1)

6-6: LGTM! Import path correctly migrated.

apps/mcp/src/tools/autopilot/commit.tool.ts (1)

6-6: LGTM! Zod import successfully migrated.

The switch to the standard zod import is correct, and the removal of v3 compatibility comments (noted in the AI summary) is appropriate cleanup.

@Crunchyman-ralph Crunchyman-ralph merged commit 9079d04 into next Nov 14, 2025
8 checks passed
github-actions bot added a commit that referenced this pull request Nov 14, 2025
  This PR was automatically generated to update documentation based on recent changes.

  Original commit: feat: upgrade fastmcp to v3.20.1 with Zod v4 support (#1406)\n\nFixes #1404\n\n

  Co-authored-by: Claude <claude-assistant@anthropic.com>
@github-actions github-actions bot mentioned this pull request Nov 15, 2025
sfc-gh-dflippo pushed a commit to sfc-gh-dflippo/task-master-ai that referenced this pull request Dec 4, 2025
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