Skip to content

Conversation

@stainless-app
Copy link
Contributor

@stainless-app stainless-app bot commented Dec 17, 2025

Automated Release PR

0.1.0 (2025-12-18)

Full Changelog: v0.0.20...v0.1.0

⚠ BREAKING CHANGES

  • mcp: remove deprecated tool schemes
  • mcp: Migration: To migrate, simply modify the command used to invoke the MCP server. Currently, the only supported tool scheme is code mode. Now, starting the server with just node /path/to/mcp/server or npx package-name will invoke code tools: changing your command to one of these is likely all you will need to do.

Features

Bug Fixes

  • mcp: pass base url to code tool (153ba08)

Chores

  • mcp: remove deprecated tool schemes (ee26040)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

@stainless-app
Copy link
Contributor Author

stainless-app bot commented Dec 17, 2025

🧪 Testing

To try out this version of the SDK, run:

npm install 'https://pkg.stainless.com/s/whopsdk-typescript/ee26040ec829994318a21acbe5ae344c6d3f435f/dist.tar.gz'

Expires at: Sat, 17 Jan 2026 21:00:33 GMT
Updated at: Thu, 18 Dec 2025 21:00:33 GMT

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--sdk branch from c3cbf25 to 88501c8 Compare December 17, 2025 21:33
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--sdk branch from 88501c8 to 1aac9a9 Compare December 18, 2025 19:32
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--sdk branch from 1aac9a9 to af44ae8 Compare December 18, 2025 20:31
This removes all tool schemes except for "code mode" tools. Specifically, this removes "all tools" and "dynamic tools" schemes. Additionally, this removes support for resource filtering, tags, jq filtering, and compatibility controls in MCP servers, as they are no longer necessary when using code mode.

# Migration

To migrate, simply modify the command used to invoke the MCP server. Currently, the only supported tool scheme is code mode. Now, starting the server with just `node /path/to/mcp/server` or `npx package-name` will invoke code tools: changing your command to one of these is likely all you will need to do.

Specifically, you must remove all flags including things like --resources, --tags, --client, --tools=dynamic, etc from your invocation command. The only supported flags are now `--port`, `--transport`, `--socket`, and `--tools=docs` (specifically for "docs"). These are also the only options available for http servers.

migration-effort: small
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--sdk branch from af44ae8 to 9232add Compare December 18, 2025 20:59
Comment on lines 18 to 24

switch (options.transport) {
case 'stdio':
await launchStdioServer(options);
await launchStdioServer();
break;
case 'http':
await launchStreamableHTTPServer(options, options.port ?? options.socket);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The stdio server transport silently ignores CLI options for tool selection because the options object is not passed to launchStdioServer, causing default tools to always be enabled.
Severity: HIGH | Confidence: High

🔍 Detailed Analysis

When the server is launched in stdio mode, command-line options for tool selection (like --no-tools docs) are ignored. This happens because launchStdioServer() is called without the options argument from index.ts. Consequently, inside initMcpServer, selectTools is called with undefined, and its options?.includeDocsTools ?? true logic defaults to true, always enabling the docsSearchTool. This creates a discrepancy where the tools logged at startup don't match the tools actually available to the server, which could confuse users.

💡 Suggested Fix

Pass the options object to launchStdioServer in index.ts. Update the launchStdioServer function signature in stdio.ts to accept options?: McpOptions. Then, pass these options when calling initMcpServer within launchStdioServer: initMcpServer({ server, mcpOptions: options }).

🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: packages/mcp-server/src/index.ts#L18-L24

Potential issue: When the server is launched in `stdio` mode, command-line options for
tool selection (like `--no-tools docs`) are ignored. This happens because
`launchStdioServer()` is called without the `options` argument from `index.ts`.
Consequently, inside `initMcpServer`, `selectTools` is called with `undefined`, and its
`options?.includeDocsTools ?? true` logic defaults to `true`, always enabling the
`docsSearchTool`. This creates a discrepancy where the tools logged at startup don't
match the tools actually available to the server, which could confuse users.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7727890

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant