Skip to content

release: 0.1.0-alpha.10#14

Open
stainless-app[bot] wants to merge 80 commits intomainfrom
release-please--branches--main--changes--next--components--dedalus-labs
Open

release: 0.1.0-alpha.10#14
stainless-app[bot] wants to merge 80 commits intomainfrom
release-please--branches--main--changes--next--components--dedalus-labs

Conversation

@stainless-app
Copy link
Contributor

@stainless-app stainless-app bot commented Nov 26, 2025

Automated Release PR

0.1.0-alpha.10 (2026-02-13)

Full Changelog: v0.1.0-alpha.9...v0.1.0-alpha.10

⚠ 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

  • api: add endpoints (f76b925)
  • api: add endpoints (48fe852)
  • api: add streaming (e188e04)
  • api: add streaming configuration (ff8bac6)
  • api: adjust parameters (8a91533)
  • api: api update (a6576c3)
  • api: api update (4722f77)
  • api: api update (94ba5c1)
  • api: api update (4f2d043)
  • api: api update (86bd375)
  • api: api update (568bc3a)
  • api: api update (347ada6)
  • api: api update (dc61e7a)
  • api: api update (5967ce0)
  • api: api update (3e37ce7)
  • api: api update (86aeabb)
  • api: api update (6aed08c)
  • api: api update (c9ccd5a)
  • api: auto exec tools (2dc1d78)
  • api: chat completions (8e28a07)
  • api: config update for dedalus-ai/dev (8c11861)
  • api: config update for dedalus-ai/dev (0df93e2)
  • api: Config update for dedalus-ai/dev (9ca4792)
  • api: decouple Model and DedalusModel (5a1ddd1)
  • api: dedalus model update (99bd4df)
  • api: id->name in DedalusModel (c05611a)
  • api: image support (9e0db2d)
  • api: improve types (c89f938)
  • api: logic adj (868d32b)
  • api: manual updates (c892aa2)
  • api: manual updates (758631f)
  • api: manual updates (fc8a369)
  • api: mcp server params (8c60036)
  • api: messages param nullable (254f9ef)
  • api: ModelConfig (1201c05)
  • api: polished types (f452201)
  • api: response format (765345e)
  • api: revert streaming for now (c649f85)
  • api: schema compiler landed (58cea7d)
  • api: spec concise (19c1c44)
  • api: standardize name casing with stainless initialism (a295370)
  • api: streaming change (088bd96)
  • api: structured outputs (76b74e5)
  • api: to_schema and Model class (acdf4b2)
  • api: update types (99536e8)
  • api: update via SDK Studio (a9c162d)
  • mcp: add code execution tool (d642b3b)
  • mcp: add detail field to docs search tool (f626d60)
  • mcp: add docs search tool (c84a5e0)
  • mcp: add initial server instructions (4f86ac3)
  • mcp: add logging when environment variable is set (5f554db)
  • mcp: add option for including docs tools (4886db9)
  • mcp: add option to infer mcp client (2ee9508)
  • mcp: add typescript check to code execution tool (024c566)
  • mcp: allow setting logging level (ed246b9)
  • mcp: enable experimental docs search tool (27a07ae)
  • mcp: enable optional code execution tool on http mcp servers (6f186fa)
  • mcp: expose client options in streamableHTTPApp (a033b07)
  • mcp: handle code mode calls in the Stainless API (5207502)
  • mcp: parse query string as mcp client options in mcp server (ed28a00)
  • mcp: return logs on code tool errors (0c59c13)
  • model: add DedalusModel (e0391a0)
  • runner: add type defns (d87bda2)
  • support for Effect schemas (8a268fb)
  • utils: new util funcs (51b9d14)

Bug Fixes

  • api: add byok provider model (d8db705)
  • api: add shared DedalusModel type (8f5e610)
  • api: add thought signature (4564ccb)
  • api: default auth server (3f2ef72)
  • api: docstring truncation (f184d22)
  • api: improve types (4ab879e)
  • api: mcp credential types (e62afda)
  • api: merge origin/next and update types for new schema structure (5e8a661)
  • api: narrow types (20c352d)
  • api: typed json objects (c69ac22)
  • api: update types/docstrings (d71015d)
  • ci: set permissions for DXT publish action (ea94670)
  • client: avoid memory leak with abort signals (700888e)
  • client: avoid removing abort listener too early (4cc1c31)
  • coerce nullable values to undefined (3d400a7)
  • docs: fix mcp installation instructions for remote servers (4a3480d)
  • mcp: add client instantiation options to code tool (42dcae2)
  • mcp: allow falling back for required env variables (f06717c)
  • mcp: avoid importing unsupported libraries on non-node environments (e21c04e)
  • mcp: avoid sending jq_filter to base API (b41959f)
  • mcpb: pin @anthropic-ai/mcpb version (779f76d)
  • mcp: correct code tool API endpoint (610456d)
  • mcp: correct code tool api output types (2ea93db)
  • mcp: do not fallback on baseUrl if environment env variable is set (15cb7cf)
  • mcp: fix cli argument parsing logic (d116c44)
  • mcp: fix options parsing (2a7dee1)
  • mcp: fix query options parsing (6ec3b6f)
  • mcp: fix tool description of jq_filter (5036dba)
  • mcp: fix uploading dxt release assets (c51827d)
  • mcp: generate additionalProperties=true for map schemas to avoid validation issues (7ab6742)
  • mcp: pass base url to code tool (9856067)
  • mcp: resolve a linting issue in server code (ad8cd0a)
  • mcp: return correct lines on typescript errors (4e10642)
  • mcp: return tool execution error on jq failure (734dc43)
  • mcp: reverse validJson capability option and limit scope (eca5383)
  • mcp: update code tool prompt (150ddaf)
  • mcp: use raw responses for binary content (caebbe8)

Performance Improvements

Chores

  • add .env files to .gitignore (99df579)
  • add example .env file (71bb990)
  • add package to package.json (df72067)
  • api: gitignore coding agents (7c58e25)
  • api: linting for launch (51ef300)
  • api: migrate pkg manager to uv (12a8f74)
  • api: point local dev to 4010 port for prism (cfe1692)
  • api: rename MCPToolExecution -> MCPToolResult (0b17150)
  • api: small type fixes (4b3528e)
  • auth: add minor auth params (608e4d7)
  • break long lines in snippets into multiline (776c1a9)
  • ci build action (ead219a)
  • ci: upgrade actions/github-script (7ada191)
  • client: do not parse responses with empty content-length (9d8eadd)
  • client: fix logger property type (a57767f)
  • client: qualify global Blob (e1a4ef9)
  • client: restructure abort controller binding (9e177d6)
  • codegen: internal codegen update (ea4018a)
  • configure new SDK language (5a3580c)
  • configure new SDK language (f85d93a)
  • deps: update dependency @types/node to v20.17.58 (4f267c5)
  • do not install brew dependencies in ./scripts/bootstrap by default (faf80c4)
  • extract some types in mcp docs (afd8a03)
  • internal: add health check to MCP server when running in HTTP mode (c0ee23f)
  • internal: allow basic filtering of methods allowed for MCP code mode (1e92341)
  • internal: always generate MCP server dockerfiles and upgrade associated dependencies (355c043)
  • internal: avoid type checking errors with ts-reset (5c5bb68)
  • internal: codegen related update (2c0bef3)
  • internal: codegen related update (40b2e37)
  • internal: codegen related update (1722351)
  • internal: codegen related update (979ace9)
  • internal: codegen related update (1f98c6a)
  • internal: codegen related update (ca19395)
  • internal: codegen related update (fb305c6)
  • internal: codegen related update (beb6aa1)
  • internal: codegen related update (63bb96f)
  • internal: codegen related update (982e9e4)
  • internal: codegen related update (1acc8d1)
  • internal: codegen related update (663de79)
  • internal: codegen related update (425c937)
  • internal: codegen related update (47b5877)
  • internal: codegen related update (6244dd7)
  • internal: codegen related update (9d7074a)
  • internal: codegen related update (9e8f31c)
  • internal: codegen related update (14f03bf)
  • internal: configure MCP Server hosting (f93d33c)
  • internal: fix dockerfile (00b0f7f)
  • internal: fix incremental formatting in some cases (7a91709)
  • internal: formatting change (96094f4)
  • internal: gitignore .mcpb files (56749a1)
  • internal: grammar fix (it's -> its) (d2ee048)
  • internal: ignore .eslintcache (b762b7f)
  • internal: improve layout of generated MCP server files (602ae0a)
  • internal: make mcp-server publishing public by defaut (c7401ae)
  • internal: refactor array check (168b3ab)
  • internal: refactor flag parsing for MCP servers and add debug flag (775dfb4)
  • internal: remove .eslintcache (b7be612)
  • internal: remove deprecated compilerOptions.baseUrl from tsconfig.json (6e1f08a)
  • internal: support oauth authorization code flow for MCP servers (3e213d5)
  • internal: update actions/checkout version (76cea61)
  • internal: update comment in script (182b82a)
  • internal: update global Error reference (33ba316)
  • internal: update lock file (4c12119)
  • internal: upgrade babel, qs, js-yaml (6883ebc)
  • internal: upgrade eslint (394adcd)
  • internal: use npm pack for build uploads (6e1f05a)
  • jsdoc: fix @link annotations to refer only to parts of the package‘s public interface (77e618c)
  • linting (057bf51)
  • mcp code tool explicit error message when missing a run function (455da8a)
  • mcp: add cors to oauth metadata route (220072a)
  • mcp: add friendlier MCP code tool errors on incorrect method invocations (35d66ed)
  • mcp: add intent param to execute tool (4064270)
  • mcp: add line numbers to code tool errors (0264767)
  • mcp: allow pointing docs_search tool at other URLs (efd6160)
  • mcp: clarify http auth error (10bc93d)
  • mcp: document remote server in README.md (fa265eb)
  • mcp: forward STAINLESS_API_KEY to docs search endpoint (461b8ed)
  • mcp: minor cleanup of types and package.json (1222f8e)
  • mcp: pass intent param to execute handler (fb67ec1)
  • mcp: remove deprecated tool schemes (cd9f160)
  • mcp: rename dxt to mcpb (1af1490)
  • mcp: up tsconfig lib version to es2022 (1cbb087)
  • mcp: update lockfile (23018bd)
  • mcp: update package.json (1c55ce0)
  • mcp: update README (0ce5614)
  • mcp: update types (536e22b)
  • mcp: upgrade dependencies (3605367)
  • mcp: upgrade jq-web (83b2b3a)
  • mcp: upload dxt as release asset (2520183)
  • update @stainless-api/prism-cli to v5.15.0 (7a9d8ce)
  • update CI script (532493a)
  • update lockfile (7fc67b2)
  • use latest @modelcontextprotocol/sdk (ab3663d)
  • use structured error when code execution tool errors (e6cd3bc)

Documentation

  • api: add examples for zod & effect (097804e)
  • mcp: add a README button for one-click add to Cursor (6d89547)
  • mcp: add a README link to add server to VS Code or Claude Code (d71586b)
  • prominently feature MCP server setup in root SDK readmes (8c520b1)

Refactors

  • api: types for mcp server serialization (bee486b)
  • api: update auth types (161c23e)
  • helpers: fix example import path (a78e1db)
  • runner: standardize dir layout (c7cf1d5)

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 Nov 26, 2025

🧪 Testing

To try out this version of the SDK, run:

npm install 'https://pkg.stainless.com/s/dedalus-sdk-typescript/1e923417582f2687d51f49e82126cc5af788ae26/dist.tar.gz'

Expires at: Wed, 11 Mar 2026 20:28:14 GMT
Updated at: Mon, 09 Feb 2026 20:28:14 GMT

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from e2f1f5a to 75460ab Compare December 1, 2025 02:25
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 75460ab to 5b23bcc Compare December 1, 2025 12:37
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 5b23bcc to 8174c95 Compare December 1, 2025 14:35
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 8174c95 to 0659a21 Compare December 1, 2025 17:19
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 0659a21 to fab7b9d Compare December 1, 2025 22:13
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from fab7b9d to 778d927 Compare December 2, 2025 13:02
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 778d927 to 990b768 Compare December 4, 2025 15:30
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 990b768 to 1c2c521 Compare December 4, 2025 21:24
cursor[bot]

This comment was marked as outdated.

Moves the code-mode execution to an endpoint in the Stainless API.
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 1c2c521 to fc63120 Compare December 5, 2025 18:02
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from fc63120 to 2b60546 Compare December 5, 2025 20:40
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 2b60546 to 2c3af15 Compare December 5, 2025 21:17
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 2c3af15 to 5c1e56b Compare December 5, 2025 23:37
Adds generated MCP server instructions, to help agents get easy tasks on the first try.
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 16e5b66 to 811e519 Compare February 4, 2026 19:34
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 811e519 to 6818c49 Compare February 6, 2026 17:00
return null;
}
}): Promise<McpServer | null> => {
const server = await newMcpServer();
Copy link

Choose a reason for hiding this comment

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

Instructions fetched from remote API on every HTTP request

Medium Severity

In HTTP transport mode, newServer calls await newMcpServer() on every incoming POST request. newMcpServer now awaits getInstructions(), which makes an external HTTP fetch to the Stainless API. This adds a full network round-trip of latency to every single MCP tool invocation. The instructions are effectively static and don't change between requests, yet they're re-fetched each time. Previously, newMcpServer was synchronous and incurred no network overhead.

Additional Locations (1)

Fix in Cursor Fix in Web

@cursor

This comment has been minimized.

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 6818c49 to a1f6ffe Compare February 7, 2026 15:33
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from a1f6ffe to 1e56388 Compare February 9, 2026 18:34
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 1e56388 to 2c41bcf Compare February 9, 2026 20:28
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 2c41bcf to fee0117 Compare February 10, 2026 06:33
`;

return instructions;
}
Copy link

Choose a reason for hiding this comment

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

Network errors in instructions fetch crash the server

Medium Severity

getInstructions() gracefully handles HTTP error responses with a fallback (lines 33–44), indicating instructions are meant to be optional. However, the fetch call on line 24 has no try-catch, so a network-level error (DNS failure, timeout, connection refused) throws an unhandled exception that propagates up through newMcpServer. In stdio mode this prevents the server from starting at all; in HTTP mode every incoming request fails with a 500. Environments where the Stainless API is unreachable — air-gapped networks, corporate firewalls, or API outages — would be unable to use the MCP server despite the intended fallback.

Fix in Cursor Fix in Web

@cursor

This comment has been minimized.

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from fee0117 to b61eef5 Compare February 10, 2026 07:54
: implementation.name.toLowerCase().includes('cursor') ? 'cursor'
: undefined;
mcpOptions.capabilities = {
...(mcpOptions.client && knownClients[mcpOptions.client]),
Copy link

Choose a reason for hiding this comment

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

Remote fetch on every HTTP request degrades performance

Medium Severity

newMcpServer() calls getInstructions() which makes a remote HTTP fetch to api.stainless.com on every invocation. In HTTP transport mode, newMcpServer() is called from newServer() on every single POST request. The old newMcpServer was synchronous and cheap. Now every MCP tool invocation in HTTP mode incurs an additional round-trip to a remote API for instructions that are essentially static, adding unnecessary latency to every request.

Additional Locations (1)

Fix in Cursor Fix in Web

@cursor

This comment has been minimized.

@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from b61eef5 to 1eae9e5 Compare February 11, 2026 14:13
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 1eae9e5 to 87e3c36 Compare February 13, 2026 21:41
@stainless-app stainless-app bot force-pushed the release-please--branches--main--changes--next--components--dedalus-labs branch from 87e3c36 to d99b35f Compare February 13, 2026 23:14
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is ON. A Cloud Agent has been kicked off to fix the reported issue.

} catch (error) {
res.status(400).json({
jsonrpc: '2.0',
error: {
Copy link

Choose a reason for hiding this comment

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

HTTP query options are no longer applied

Medium Severity

newServer now passes the default mcpOptions directly into initMcpServer and no longer parses request query params. Per-request URL options are silently ignored, so HTTP clients cannot override tool settings and invalid query options are never validated.

Additional Locations (1)

Fix in Cursor Fix in Web

@cursor
Copy link

cursor bot commented Feb 13, 2026

Bugbot Autofix prepared fixes for 1 of the 1 bugs found in the latest run.

  • ✅ Fixed: HTTP query options are no longer applied
    • Restored parseQueryOptions call to parse req.query, merge with default options, and return 400 errors for invalid query parameter validation.

Create PR

Or push these changes by commenting:

@cursor push 9788244317
Preview (9788244317)
diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts
--- a/packages/mcp-server/src/http.ts
+++ b/packages/mcp-server/src/http.ts
@@ -6,13 +6,14 @@
 import express from 'express';
 import morgan from 'morgan';
 import morganBody from 'morgan-body';
+import { fromError } from 'zod-validation-error/v3';
 import { parseAuthHeaders } from './auth';
-import { McpOptions } from './options';
+import { McpOptions, parseQueryOptions } from './options';
 import { initMcpServer, newMcpServer } from './server';
 
 const newServer = async ({
   clientOptions,
-  mcpOptions,
+  mcpOptions: defaultMcpOptions,
   req,
   res,
 }: {
@@ -23,7 +24,21 @@
 }): Promise<McpServer | null> => {
   const server = await newMcpServer();
 
+  let mcpOptions: McpOptions;
   try {
+    mcpOptions = parseQueryOptions(defaultMcpOptions, req.query);
+  } catch (error) {
+    res.status(400).json({
+      jsonrpc: '2.0',
+      error: {
+        code: -32000,
+        message: `Invalid request: ${fromError(error)}`,
+      },
+    });
+    return null;
+  }
+
+  try {
     const authOptions = parseAuthHeaders(req, false);
     await initMcpServer({
       server: server,

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