modelcontextprotocol / modelcontextprotocol/servers

Windows: SSH-based MCP servers require PROGRAMDATA environment variable

Open
#2,943 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
90.5k
Forks
11.7k
Avg merge
2d 2h
Merged PRs (30d)
5

Description

Issue

SSH connections fail when MCP servers are launched from Claude Desktop on Windows.

Common Use Case

Running an MCP server on a remote host (Raspberry Pi, home server, NAS, another PC on local network) and connecting to it via SSH from Windows Claude Desktop.

Root Cause

Claude Desktop launches MCP servers with a minimal environment missing PROGRAMDATA, which OpenSSH on Windows requires to locate system SSH configuration files.

Solution

Add PROGRAMDATA to the env configuration:

    {
      "mcpServers": {
        "my-remote-server": {
          "command": "C:\\WINDOWS\\System32\\OpenSSH\\ssh.exe",
          "args": [
            "user@remote-host.local",
            "-o", "StrictHostKeyChecking=accept-new",
            "-i", "C:\\Users\\username\\.ssh\\id_ed25519",
            "/path/to/remote/mcp-server/command"
          ],
          "env": {
            "PROGRAMDATA": "C:\\ProgramData"
          }
        }
      }
    }

Recommendation

  1. Add this to Windows troubleshooting documentation
  2. Consider passing PROGRAMDATA by default for Windows MCP server environments

Environment

  • OS: Windows 11
  • Claude Desktop
  • OpenSSH (Windows built-in)
  • Remote MCP server over SSH on local network

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name a documentation file or test. Locate the Windows troubleshooting documentation and verify how SSH-based MCP servers are configured there. Document the PROGRAMDATA environment setting and clarify whether passing it by default is a separate follow-up; done means the Windows SSH example covers this failure mode.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.