Skip to content

docs: add Windows setup instructions - #1

Open
anthonyonazure wants to merge 3 commits into
grzesir:mainfrom
anthonyonazure:windows-setup-docs
Open

docs: add Windows setup instructions#1
anthonyonazure wants to merge 3 commits into
grzesir:mainfrom
anthonyonazure:windows-setup-docs

Conversation

@anthonyonazure

Copy link
Copy Markdown

This adds explicit Windows guidance to the Quick Start so users on Windows don't have to guess at the differences from the macOS/Linux instructions.

What's added

Section 3 (Set API keys) — adds PowerShell (`$env:VAR = "..."`) and cmd (`set VAR=...`) equivalents alongside the existing Unix `export` examples. The `.env` fallback is unchanged and labeled as cross-platform.

Section 4 (Add to Claude Code) — leads with the `claude mcp add` CLI (which is cross-platform and avoids hand-editing JSON), keeps the `~/.claude.json` snippet as an alternative, and adds three Windows-specific notes that catch real install footguns:

  1. `run.sh` requires `bash` on PATH — Git Bash or WSL both work; PowerShell/cmd alone do not.
  2. Forward slashes are recommended in JSON paths to avoid backslash escaping.
  3. If multiple `bash.exe` are installed (Git Bash, WSL, MSYS2), the first one on PATH wins.

Tested on

Windows 11 + Git for Windows (`bash 5.2.26 msys`) + Node 24 + Claude Code 2.1.126. Server connects cleanly via `claude mcp add thinking-tools -s user -- bash C:/Users//debate-mcp/run.sh`.

No code or behavior changes. Docs only.

- API keys: PowerShell (:) and cmd (set) variants
- Claude Code: 'claude mcp add' CLI as cross-platform install path
- Windows-specific notes: bash on PATH (Git Bash/WSL), forward slashes, multi-bash priority
SDK 1.24.0 began auto-injecting `execution: { taskSupport: 'forbidden' }`
on every tool registered via `McpServer.tool()`. Claude Code drops
servers whose tools carry that field, so all four tools (debate,
reframe, diverge, think) silently disappeared from the model's tool
surface even though `claude mcp list` reported the server as connected.

Bisected the SDK: 1.23.0 is the last version without the auto-inject.
Pinning to an exact version (not caret) since `^1.12.0` resolves to the
broken 1.29.x line.

Repro before fix: send `tools/list` to the running server and observe
`execution.taskSupport = "forbidden"` on each tool. After this pin the
field is absent and the tools register correctly in Claude Code.
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