Skip to content

Commit 9a3867c

Browse files
authored
Merge pull request #63 from isaacus-dev/release-please--branches--main--changes--next--components--isaacus
release: 0.21.0
2 parents 4bdae01 + b63ab24 commit 9a3867c

35 files changed

Lines changed: 922 additions & 318 deletions

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.20.2"
2+
".": "0.21.0"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 5
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/isaacus%2Fisaacus-8cedb48141daf72e4c1a8b29dad13fb1025dd5edad384296be4bd28277b8d7cc.yml
3-
openapi_spec_hash: 306db110474ab42cf13c1ce7cf178cb3
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/isaacus%2Fisaacus-baf5ebdd05d1b5192759a356c2701131c47cfb5b7239a49fcb94e68d4210648c.yml
3+
openapi_spec_hash: 6ea786d56726e18156adf57915fcbe5f
44
config_hash: 9040e7359f066240ad536041fb2c5185

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Changelog
22

3+
## 0.21.0 (2026-03-03)
4+
5+
Full Changelog: [v0.20.2...v0.21.0](https://github.com/isaacus-dev/isaacus-typescript/compare/v0.20.2...v0.21.0)
6+
7+
### Features
8+
9+
* **mcp:** add an option to disable code tool ([b4ec89b](https://github.com/isaacus-dev/isaacus-typescript/commit/b4ec89ba60bf0baa492f407b6a7a2eab50237f67))
10+
11+
12+
### Bug Fixes
13+
14+
* **docs/contributing:** correct pnpm link command ([73bfd2a](https://github.com/isaacus-dev/isaacus-typescript/commit/73bfd2abf18103cca4a37898ee2f23c1444ce5bf))
15+
* **mcp:** initialize SDK lazily to avoid failing the connection on init errors ([875e4fc](https://github.com/isaacus-dev/isaacus-typescript/commit/875e4fc2ac4211278b81cfbf94dee10154d7c56d))
16+
* **mcp:** update prompt ([5537be5](https://github.com/isaacus-dev/isaacus-typescript/commit/5537be5ec545efbe38de1454b3f855bebe6fa387))
17+
18+
19+
### Chores
20+
21+
* **internal/client:** fix form-urlencoded requests ([a1d0fec](https://github.com/isaacus-dev/isaacus-typescript/commit/a1d0fecc8af11202a614786e2dceb2b0928a38ee))
22+
* **internal:** allow setting x-stainless-api-key header on mcp server requests ([edc6fb5](https://github.com/isaacus-dev/isaacus-typescript/commit/edc6fb5bd091f0183e868c40ce5613db65daa028))
23+
* **internal:** cache fetch instruction calls in MCP server ([0278e79](https://github.com/isaacus-dev/isaacus-typescript/commit/0278e790e2d7384a9318436103389a578d0cf79f))
24+
* **internal:** fix MCP Dockerfiles so they can be built without buildkit ([9c22d30](https://github.com/isaacus-dev/isaacus-typescript/commit/9c22d30b32e6e8a303257de8809942606a021717))
25+
* **internal:** fix MCP Dockerfiles so they can be built without buildkit ([2994023](https://github.com/isaacus-dev/isaacus-typescript/commit/2994023b8e36ac061cea8139025b8421e6c659fd))
26+
* **internal:** make MCP code execution location configurable via a flag ([0f48e15](https://github.com/isaacus-dev/isaacus-typescript/commit/0f48e15c7296096e24eeecfad6100aa6ca00c2de))
27+
* **internal:** move stringifyQuery implementation to internal function ([8a830b9](https://github.com/isaacus-dev/isaacus-typescript/commit/8a830b9f2be17ccc102d697da32dd8308d04a3fe))
28+
* **internal:** remove mock server code ([73f331b](https://github.com/isaacus-dev/isaacus-typescript/commit/73f331b4dbedeaa77b9fed681f263a9a1505c9a0))
29+
* **internal:** upgrade @modelcontextprotocol/sdk and hono ([56f145c](https://github.com/isaacus-dev/isaacus-typescript/commit/56f145cf805d5c34c0f84c86a200f0b692c62533))
30+
* **mcp:** correctly update version in sync with sdk ([b8844d4](https://github.com/isaacus-dev/isaacus-typescript/commit/b8844d441f8c7449e0df84da92665af836b833b4))
31+
* update mock server docs ([8bac25f](https://github.com/isaacus-dev/isaacus-typescript/commit/8bac25f74d58949f1f0c1a5c3e1cdf6dd7a1ca4a))
32+
333
## 0.20.2 (2026-02-18)
434

535
Full Changelog: [v0.20.1...v0.20.2](https://github.com/isaacus-dev/isaacus-typescript/compare/v0.20.1...v0.20.2)

CONTRIBUTING.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,11 @@ $ yarn link isaacus
6060
# With pnpm
6161
$ pnpm link --global
6262
$ cd ../my-package
63-
$ pnpm link -global isaacus
63+
$ pnpm link --global isaacus
6464
```
6565

6666
## Running tests
6767

68-
Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
69-
70-
```sh
71-
$ npx prism mock path/to/your/openapi.yml
72-
```
73-
7468
```sh
7569
$ yarn run test
7670
```

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "isaacus",
3-
"version": "0.20.2",
3+
"version": "0.21.0",
44
"description": "The official TypeScript library for the Isaacus API",
55
"author": "Isaacus <support@isaacus.com>",
66
"types": "dist/index.d.ts",

packages/mcp-server/Dockerfile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,12 @@ COPY . .
3737
RUN yarn install --frozen-lockfile && \
3838
yarn build
3939

40-
# Production stage
41-
FROM node:24-alpine
40+
FROM denoland/deno:alpine-2.7.1
41+
42+
# Install node and npm
43+
RUN apk add --no-cache nodejs npm
44+
45+
ENV LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
4246

4347
# Add non-root user
4448
RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001
@@ -57,6 +61,7 @@ COPY --from=builder /build/dist ./node_modules/isaacus
5761

5862
# Change ownership to nodejs user
5963
RUN chown -R nodejs:nodejs /app
64+
RUN chown -R nodejs:nodejs /deno-dir
6065

6166
# Switch to non-root user
6267
USER nodejs

packages/mcp-server/manifest.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"dxt_version": "0.2",
33
"name": "isaacus-mcp",
4-
"version": "0.11.0",
4+
"version": "0.21.0",
55
"description": "The official MCP Server for the Isaacus API",
66
"author": {
77
"name": "Isaacus",
@@ -18,7 +18,9 @@
1818
"entry_point": "index.js",
1919
"mcp_config": {
2020
"command": "node",
21-
"args": ["${__dirname}/index.js"],
21+
"args": [
22+
"${__dirname}/index.js"
23+
],
2224
"env": {
2325
"ISAACUS_API_KEY": "${user_config.ISAACUS_API_KEY}"
2426
}
@@ -39,5 +41,7 @@
3941
"node": ">=18.0.0"
4042
}
4143
},
42-
"keywords": ["api"]
44+
"keywords": [
45+
"api"
46+
]
4347
}

packages/mcp-server/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "isaacus-mcp",
3-
"version": "0.20.2",
3+
"version": "0.21.0",
44
"description": "The official MCP Server for the Isaacus API",
55
"author": "Isaacus <support@isaacus.com>",
66
"types": "dist/index.d.ts",
@@ -32,7 +32,7 @@
3232
"dependencies": {
3333
"isaacus": "file:../../dist/",
3434
"@cloudflare/cabidela": "^0.2.4",
35-
"@modelcontextprotocol/sdk": "^1.25.2",
35+
"@modelcontextprotocol/sdk": "^1.26.0",
3636
"@valtown/deno-http-worker": "^0.0.21",
3737
"cookie-parser": "^1.4.6",
3838
"cors": "^2.8.5",

packages/mcp-server/src/auth.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
import { IncomingMessage } from 'node:http';
44
import { ClientOptions } from 'isaacus';
5+
import { McpOptions } from './options';
56

6-
export const parseAuthHeaders = (req: IncomingMessage, required?: boolean): Partial<ClientOptions> => {
7+
export const parseClientAuthHeaders = (req: IncomingMessage, required?: boolean): Partial<ClientOptions> => {
78
if (req.headers.authorization) {
89
const scheme = req.headers.authorization.split(' ')[0]!;
910
const value = req.headers.authorization.slice(scheme.length + 1);
@@ -25,3 +26,17 @@ export const parseAuthHeaders = (req: IncomingMessage, required?: boolean): Part
2526
: req.headers['x-isaacus-api-key'];
2627
return { apiKey };
2728
};
29+
30+
export const getStainlessApiKey = (req: IncomingMessage, mcpOptions: McpOptions): string | undefined => {
31+
// Try to get the key from the x-stainless-api-key header
32+
const headerKey =
33+
Array.isArray(req.headers['x-stainless-api-key']) ?
34+
req.headers['x-stainless-api-key'][0]
35+
: req.headers['x-stainless-api-key'];
36+
if (headerKey && typeof headerKey === 'string') {
37+
return headerKey;
38+
}
39+
40+
// Fall back to value set in the mcpOptions (e.g. from environment variable), if provided
41+
return mcpOptions.stainlessApiKey;
42+
};
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
export const workerPath = require.resolve('./code-tool-worker.mjs');

0 commit comments

Comments
 (0)