* fix(mcp): sync User-Agent version with package.json and add missing CLI tests
- VERSION in userAgent.ts was stuck at 0.3.1 while package.json is 0.3.3
- Add test coverage for validateApiKey, validateStripeAccount, and --tools deprecation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* style: fix Prettier formatting in test file
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(mcp): inject version at build time via PACKAGE_VERSION
Replace hardcoded VERSION constant with process.env.PACKAGE_VERSION,
injected at build time by scripts/inject-version.js. This mirrors the
pattern used by the shared toolkit (tsup define in tools/typescript)
and eliminates manual version sync between userAgent.ts and package.json.
- userAgent.ts: read VERSION from process.env.PACKAGE_VERSION
- scripts/inject-version.js: post-tsc step replaces the env reference
with the actual version from package.json
- jest.setup.ts: sets PACKAGE_VERSION for test environment
- package.json: updated build script to run inject-version.js
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(mcp): replace inject-version.js with tsup build system
Use tsup's define option to inline PACKAGE_VERSION at build time,
matching the pattern used by the shared toolkit (tools/typescript).
Removes the brittle post-build string replacement script.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: aptsalt <aptsalt@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Bump version from 0.3.2 to 0.3.3
* Fix package.json to include useragent.js
* Modify files field to include all dist files
Updated the 'files' field to include all files in the 'dist' directory.
* Proxy MCP client name in local stdio server User-Agent
Extract the client name from the MCP initialize request and include it
in the User-Agent header sent to mcp.stripe.com. When a client like
Cursor or Claude Desktop connects, the User-Agent now reads
"stripe-mcp-local/0.3.1 (cursor)" instead of just "stripe-mcp-local/0.3.1".
The HTTP transport creation is deferred until the first stdio message
arrives, so the client name from the initialize request can be captured
before any HTTP requests are made.
Fixes#250
* Fix CI test failure by moving utility functions to separate module
Move extractClientName and buildUserAgent into userAgent.ts so tests
don't transitively import the MCP SDK's streamableHttp transport, which
pulls in pkce-challenge (ESM-only) and breaks Jest in CI.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude
* Remove unnecessary re-export of extractClientName and buildUserAgent
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Committed-By-Agent: claude
---------
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Keshav Chakrapani <keshavc@stripe.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>