[BUG] MCP server exposes API-specific 'strict' field in tool schemas, breaking Claude Desktop compatibility
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Code MCP Server Exposes API-Specific Fields
Six tools have "strict": true in their schemas:
Bash, Edit, Grep, Read, TodoWrite, Write
This field is NOT part of MCP spec - it's Anthropic API-specific. Claude Desktop's MCP client rejects these non-standard schemas, resulting in "No tools available."
What Should Happen?
claude mcp serve should expose MCP-compliant tool schemas by automatically stripping Anthropic API-specific fields before sending the tools/list response.
Specifically:
- Remove "strict": true field from all tool inputSchema definitions
- Strip any other API-specific fields (e.g., cacheControl)
- Return only standard JSON Schema fields as defined in the MCP specification
Expected result:
- Claude Desktop successfully validates and registers all 13 tools
- Tools become available in the UI
- MCP server toggle can be enabled
- Tools can be invoked normally
The MCP server should maintain internal API-specific schemas for its own use, but transform them to pure JSON Schema when exposing via the MCP protocol.
Error Messages/Logs
Steps to Reproduce
Environment:
- OS: Windows 11 with WSL (Ubuntu)
- Claude Code: 2.0.31 (in WSL)
- Claude Desktop: 1.0.211 (Windows)
Steps:
- Install Claude Code in WSL:
npm install -g @anthropic-ai/claude-code
- Configure Claude Desktop's
claude_desktop_config.json:
{
"mcpServers": {
"claude-code-executor": {
"command": "wsl",
"args": ["claude", "mcp", "serve"]
}
}
}
- Restart Claude Desktop
- Open Settings → Developer → Connectors
- Observe the issue:
claude-code-executorappears in the list- Toggle is gray and cannot be enabled
- Clicking the row shows "No tools available"
Verification:
Check the MCP server log at:%APPDATA%\Claude\logs\mcp-server-claude-code-executor.log
The log shows:
- Protocol handshake succeeds ✓
- All 13 tools returned in tools/list response ✓
- Tool schemas contain
"strict":truefield (line search confirms 6 tools affected)
Expected: Tools should be available and toggle should turn blue
Actual: "No tools available" and toggle stays gray
Root Cause: The "strict":true field causes Claude Desktop's MCP client to reject the tool schemas during validation.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.31 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
<img width="493" height="63" alt="Image" src="https://github.com/user-attachments/assets/ad7d7909-d7e8-4425-924f-e62cbd86d37e" />
<img width="508" height="118" alt="Image" src="https://github.com/user-attachments/assets/73f29792-5f2c-4eb8-9b51-a629855be745" />
// claude_desktop_config.json
{
"mcpServers": {
"claude-code-executor": {
"command": "wsl",
"args": ["claude", "mcp", "serve"]
}
}
}
**Key log excerpt** showing the `"strict":true` field:
From mcp-server-claude-code-executor.log:
{"name":"Bash","strict":true,"description":"...
{"name":"Edit","strict":true,"description":"...
{"name":"Grep","strict":true,"description":"...
**Additional context:**
All other MCP servers (filesystem, secure-dev-manager, project-state, discovery-knowledge) work correctly with blue toggles. Only claude-code-executor fails, confirming this is specific to Claude Code's MCP implementation.
The MCP server log shows successful protocol handshake and complete tools/list response (63KB), but Claude Desktop UI displays "No tools available" when the connector row is clicked.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗