Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

import error for CJS #203

Open
henrytsuicsa opened this issue Mar 17, 2025 · 2 comments
Open

import error for CJS #203

henrytsuicsa opened this issue Mar 17, 2025 · 2 comments
Labels
bug Something isn't working

Comments

@henrytsuicsa
Copy link

henrytsuicsa commented Mar 17, 2025

Describe the bug
i have a cjs project which need to use @modelcontextprotocol/sdk, it is fine to import mcp server's things.

However, when i mcp client code, like
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

the error happen:

Logs
/home/myproject/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js:315
undefined
^

Error [ERR_REQUIRE_ESM]: require() of ES Module /home/myproject/node_modules/pkce-challenge/dist/index.node.js from /home/myproject/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js not supported.
index.node.js is treated as an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which declares all .js files in that package scope as ES modules.
Instead either rename index.node.js to end in .cjs, change the requiring code to use dynamic import() which is available in all CommonJS modules, or change "type": "module" to "type": "commonjs" in /home/myproject/node_modules/pkce-challenge/package.json to treat all .js files as CommonJS (using .mjs for all ES modules instead).

at TracingChannel.traceSync (node:diagnostics_channel:315:14)
at Object.<anonymous> (/home/myproject/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js:13:42) {

code: 'ERR_REQUIRE_ESM'
}

Additional context
Node.js v22.6.0

@henrytsuicsa henrytsuicsa added the bug Something isn't working label Mar 17, 2025
@anandrewfiserv
Copy link

For node 23, I am getting a ERR_REQUIRE_ASYNC_MODULE error

@wictorwilen
Copy link

I used this as a workaround in the an async function, instead of having a top-level import for it:

const SSEClientTransport = (await import('@modelcontextprotocol/sdk/client/sse.js')).SSEClientTransport;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants