anthropics / anthropics/claude-code
[BUG] Claude Desktop: first-party Filesystem extension unusable — all tools rejected, "outputSchema declares an unsupported dialect (draft-07)"
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Preflight Checklist
- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) 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?
Anthropic's own Filesystem extension is completely unusable in Claude
Desktop. Every tool is rejected before dispatch by the host's own
schema validator. Clean install, current version, no user config
involved.
Related: #86142 — closed 2026-08-20 as non-reproducing after a test on
Claude Code CLI 2.1.233 (Linux). The reports were Claude Desktop
(macOS/Windows). Those surfaces select different MCP client stacks at
runtime via tengu_brindle_causeway: v1 accepts draft-07, v2 rejects it.
Confirmations continued after closure across Desktop, Cowork, and
numerous third-party servers. Filing fresh rather than commenting on a
closed thread.
ENVIRONMENT
Surface: Claude Desktop (Cowork session), macOS, Apple Silicon
Host: 1.52386.3
Extension: ant.dir.ant.anthropic.filesystem 2026.7.10 (current, no update offered)
Bundles: @modelcontextprotocol/server-filesystem 2026.7.4
SDK: @modelcontextprotocol/sdk 1.29.0
SYMPTOM
Every tool fails before dispatch. No tool has ever executed.
invalid outputSchema: JSON Schema declares an unsupported dialect
("$schema": "http://json-schema.org/draft-07/schema#"). The default
validator supports JSON Schema 2020-12 only; pass a pre-configured
Ajv instance to AjvJs
Identical for list_allowed_directories, list_directory, and every
other tool in the manifest.
RULED OUT
- Client-side caching. Forcing a live tool-list re-query returns
"refreshed" with no adds/removes; the next call errors identically.
- Stale or duplicate install. One copy on disk, dated to a clean
uninstall/reinstall. No other server-filesystem copy under
Claude Extensions or ~/.npm/_npx.
- User config. mcpServers in claude_desktop_config.json is {} — the
extension installs through the UI, so editing or deleting that file
changes nothing.
- Extension version. 2026.7.10 is current; no update offered.
- Preferences / folder grants. The failure occurs during tool
definition parsing, before any preference is read.
MECHANISM — SERVER SIDE (confirmed on disk)
dist/index.js contains no draft-07 literal; the string appears only
under node_modules. The SDK routes server-side schema generation
through:
@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
@modelcontextprotocol/sdk/dist/cjs/server/zod-json-schema-compat.js
which calls zod-to-json-schema, defaulting $schema to draft-07. zod v4
ships in the same bundle and its native z.toJSONSchema() emits
2020-12, but the compat shim is the path taken.
MECHANISM — HOST SIDE
Per #86142, the v2 validator accepts only:
https://json-schema.org/draft/2020-12/schema
http://json-schema.org/draft/2020-12/schema
and throws on anything else rather than registering the declared
meta-schema. Since MCP permits draft-07, this rejects conforming
servers. Registering draft-04/06/07 meta-schemas in the v2 Ajv
instance is the durable fix; changing the shim only patches
first-party servers.
SCOPE
Not specific to Filesystem — any server on SDK 1.29.0 declaring
outputSchema fails identically against a v2-strict host.
IMPACT
No user-side action resolves it. Reinstall, config edit, and
preference reset all leave the error byte-identical. A first-party
Anthropic extension failing schema validation against the host it
ships alongside, with the tracking issue closed and no fix released.
### What Should Happen?
Claude reads/writes to mac OS local filesystem
### Error Messages/Logs
```shell
```
### Steps to Reproduce
1. On macOS, open Claude Desktop 1.52386.3 (or current).
2. Settings → Extensions → install the first-party "Filesystem"
extension (ant.dir.ant.anthropic.filesystem, v2026.7.10).
3. When prompted for user_config.allowed_directories, select any
directory you can read — e.g. ~/Documents.
4. Start a new conversation. Confirm the Filesystem tools are
announced and visible to the model.
5. Invoke any tool on that server. The simplest takes no arguments:
list_allowed_directories
Or with a path:
list_directory path: /Users//Documents
EXPECTED
The tool executes and returns a directory listing.
ACTUAL
The call never dispatches. It fails during tool-definition parsing:
Error: Tool 'list_allowed_directories' has an invalid outputSchema:
JSON Schema declares an unsupported dialect
("$schema": "http://json-schema.org/draft-07/schema#").
The default validator supports JSON Schema 2020-12 only;
pass a pre-configured Ajv instance to AjvJs
Every tool in the manifest fails identically. No tool has ever
executed.
FREQUENCY
100%. Every call, every session, every tool.
NOTES ON SURFACE
Reproduce on Claude Desktop (macOS), not Claude Code CLI. Per #86142
the two select different MCP client stacks at runtime via
tengu_brindle_causeway — v1 accepts draft-07, v2 rejects it. A
CLI/Linux test will not reproduce this and is what led to #86142
being closed in error.
OPTIONAL VERIFICATION (on-disk, no repro needed)
grep -rl "zod-to-json-schema" \
~/Library/Application\ Support/Claude/Claude\ Extensions/\
ant.dir.ant.anthropic.filesystem/node_modules/@modelcontextprotocol/sdk/dist/
Returns server/zod-json-schema-compat.js in both esm and cjs —
the schema-generation path that emits draft-07.
### Claude Model
Not sure / Multiple models
### Is this a regression?
Yes, this worked in a previous version
### Last Working Version
_No response_
### Claude Code Version
2.1.63 (Claude Code)
### Platform
Anthropic API
### Operating System
macOS
### Terminal/Shell
Terminal.app (macOS)
### Additional Information
Claude Desktop 1.52386.3 (macOS, Apple Silicon)
NOT Claude Code CLI — see Steps to Reproduce. This is a Desktop-only
surface; the CLI runs a different MCP client stack and will not
reproduce.
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce on Claude Desktop rather than Claude Code CLI, then inspect the extension's @modelcontextprotocol/sdk files at dist/esm/server/zod-json-schema-compat.js and dist/cjs/server/zod-json-schema-compat.js. Verify the generated draft-07 outputSchema is accepted by the Desktop v2 validator and that list_allowed_directories dispatches successfully; the issue notes no repository test or entry point.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, desktop, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100