Skip to content

Commit b1f58a3

Browse files
authored
Merge pull request #50 from brand-dot-dev/release-please--branches--main--changes--next--components--brand.dev
release: 0.30.0
2 parents 00836fc + 8991acd commit b1f58a3

File tree

12 files changed

+305
-15
lines changed

12 files changed

+305
-15
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
name: CI
22
on:
33
push:
4-
branches-ignore:
5-
- 'generated'
6-
- 'codegen/**'
7-
- 'integrated/**'
8-
- 'stl-preview-head/**'
9-
- 'stl-preview-base/**'
4+
branches:
5+
- '**'
6+
- '!integrated/**'
7+
- '!stl-preview-head/**'
8+
- '!stl-preview-base/**'
9+
- '!generated'
10+
- '!codegen/**'
11+
- 'codegen/stl/**'
1012
pull_request:
1113
branches-ignore:
1214
- 'stl-preview-head/**'

.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.29.3"
2+
".": "0.30.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: 20
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/brand-dev%2Fbrand.dev-584d3486a6c5bf7b68dcaacb0bde2ef5f648c158e5c5ebccc7a7684d95abc832.yml
3-
openapi_spec_hash: 29a53e1f96a2c5d9407f1a0938e301bf
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/brand-dev%2Fbrand.dev-67e4ffa39d74649a6ae6b21e9f86cffa83c8a02d640ca6b4d4a3e619b54fbd38.yml
3+
openapi_spec_hash: 762e7ea7ae23297cc6b01f600a485410
44
config_hash: 4cd3173ea1cce7183640aae49cfbb374

CHANGELOG.md

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

3+
## 0.30.0 (2026-03-18)
4+
5+
Full Changelog: [v0.29.3...v0.30.0](https://github.com/brand-dot-dev/typescript-sdk/compare/v0.29.3...v0.30.0)
6+
7+
### Features
8+
9+
* **api:** api update ([bde4a7d](https://github.com/brand-dot-dev/typescript-sdk/commit/bde4a7dbf808e1ecf8084805b598c684d18b8ae9))
10+
11+
12+
### Chores
13+
14+
* **internal:** support x-stainless-mcp-client-permissions headers in MCP servers ([e167d33](https://github.com/brand-dot-dev/typescript-sdk/commit/e167d33619f4ec64d1c30279a8104e35aceef339))
15+
* **internal:** tweak CI branches ([7143eb4](https://github.com/brand-dot-dev/typescript-sdk/commit/7143eb47d5df5b11f51dc8a47c4eb128f23f0e57))
16+
317
## 0.29.3 (2026-03-14)
418

519
Full Changelog: [v0.29.2...v0.29.3](https://github.com/brand-dot-dev/typescript-sdk/compare/v0.29.2...v0.29.3)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "brand.dev",
3-
"version": "0.29.3",
3+
"version": "0.30.0",
44
"description": "The official TypeScript library for the Brand Dev API",
55
"author": "Brand Dev <hello@brand.dev>",
66
"types": "dist/index.d.ts",

packages/mcp-server/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"dxt_version": "0.2",
33
"name": "brand.dev-mcp",
4-
"version": "0.29.3",
4+
"version": "0.30.0",
55
"description": "The official MCP Server for the Brand Dev API",
66
"author": {
77
"name": "Brand Dev",

packages/mcp-server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "brand.dev-mcp",
3-
"version": "0.29.3",
3+
"version": "0.30.0",
44
"description": "The official MCP Server for the Brand Dev API",
55
"author": "Brand Dev <hello@brand.dev>",
66
"types": "dist/index.d.ts",

packages/mcp-server/src/http.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,37 @@ const newServer = async ({
4040
}
4141
}
4242

43+
// Parse x-stainless-mcp-client-permissions header to override permission options
44+
//
45+
// Note: Permissions are best-effort and intended to prevent clients from doing unexpected things;
46+
// they're not a hard security boundary, so we allow arbitrary, client-driven overrides.
47+
//
48+
// See the Stainless MCP documentation for more details.
49+
let effectiveMcpOptions = mcpOptions;
50+
const clientPermissionsHeader = req.headers['x-stainless-mcp-client-permissions'];
51+
if (typeof clientPermissionsHeader === 'string') {
52+
try {
53+
const parsed = JSON.parse(clientPermissionsHeader);
54+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
55+
effectiveMcpOptions = {
56+
...mcpOptions,
57+
...(typeof parsed.allow_http_gets === 'boolean' && { codeAllowHttpGets: parsed.allow_http_gets }),
58+
...(Array.isArray(parsed.allowed_methods) && { codeAllowedMethods: parsed.allowed_methods }),
59+
...(Array.isArray(parsed.blocked_methods) && { codeBlockedMethods: parsed.blocked_methods }),
60+
};
61+
getLogger().info(
62+
{ clientPermissions: parsed },
63+
'Overriding code execution permissions from x-stainless-mcp-client-permissions header',
64+
);
65+
}
66+
} catch (error) {
67+
getLogger().warn({ error }, 'Failed to parse x-stainless-mcp-client-permissions header');
68+
}
69+
}
70+
4371
await initMcpServer({
4472
server: server,
45-
mcpOptions: mcpOptions,
73+
mcpOptions: effectiveMcpOptions,
4674
clientOptions: {
4775
...clientOptions,
4876
...authOptions,

packages/mcp-server/src/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) =>
2020
new McpServer(
2121
{
2222
name: 'brand_dev_api',
23-
version: '0.29.3',
23+
version: '0.30.0',
2424
},
2525
{
2626
instructions: await getInstructions(stainlessApiKey),

src/resources/brand.ts

Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5660,6 +5660,251 @@ export interface BrandRetrieveByNameParams {
56605660
*/
56615661
name: string;
56625662

5663+
/**
5664+
* Optional country code (GL parameter) to specify the country. This affects the
5665+
* geographic location used for search queries.
5666+
*/
5667+
country_gl?:
5668+
| 'ad'
5669+
| 'ae'
5670+
| 'af'
5671+
| 'ag'
5672+
| 'ai'
5673+
| 'al'
5674+
| 'am'
5675+
| 'an'
5676+
| 'ao'
5677+
| 'aq'
5678+
| 'ar'
5679+
| 'as'
5680+
| 'at'
5681+
| 'au'
5682+
| 'aw'
5683+
| 'az'
5684+
| 'ba'
5685+
| 'bb'
5686+
| 'bd'
5687+
| 'be'
5688+
| 'bf'
5689+
| 'bg'
5690+
| 'bh'
5691+
| 'bi'
5692+
| 'bj'
5693+
| 'bm'
5694+
| 'bn'
5695+
| 'bo'
5696+
| 'br'
5697+
| 'bs'
5698+
| 'bt'
5699+
| 'bv'
5700+
| 'bw'
5701+
| 'by'
5702+
| 'bz'
5703+
| 'ca'
5704+
| 'cc'
5705+
| 'cd'
5706+
| 'cf'
5707+
| 'cg'
5708+
| 'ch'
5709+
| 'ci'
5710+
| 'ck'
5711+
| 'cl'
5712+
| 'cm'
5713+
| 'cn'
5714+
| 'co'
5715+
| 'cr'
5716+
| 'cu'
5717+
| 'cv'
5718+
| 'cx'
5719+
| 'cy'
5720+
| 'cz'
5721+
| 'de'
5722+
| 'dj'
5723+
| 'dk'
5724+
| 'dm'
5725+
| 'do'
5726+
| 'dz'
5727+
| 'ec'
5728+
| 'ee'
5729+
| 'eg'
5730+
| 'eh'
5731+
| 'er'
5732+
| 'es'
5733+
| 'et'
5734+
| 'fi'
5735+
| 'fj'
5736+
| 'fk'
5737+
| 'fm'
5738+
| 'fo'
5739+
| 'fr'
5740+
| 'ga'
5741+
| 'gb'
5742+
| 'gd'
5743+
| 'ge'
5744+
| 'gf'
5745+
| 'gh'
5746+
| 'gi'
5747+
| 'gl'
5748+
| 'gm'
5749+
| 'gn'
5750+
| 'gp'
5751+
| 'gq'
5752+
| 'gr'
5753+
| 'gs'
5754+
| 'gt'
5755+
| 'gu'
5756+
| 'gw'
5757+
| 'gy'
5758+
| 'hk'
5759+
| 'hm'
5760+
| 'hn'
5761+
| 'hr'
5762+
| 'ht'
5763+
| 'hu'
5764+
| 'id'
5765+
| 'ie'
5766+
| 'il'
5767+
| 'in'
5768+
| 'io'
5769+
| 'iq'
5770+
| 'ir'
5771+
| 'is'
5772+
| 'it'
5773+
| 'jm'
5774+
| 'jo'
5775+
| 'jp'
5776+
| 'ke'
5777+
| 'kg'
5778+
| 'kh'
5779+
| 'ki'
5780+
| 'km'
5781+
| 'kn'
5782+
| 'kp'
5783+
| 'kr'
5784+
| 'kw'
5785+
| 'ky'
5786+
| 'kz'
5787+
| 'la'
5788+
| 'lb'
5789+
| 'lc'
5790+
| 'li'
5791+
| 'lk'
5792+
| 'lr'
5793+
| 'ls'
5794+
| 'lt'
5795+
| 'lu'
5796+
| 'lv'
5797+
| 'ly'
5798+
| 'ma'
5799+
| 'mc'
5800+
| 'md'
5801+
| 'mg'
5802+
| 'mh'
5803+
| 'mk'
5804+
| 'ml'
5805+
| 'mm'
5806+
| 'mn'
5807+
| 'mo'
5808+
| 'mp'
5809+
| 'mq'
5810+
| 'mr'
5811+
| 'ms'
5812+
| 'mt'
5813+
| 'mu'
5814+
| 'mv'
5815+
| 'mw'
5816+
| 'mx'
5817+
| 'my'
5818+
| 'mz'
5819+
| 'na'
5820+
| 'nc'
5821+
| 'ne'
5822+
| 'nf'
5823+
| 'ng'
5824+
| 'ni'
5825+
| 'nl'
5826+
| 'no'
5827+
| 'np'
5828+
| 'nr'
5829+
| 'nu'
5830+
| 'nz'
5831+
| 'om'
5832+
| 'pa'
5833+
| 'pe'
5834+
| 'pf'
5835+
| 'pg'
5836+
| 'ph'
5837+
| 'pk'
5838+
| 'pl'
5839+
| 'pm'
5840+
| 'pn'
5841+
| 'pr'
5842+
| 'ps'
5843+
| 'pt'
5844+
| 'pw'
5845+
| 'py'
5846+
| 'qa'
5847+
| 're'
5848+
| 'ro'
5849+
| 'rs'
5850+
| 'ru'
5851+
| 'rw'
5852+
| 'sa'
5853+
| 'sb'
5854+
| 'sc'
5855+
| 'sd'
5856+
| 'se'
5857+
| 'sg'
5858+
| 'sh'
5859+
| 'si'
5860+
| 'sj'
5861+
| 'sk'
5862+
| 'sl'
5863+
| 'sm'
5864+
| 'sn'
5865+
| 'so'
5866+
| 'sr'
5867+
| 'st'
5868+
| 'sv'
5869+
| 'sy'
5870+
| 'sz'
5871+
| 'tc'
5872+
| 'td'
5873+
| 'tf'
5874+
| 'tg'
5875+
| 'th'
5876+
| 'tj'
5877+
| 'tk'
5878+
| 'tl'
5879+
| 'tm'
5880+
| 'tn'
5881+
| 'to'
5882+
| 'tr'
5883+
| 'tt'
5884+
| 'tv'
5885+
| 'tw'
5886+
| 'tz'
5887+
| 'ua'
5888+
| 'ug'
5889+
| 'um'
5890+
| 'us'
5891+
| 'uy'
5892+
| 'uz'
5893+
| 'va'
5894+
| 'vc'
5895+
| 've'
5896+
| 'vg'
5897+
| 'vi'
5898+
| 'vn'
5899+
| 'vu'
5900+
| 'wf'
5901+
| 'ws'
5902+
| 'ye'
5903+
| 'yt'
5904+
| 'za'
5905+
| 'zm'
5906+
| 'zw';
5907+
56635908
/**
56645909
* Optional parameter to force the language of the retrieved brand data.
56655910
*/

0 commit comments

Comments
 (0)