Skip to content

feat: default to complete tool config and add server instructions#73

Merged
devondragon merged 3 commits intomainfrom
71-revisit-tool-configuration-defaults
Feb 23, 2026
Merged

feat: default to complete tool config and add server instructions#73
devondragon merged 3 commits intomainfrom
71-revisit-tool-configuration-defaults

Conversation

@devondragon
Copy link
Copy Markdown
Owner

Summary

  • Default tool config changed from essential (7 tools) to complete (10 tools). With only 10 consolidated tools and MCP clients now supporting deferred tool loading (defer_loading), gating 3 useful tools behind opt-in provides no practical benefit.
  • Added SERVER_INSTRUCTIONS to the MCP server handshake — a keyword-rich description of all capabilities, improving tool discovery for clients that support it.
  • Synced version strings in both entry points (mcp-server.ts, worker.ts) to 2.4.0 to match package.json.
  • Updated README and CLAUDE.md to reflect the new default and reframe tool configuration as a way to reduce noise rather than work around tool limits.

All existing MOTION_MCP_TOOLS values (minimal, essential, complete, custom:) continue to work — no breaking changes.

Closes #71

Test plan

  • npm run build — TypeScript compiles cleanly
  • npm run worker:type-check — Worker types pass
  • Server starts with default config (10 tools when no MOTION_MCP_TOOLS set)
  • MOTION_MCP_TOOLS=essential — backward compat, 7 tools
  • MOTION_MCP_TOOLS=minimal — backward compat, 3 tools

Change default MOTION_MCP_TOOLS from "essential" (7 tools) to
"complete" (10 tools). With only 10 consolidated tools and MCP clients
now supporting deferred tool loading, gating 3 useful tools behind
opt-in provides no practical benefit.

- Update default in mcp-server.ts, worker.ts, and ToolConfigurator.ts
- Add SERVER_INSTRUCTIONS constant for MCP tool discovery
- Sync version strings to 2.4.0 in both entry points
- All existing config values (minimal, essential, custom:) still work

Closes #71
Reframe tool configuration section now that complete is the default.
Remove MOTION_MCP_TOOLS from primary setup examples since users no
longer need to set it. Replace "MCP clients have tool limits" framing
with guidance on reducing tool noise when running multiple servers.
Copilot AI review requested due to automatic review settings February 23, 2026 00:45
@claude
Copy link
Copy Markdown

claude Bot commented Feb 23, 2026

PR Review: feat: default to complete tool config and add server instructions

Overall this is a clean, well-scoped PR. The changes are logically coherent and the PR description clearly explains the rationale. Here is my detailed feedback:


Default Config Change (essentialcomplete)

Positive: The rationale is sound — with only 10 consolidated tools total, the distinction between essential and complete provides minimal practical benefit, especially given MCP clients now support defer_loading. Removing the artificial gate is a reasonable simplification.

Minor concern — fallback in ToolConfigurator.ts: When an invalid MOTION_MCP_TOOLS value is provided, the error message now logs defaulting: 'complete' and falls through to 'complete'. This is consistent with the new default, but worth noting: a user who previously relied on the graceful fallback to essential on misconfiguration will now silently get more tools than they may expect. This is a benign edge case, but the warning log is appropriate and the behavior is documented — no action required unless you want to make it more explicit.


src/constants.ts — SERVER_INSTRUCTIONS

Good: Extracting the instructions string into a dedicated constants file rather than inlining it in both entry points is the right call — avoids duplication and keeps the entry points clean.

Suggestion — keyword tail in instructions: The trailing Keywords: line is unconventional in server instructions fields. While it may help some clients with discovery, MCP's instructions field is primarily surfaced to the LLM context, not a search index. Keyword stuffing at the end of the string could look noisy to users or AI models that display raw instructions. Consider either integrating those terms naturally into the prose description, or omitting the explicit Keywords: label entirely and just appending the terms as part of a sentence (e.g., Supports priorities, deadlines, assignees, and custom fields.).

Nitpick: The trailing Keywords: line is quite long. If it stays, wrapping at 80 characters would align with typical code style.


Version Sync (2.3.0/2.0.02.4.0)

Positive: Syncing both entry points to match package.json is overdue — having mcp-server.ts at 2.0.0 and worker.ts at 2.3.0 while package.json was at 2.4.0 was clearly inconsistent. Good housekeeping.

Future suggestion: Consider sourcing the version from package.json at build time (e.g., via a VERSION import or a build-time constant) so the three places can't drift again. Not required for this PR, but worth a follow-up issue.


Documentation (README.md, CLAUDE.md)

Positive: Both files are updated consistently to reflect the new default. The reframing of tool configuration as a way to reduce tool selection noise rather than work around limits is more accurate and user-friendly.

Minor: The README previously showed MOTION_MCP_TOOLS: "essential" in the quick-start config example, which new users may have copied. Removing it (and letting the default take over) simplifies onboarding — this is the right call.


Test Plan

The checklist is appropriate for a change of this scope. Since there is no automated test framework, manual verification of the startup configurations is the right approach.

Observation: The lack of automated tests remains a project-level gap (noted in CLAUDE.md as No Testing Framework: Currently no tests exist). This PR doesn't make it worse, but a follow-up to add at minimum a ToolConfigurator unit test would make future default-changing PRs easier to verify.


Summary

Area Status
Default config change ✅ Well-reasoned
Constants extraction ✅ Good separation of concerns
Version sync ✅ Needed housekeeping
Documentation ✅ Consistent and accurate
Breaking changes ✅ None
Security ✅ No concerns
Performance ✅ No impact

One actionable suggestion: Reconsider the Keywords: label at the end of SERVER_INSTRUCTIONS — integrating those terms into natural prose would read better and be less likely to look odd in clients that surface instructions text.

Otherwise this is ready to merge. The changes are low-risk, improve discoverability, and clean up accumulated inconsistencies.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request changes the default tool configuration for the Motion MCP server from essential (7 tools) to complete (10 tools), based on the rationale that modern MCP clients now support deferred tool loading which eliminates the context budget constraints that originally motivated the tiered configuration system. The PR also adds server instructions to improve tool discovery and syncs version strings to 2.4.0.

Changes:

  • Default tool configuration changed from essential to complete across both entry points
  • Added SERVER_INSTRUCTIONS constant with comprehensive capability descriptions and keywords
  • Version strings updated from 2.0.0/2.3.0 to 2.4.0 in both entry points
  • Documentation updated to reflect new default and reframe tool configuration purpose

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/constants.ts New file containing SERVER_INSTRUCTIONS with comprehensive capability descriptions and keywords
src/worker.ts Updated McpServer constructor to include instructions, changed default to "complete", version to 2.4.0
src/mcp-server.ts Updated Server constructor to include instructions, changed default to "complete", version to 2.4.0
src/tools/ToolConfigurator.ts Updated error handling to default to "complete" instead of "essential"
README.md Updated documentation to reflect new default and removed MOTION_MCP_TOOLS from example configs
CLAUDE.md Updated tool configuration section to show "complete" as default

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Update two test assertions that still expected the old "essential"
fallback for invalid configs — they now correctly assert "complete".

Also fix .env.example: the active MOTION_MCP_TOOLS=essential line was
overriding the new code default for anyone who copied the file. Replaced
with a commented-out example and updated the default note to "complete".
@devondragon devondragon merged commit fff6f15 into main Feb 23, 2026
1 check passed
@devondragon devondragon deleted the 71-revisit-tool-configuration-defaults branch February 25, 2026 13:31
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.

Revisit tool configuration defaults given platform-level tool search

2 participants