Skip to main content
Glama
JehadurRE

todiagram-mcp-windows-fix

by JehadurRE

todiagram-mcp-windows-fix

Windows-compatible fork of @todiagram/todiagram-mcp that fixes ERR_UNSUPPORTED_ESM_URL_SCHEME on Node.js v22+ and v25+ on Windows.

Connect ToDiagram to Cursor, Claude, Windsurf, and other AI assistants — now works on Windows!

⚠️ The Problem

The original @todiagram/todiagram-mcp crashes on Windows with:

Fatal error in main(): Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]:
Only URLs with a scheme in: file, data, and node are supported by the default ESM loader.
On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'

Root cause: In dist/mcp-server.js, the lazyLoadUtil() function dynamically imports tool modules using path.join(), which on Windows produces paths like C:\Users\...\tools\file.js. The Node.js ESM loader requires file:// URLs, not bare Windows paths.

✅ The Fix

A one-line change in dist/mcp-server.js:

- import { fileURLToPath } from "url";
+ import { fileURLToPath, pathToFileURL } from "url";

  // ... in lazyLoadUtil():
- await import(toolPath);
+ await import(pathToFileURL(toolPath).href);

pathToFileURL() converts C:\Users\...\file.jsfile:///C:/Users/.../file.js, which the ESM loader accepts on all platforms.

📦 Install

npm install -g todiagram-mcp-windows-fix

🔧 MCP Configuration

Claude Code (.mcp.json)

{
  "mcpServers": {
    "todiagram": {
      "type": "stdio",
      "command": "todiagram",
      "env": {
        "TODIAGRAM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Or via npx

{
  "mcpServers": {
    "todiagram": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "todiagram-mcp-windows-fix"],
      "env": {
        "TODIAGRAM_API_KEY": "your-api-key-here"
      }
    }
  }
}

API Key Setup

  1. Go to ToDiagram Editor

  2. Click the account icon at top right

  3. Go to API Key section

  4. Create a key with a descriptive name and expiry time

🐛 Upstream Issue

This fix should be applied to the original @todiagram/todiagram-mcp package. The upstream issue is in src/mcp-server.ts:

// Current (broken on Windows):
for (const toolPath of toolsPaths) {
    await import(toolPath);
}

// Fix:
import { pathToFileURL } from "url";
for (const toolPath of toolsPaths) {
    await import(pathToFileURL(toolPath).href);
}

Affected platforms: Windows with Node.js v22+ (any version using ESM loader with strict URL scheme validation)

Affected versions: @todiagram/todiagram-mcp v1.1.0 and likely earlier versions

✅ Platform Compatibility

Platform

Node.js v20

Node.js v22

Node.js v25

Windows

macOS

Linux

📄 License

FSL-1.1-ALv2 (same as upstream)

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JehadurRE/todiagram-mcp-windows-fix'

If you have feedback or need assistance with the MCP directory API, please join our Discord server