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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions