Skip to content

link-cli mcp doctor: 'StdioServerTransport is not a constructor' — MCP server fails to start #183

Description

@AndrewAcomb

Summary

@stripe/link-cli@0.8.2 cannot start as an MCP stdio server. link-cli mcp doctor fails immediately:

ok: false
toolCount: 0
tools: []
warnings: []
errors[1]{code,message}:
  MCP_SERVER_FAILED,StdioServerTransport is not a constructor

This blocks any MCP-based integration of link-cli, including the recommended setup path:

link-cli mcp add --agent claude-code

The MCP server registers in the agent's config but fails to start at session boot.

Reproduction

npx --yes @stripe/link-cli mcp doctor

Expected

ok: true with the tools enumerated (auth/login, spend-request/*, mpp/pay, etc.).

Likely cause

StdioServerTransport is not a constructor typically means the import is hitting an object-shaped re-export rather than the class constructor. Most commonly this happens after an @modelcontextprotocol/sdk major-version bump that changes between default and named exports — the published dist/ may have been built against an older SDK shape.

A quick check of dist/ for how StdioServerTransport is imported (and a rebuild against the current @modelcontextprotocol/sdk) should resolve it.

Environment

  • @stripe/link-cli 0.8.2
  • node v22.22.0
  • macOS arm64

Scope

Isolated to the MCP transport. All other CLI subcommands work fine in this same install:

  • auth login / auth status — succeeds
  • spend-request create / request-approval / retrieve — succeeds
  • mpp pay (with an approved spend request) — succeeds end-to-end against a real merchant

Only the mcp doctor / mcp add path is broken.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions