From 1e6a92e41d2dbb34913ddc5a8331ed1fbfbf6e0a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 21:21:01 +0000 Subject: [PATCH 01/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index dab4c5c..5793132 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: 3c8ae3c713b0f5151a9be9b0cdeefb92 +config_hash: ffaf6d9c3318f968f81f096226f074c2 From 7cb8ac2db8981ddee73edb1a89cbe34f95839f05 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 21:22:07 +0000 Subject: [PATCH 02/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5793132..bbf9688 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: ffaf6d9c3318f968f81f096226f074c2 +config_hash: 31a9d4421c2238d40ded4572647f433c From 9ef98410b7ceab1bdded75415396c53f41fea69c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 21:22:49 +0000 Subject: [PATCH 03/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index bbf9688..cd9a6aa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: 31a9d4421c2238d40ded4572647f433c +config_hash: 9eebba57068a04ff872a84fd34214b9b From 882a6aebf47faa0598a2cbbc53eaca9dd02aef02 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 21:23:30 +0000 Subject: [PATCH 04/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index cd9a6aa..b164107 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: 9eebba57068a04ff872a84fd34214b9b +config_hash: b47de5a3580d529a9ae2e5d03d950ce7 From d0ebc7edc3a06b609929c5db32b68a11f8114077 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:10:25 +0000 Subject: [PATCH 05/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index b164107..53faa76 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: b47de5a3580d529a9ae2e5d03d950ce7 +config_hash: d08a1167139063ec97bf433d895adc8d From d01cc75d5a822e4a6eac14e965ef681fcf8d7628 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:11:29 +0000 Subject: [PATCH 06/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 53faa76..449db9c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: d08a1167139063ec97bf433d895adc8d +config_hash: 49386fa4009baff4a8e35e9453fa6297 From 7ddd2e9b84ef09c3e90655f0cd8ca004fd66f16f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:12:10 +0000 Subject: [PATCH 07/11] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 449db9c..3bea87e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 -config_hash: 49386fa4009baff4a8e35e9453fa6297 +config_hash: a144af00e5e74176674d0ea954cc02c5 From f9c3d8651c90cbbb454cd8d8c22de1fcc1830704 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 04:38:49 +0000 Subject: [PATCH 08/11] chore(internal): tweak CI branches --- .github/workflows/ci.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 263f2d7..a17bdb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,14 @@ name: CI on: push: - branches-ignore: - - 'generated' - - 'codegen/**' - - 'integrated/**' - - 'stl-preview-head/**' - - 'stl-preview-base/**' + branches: + - '**' + - '!integrated/**' + - '!stl-preview-head/**' + - '!stl-preview-base/**' + - '!generated' + - '!codegen/**' + - 'codegen/stl/**' pull_request: branches-ignore: - 'stl-preview-head/**' From 4676c2225c175647bcaaa336c45f770b5973dc52 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 04:41:24 +0000 Subject: [PATCH 09/11] chore(internal): support x-stainless-mcp-client-permissions headers in MCP servers --- packages/mcp-server/src/http.ts | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/mcp-server/src/http.ts b/packages/mcp-server/src/http.ts index c93ec25..8ca6fd1 100644 --- a/packages/mcp-server/src/http.ts +++ b/packages/mcp-server/src/http.ts @@ -40,9 +40,37 @@ const newServer = async ({ } } + // Parse x-stainless-mcp-client-permissions header to override permission options + // + // Note: Permissions are best-effort and intended to prevent clients from doing unexpected things; + // they're not a hard security boundary, so we allow arbitrary, client-driven overrides. + // + // See the Stainless MCP documentation for more details. + let effectiveMcpOptions = mcpOptions; + const clientPermissionsHeader = req.headers['x-stainless-mcp-client-permissions']; + if (typeof clientPermissionsHeader === 'string') { + try { + const parsed = JSON.parse(clientPermissionsHeader); + if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) { + effectiveMcpOptions = { + ...mcpOptions, + ...(typeof parsed.allow_http_gets === 'boolean' && { codeAllowHttpGets: parsed.allow_http_gets }), + ...(Array.isArray(parsed.allowed_methods) && { codeAllowedMethods: parsed.allowed_methods }), + ...(Array.isArray(parsed.blocked_methods) && { codeBlockedMethods: parsed.blocked_methods }), + }; + getLogger().info( + { clientPermissions: parsed }, + 'Overriding code execution permissions from x-stainless-mcp-client-permissions header', + ); + } + } catch (error) { + getLogger().warn({ error }, 'Failed to parse x-stainless-mcp-client-permissions header'); + } + } + await initMcpServer({ server: server, - mcpOptions: mcpOptions, + mcpOptions: effectiveMcpOptions, clientOptions: { ...clientOptions, ...authOptions, From 50c0ae45d4f06facdbb47a61500eb64784eec547 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 00:57:28 +0000 Subject: [PATCH 10/11] feat(api): api update --- .stats.yml | 4 +- src/resources/brand.ts | 245 ++++++++++++++++++++++++++++++ tests/api-resources/brand.test.ts | 1 + 3 files changed, 248 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3bea87e..bc49c22 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-a69e6793d72c7f91069972b64ff2e35b4ddfa62cd35d6451b7d63f95d5957951.yml -openapi_spec_hash: 8a77eef26c37dc2b63110169f0eef1f6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-c5d5abb4b31f6e352e3e02b47120e3f444377c1c564f141ebe0988b86ba5932e.yml +openapi_spec_hash: 8ef4803fbe33ae6472a4b8f660be7921 config_hash: a144af00e5e74176674d0ea954cc02c5 diff --git a/src/resources/brand.ts b/src/resources/brand.ts index e2a1dfb..d8287e3 100644 --- a/src/resources/brand.ts +++ b/src/resources/brand.ts @@ -5660,6 +5660,251 @@ export interface BrandRetrieveByNameParams { */ name: string; + /** + * Optional country code (GL parameter) to specify the country. This affects the + * geographic location used for search queries. + */ + country_gl?: + | 'ad' + | 'ae' + | 'af' + | 'ag' + | 'ai' + | 'al' + | 'am' + | 'an' + | 'ao' + | 'aq' + | 'ar' + | 'as' + | 'at' + | 'au' + | 'aw' + | 'az' + | 'ba' + | 'bb' + | 'bd' + | 'be' + | 'bf' + | 'bg' + | 'bh' + | 'bi' + | 'bj' + | 'bm' + | 'bn' + | 'bo' + | 'br' + | 'bs' + | 'bt' + | 'bv' + | 'bw' + | 'by' + | 'bz' + | 'ca' + | 'cc' + | 'cd' + | 'cf' + | 'cg' + | 'ch' + | 'ci' + | 'ck' + | 'cl' + | 'cm' + | 'cn' + | 'co' + | 'cr' + | 'cu' + | 'cv' + | 'cx' + | 'cy' + | 'cz' + | 'de' + | 'dj' + | 'dk' + | 'dm' + | 'do' + | 'dz' + | 'ec' + | 'ee' + | 'eg' + | 'eh' + | 'er' + | 'es' + | 'et' + | 'fi' + | 'fj' + | 'fk' + | 'fm' + | 'fo' + | 'fr' + | 'ga' + | 'gb' + | 'gd' + | 'ge' + | 'gf' + | 'gh' + | 'gi' + | 'gl' + | 'gm' + | 'gn' + | 'gp' + | 'gq' + | 'gr' + | 'gs' + | 'gt' + | 'gu' + | 'gw' + | 'gy' + | 'hk' + | 'hm' + | 'hn' + | 'hr' + | 'ht' + | 'hu' + | 'id' + | 'ie' + | 'il' + | 'in' + | 'io' + | 'iq' + | 'ir' + | 'is' + | 'it' + | 'jm' + | 'jo' + | 'jp' + | 'ke' + | 'kg' + | 'kh' + | 'ki' + | 'km' + | 'kn' + | 'kp' + | 'kr' + | 'kw' + | 'ky' + | 'kz' + | 'la' + | 'lb' + | 'lc' + | 'li' + | 'lk' + | 'lr' + | 'ls' + | 'lt' + | 'lu' + | 'lv' + | 'ly' + | 'ma' + | 'mc' + | 'md' + | 'mg' + | 'mh' + | 'mk' + | 'ml' + | 'mm' + | 'mn' + | 'mo' + | 'mp' + | 'mq' + | 'mr' + | 'ms' + | 'mt' + | 'mu' + | 'mv' + | 'mw' + | 'mx' + | 'my' + | 'mz' + | 'na' + | 'nc' + | 'ne' + | 'nf' + | 'ng' + | 'ni' + | 'nl' + | 'no' + | 'np' + | 'nr' + | 'nu' + | 'nz' + | 'om' + | 'pa' + | 'pe' + | 'pf' + | 'pg' + | 'ph' + | 'pk' + | 'pl' + | 'pm' + | 'pn' + | 'pr' + | 'ps' + | 'pt' + | 'pw' + | 'py' + | 'qa' + | 're' + | 'ro' + | 'rs' + | 'ru' + | 'rw' + | 'sa' + | 'sb' + | 'sc' + | 'sd' + | 'se' + | 'sg' + | 'sh' + | 'si' + | 'sj' + | 'sk' + | 'sl' + | 'sm' + | 'sn' + | 'so' + | 'sr' + | 'st' + | 'sv' + | 'sy' + | 'sz' + | 'tc' + | 'td' + | 'tf' + | 'tg' + | 'th' + | 'tj' + | 'tk' + | 'tl' + | 'tm' + | 'tn' + | 'to' + | 'tr' + | 'tt' + | 'tv' + | 'tw' + | 'tz' + | 'ua' + | 'ug' + | 'um' + | 'us' + | 'uy' + | 'uz' + | 'va' + | 'vc' + | 've' + | 'vg' + | 'vi' + | 'vn' + | 'vu' + | 'wf' + | 'ws' + | 'ye' + | 'yt' + | 'za' + | 'zm' + | 'zw'; + /** * Optional parameter to force the language of the retrieved brand data. */ diff --git a/tests/api-resources/brand.test.ts b/tests/api-resources/brand.test.ts index fac90b1..777601b 100644 --- a/tests/api-resources/brand.test.ts +++ b/tests/api-resources/brand.test.ts @@ -257,6 +257,7 @@ describe('resource brand', () => { test.skip('retrieveByName: required and optional params', async () => { const response = await client.brand.retrieveByName({ name: 'xxx', + country_gl: 'ad', force_language: 'albanian', maxSpeed: true, timeoutMS: 1000, From 736bb42460ec6b65ab5965a417e45fd1d141fca2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 00:58:01 +0000 Subject: [PATCH 11/11] release: 0.2.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 14 ++++++++++++++ package.json | 2 +- packages/mcp-server/manifest.json | 2 +- packages/mcp-server/package.json | 2 +- packages/mcp-server/src/server.ts | 2 +- src/version.ts | 2 +- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 466df71..2be9c43 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0" + ".": "0.2.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index dc66241..41fe81f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 0.2.0 (2026-03-18) + +Full Changelog: [v0.1.0...v0.2.0](https://github.com/brand-dot-dev/context-typescript-sdk/compare/v0.1.0...v0.2.0) + +### Features + +* **api:** api update ([50c0ae4](https://github.com/brand-dot-dev/context-typescript-sdk/commit/50c0ae45d4f06facdbb47a61500eb64784eec547)) + + +### Chores + +* **internal:** support x-stainless-mcp-client-permissions headers in MCP servers ([4676c22](https://github.com/brand-dot-dev/context-typescript-sdk/commit/4676c2225c175647bcaaa336c45f770b5973dc52)) +* **internal:** tweak CI branches ([f9c3d86](https://github.com/brand-dot-dev/context-typescript-sdk/commit/f9c3d8651c90cbbb454cd8d8c22de1fcc1830704)) + ## 0.1.0 (2026-03-14) Full Changelog: [v0.0.1...v0.1.0](https://github.com/brand-dot-dev/context-typescript-sdk/compare/v0.0.1...v0.1.0) diff --git a/package.json b/package.json index 30d2222..3c85128 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "context.dev", - "version": "0.1.0", + "version": "0.2.0", "description": "The official TypeScript library for the Context Dev API", "author": "Context Dev ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json index 8a37c55..bc1e614 100644 --- a/packages/mcp-server/manifest.json +++ b/packages/mcp-server/manifest.json @@ -1,7 +1,7 @@ { "dxt_version": "0.2", "name": "context.dev-mcp", - "version": "0.1.0", + "version": "0.2.0", "description": "The official MCP Server for the Context Dev API", "author": { "name": "Context Dev", diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 618babc..61c034a 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "context.dev-mcp", - "version": "0.1.0", + "version": "0.2.0", "description": "The official MCP Server for the Context Dev API", "author": "Context Dev ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts index 32f762f..a9749e3 100644 --- a/packages/mcp-server/src/server.ts +++ b/packages/mcp-server/src/server.ts @@ -20,7 +20,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) => new McpServer( { name: 'context_dev_api', - version: '0.1.0', + version: '0.2.0', }, { instructions: await getInstructions(stainlessApiKey), diff --git a/src/version.ts b/src/version.ts index 1baa228..bade2ff 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.1.0'; // x-release-please-version +export const VERSION = '0.2.0'; // x-release-please-version