@forgespace/branding-mcp 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.6.2] - 2026-03-07
6
+
7
+ ### Fixed
8
+
9
+ - **WCAG contrast compliance** — Secondary (#3B82F6→#2563EB) and accent (#F59E0B→#B45309) colors now pass AA 4.5:1 on white backgrounds. Brand consistency score 75→100
10
+
11
+ ## [0.6.1] - 2026-03-06
12
+
13
+ ### Changed
14
+
15
+ - **Modern Horn brand templates** — Default Forge Space logo SVGs updated to Modern Horn icon geometry and Sora wordmark (#A78BFA/#8B5CF6/#6D28D9)
16
+
5
17
  ## [0.6.0] - 2026-03-01
6
18
 
7
19
  ### Added
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
- # @forgespace/branding-mcp
2
-
3
- > **AI-powered brand identity generation via MCP — part of the [Forge Space](https://github.com/Forge-Space) open developer workspace.**
1
+ <div align="center">
2
+ <a href="https://forgespace.co">
3
+ <img src="https://brand.forgespace.co/logos/wordmark.svg" alt="Forge Space" height="48">
4
+ </a>
5
+ <h1>@forgespace/branding-mcp</h1>
6
+ <p>AI-powered brand identity generation via MCP — part of the <a href="https://github.com/Forge-Space">Forge Space</a> open developer workspace.</p>
7
+ </div>
4
8
 
5
9
  [![CI](https://github.com/Forge-Space/branding-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Forge-Space/branding-mcp/actions/workflows/ci.yml)
6
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -1 +1 @@
1
- {"version":3,"file":"brand-templates.d.ts","sourceRoot":"","sources":["../../src/resources/brand-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2DzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAU9D"}
1
+ {"version":3,"file":"brand-templates.d.ts","sourceRoot":"","sources":["../../src/resources/brand-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4WzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoB9D"}
@@ -54,6 +54,305 @@ const TEMPLATES = [
54
54
  bodyCategory: 'sans-serif',
55
55
  },
56
56
  ];
57
+ const FORGE_SPACE_BRAND = {
58
+ id: 'brand_forgespace_001',
59
+ name: 'Forge Space',
60
+ tagline: 'The developer tools ecosystem.',
61
+ industry: 'technology',
62
+ style: 'tech',
63
+ colors: {
64
+ primary: {
65
+ name: 'Forge Purple',
66
+ hex: '#7c3aed',
67
+ hsl: { h: 262, s: 83, l: 58 },
68
+ usage: 'Primary brand color',
69
+ },
70
+ secondary: {
71
+ name: 'Forge Blue',
72
+ hex: '#2563EB',
73
+ hsl: { h: 217, s: 83, l: 53 },
74
+ usage: 'Secondary brand color',
75
+ },
76
+ accent: {
77
+ name: 'Forge Amber',
78
+ hex: '#B45309',
79
+ hsl: { h: 33, s: 92, l: 37 },
80
+ usage: 'Accent and highlight color',
81
+ },
82
+ neutral: [
83
+ {
84
+ name: 'neutral-100',
85
+ hex: '#f2f2f3',
86
+ hsl: { h: 262, s: 5, l: 95 },
87
+ usage: 'Neutral shade 1',
88
+ },
89
+ {
90
+ name: 'neutral-200',
91
+ hex: '#e5e4e7',
92
+ hsl: { h: 262, s: 5, l: 90 },
93
+ usage: 'Neutral shade 2',
94
+ },
95
+ {
96
+ name: 'neutral-300',
97
+ hex: '#cbc9cf',
98
+ hsl: { h: 262, s: 5, l: 80 },
99
+ usage: 'Neutral shade 3',
100
+ },
101
+ {
102
+ name: 'neutral-400',
103
+ hex: '#98949e',
104
+ hsl: { h: 262, s: 5, l: 60 },
105
+ usage: 'Neutral shade 4',
106
+ },
107
+ {
108
+ name: 'neutral-500',
109
+ hex: '#65616b',
110
+ hsl: { h: 262, s: 5, l: 40 },
111
+ usage: 'Neutral shade 5',
112
+ },
113
+ {
114
+ name: 'neutral-600',
115
+ hex: '#323036',
116
+ hsl: { h: 262, s: 5, l: 20 },
117
+ usage: 'Neutral shade 6',
118
+ },
119
+ {
120
+ name: 'neutral-700',
121
+ hex: '#19181b',
122
+ hsl: { h: 262, s: 5, l: 10 },
123
+ usage: 'Neutral shade 7',
124
+ },
125
+ {
126
+ name: 'neutral-800',
127
+ hex: '#0d0c0d',
128
+ hsl: { h: 262, s: 5, l: 5 },
129
+ usage: 'Neutral shade 8',
130
+ },
131
+ ],
132
+ semantic: {
133
+ success: {
134
+ name: 'success',
135
+ hex: '#22c35d',
136
+ hsl: { h: 142, s: 70, l: 45 },
137
+ usage: 'Success states',
138
+ },
139
+ warning: {
140
+ name: 'warning',
141
+ hex: '#f59f0a',
142
+ hsl: { h: 38, s: 92, l: 50 },
143
+ usage: 'Warning states',
144
+ },
145
+ error: { name: 'error', hex: '#ef4343', hsl: { h: 0, s: 84, l: 60 }, usage: 'Error states' },
146
+ info: {
147
+ name: 'info',
148
+ hex: '#368fe7',
149
+ hsl: { h: 210, s: 79, l: 56 },
150
+ usage: 'Informational states',
151
+ },
152
+ },
153
+ contrast: {
154
+ 'primary-on-white': { ratio: 5.67, aa: true, aaLarge: true, aaa: false, aaaLarge: true },
155
+ 'primary-on-dark': { ratio: 3.07, aa: false, aaLarge: true, aaa: false, aaaLarge: false },
156
+ 'secondary-on-white': { ratio: 5.17, aa: true, aaLarge: true, aaa: false, aaaLarge: true },
157
+ 'accent-on-white': { ratio: 5.02, aa: true, aaLarge: true, aaa: false, aaaLarge: true },
158
+ },
159
+ },
160
+ typography: {
161
+ headingFont: 'Space Grotesk',
162
+ bodyFont: 'IBM Plex Sans',
163
+ monoFont: 'IBM Plex Mono',
164
+ baseSize: 16,
165
+ scaleRatio: 1.25,
166
+ steps: [
167
+ { name: 'xs', size: '10.24px', lineHeight: '1.6', letterSpacing: '0.02em', weight: 400 },
168
+ { name: 'sm', size: '12.8px', lineHeight: '1.6', letterSpacing: '0.02em', weight: 400 },
169
+ { name: 'base', size: '16px', lineHeight: '1.6', letterSpacing: '0em', weight: 400 },
170
+ { name: 'lg', size: '20px', lineHeight: '1.5', letterSpacing: '0em', weight: 400 },
171
+ { name: 'xl', size: '25px', lineHeight: '1.3', letterSpacing: '-0.01em', weight: 400 },
172
+ { name: '2xl', size: '31.25px', lineHeight: '1.3', letterSpacing: '-0.01em', weight: 600 },
173
+ { name: '3xl', size: '39.06px', lineHeight: '1.2', letterSpacing: '-0.01em', weight: 600 },
174
+ { name: '4xl', size: '48.83px', lineHeight: '1.2', letterSpacing: '-0.01em', weight: 700 },
175
+ { name: '5xl', size: '61.04px', lineHeight: '1.2', letterSpacing: '-0.01em', weight: 700 },
176
+ ],
177
+ },
178
+ spacing: {
179
+ unit: 4,
180
+ values: {
181
+ '0': '0px',
182
+ '1': '4px',
183
+ '2': '8px',
184
+ '3': '12px',
185
+ '4': '16px',
186
+ '5': '20px',
187
+ '6': '24px',
188
+ '8': '32px',
189
+ '10': '40px',
190
+ '12': '48px',
191
+ '16': '64px',
192
+ '20': '80px',
193
+ '24': '96px',
194
+ '0.5': '2px',
195
+ '1.5': '6px',
196
+ '2.5': '10px',
197
+ },
198
+ },
199
+ shadows: {
200
+ levels: {
201
+ none: {
202
+ offsetX: 0,
203
+ offsetY: 0,
204
+ blur: 0,
205
+ spread: 0,
206
+ color: 'rgba(47, 36, 66, 0)',
207
+ opacity: 0,
208
+ cssValue: 'none',
209
+ },
210
+ sm: {
211
+ offsetX: 0,
212
+ offsetY: 1,
213
+ blur: 2,
214
+ spread: 0,
215
+ color: 'rgba(47, 36, 66, 0.05)',
216
+ opacity: 0.05,
217
+ cssValue: '1px 1px 2px 0px rgba(47, 36, 66, 0.05)',
218
+ },
219
+ md: {
220
+ offsetX: 0,
221
+ offsetY: 2,
222
+ blur: 4,
223
+ spread: -1,
224
+ color: 'rgba(47, 36, 66, 0.08)',
225
+ opacity: 0.08,
226
+ cssValue: '2px 2px 4px -1px rgba(47, 36, 66, 0.08)',
227
+ },
228
+ lg: {
229
+ offsetX: 0,
230
+ offsetY: 4,
231
+ blur: 8,
232
+ spread: -2,
233
+ color: 'rgba(47, 36, 66, 0.1)',
234
+ opacity: 0.1,
235
+ cssValue: '4px 4px 8px -2px rgba(47, 36, 66, 0.1)',
236
+ },
237
+ xl: {
238
+ offsetX: 0,
239
+ offsetY: 8,
240
+ blur: 16,
241
+ spread: -4,
242
+ color: 'rgba(47, 36, 66, 0.12)',
243
+ opacity: 0.12,
244
+ cssValue: '8px 8px 16px -4px rgba(47, 36, 66, 0.12)',
245
+ },
246
+ '2xl': {
247
+ offsetX: 0,
248
+ offsetY: 16,
249
+ blur: 32,
250
+ spread: -8,
251
+ color: 'rgba(47, 36, 66, 0.15)',
252
+ opacity: 0.15,
253
+ cssValue: '16px 16px 32px -8px rgba(47, 36, 66, 0.15)',
254
+ },
255
+ },
256
+ },
257
+ borders: {
258
+ radii: {
259
+ none: '0px',
260
+ sm: '2px',
261
+ md: '4px',
262
+ lg: '8px',
263
+ xl: '12px',
264
+ full: '9999px',
265
+ circle: '9999px',
266
+ },
267
+ widths: {
268
+ thin: '1px',
269
+ medium: '2px',
270
+ thick: '3px',
271
+ },
272
+ },
273
+ motion: {
274
+ durations: {
275
+ instant: '0ms',
276
+ fast: '80ms',
277
+ normal: '150ms',
278
+ slow: '250ms',
279
+ slower: '350ms',
280
+ },
281
+ easings: {
282
+ 'ease-in': 'cubic-bezier(0.55, 0, 1, 1)',
283
+ 'ease-out': 'cubic-bezier(0, 0, 0.1, 1)',
284
+ 'ease-in-out': 'cubic-bezier(0.55, 0, 0.1, 1)',
285
+ spring: 'cubic-bezier(0.2, 1.6, 0.4, 1)',
286
+ bounce: 'cubic-bezier(0.2, 1.4, 0.4, 1)',
287
+ },
288
+ transitions: {
289
+ fade: 'opacity 150ms cubic-bezier(0, 0, 0.1, 1)',
290
+ slide: 'transform 150ms cubic-bezier(0, 0, 0.1, 1)',
291
+ scale: 'transform 80ms cubic-bezier(0, 0, 0.1, 1)',
292
+ color: 'color 250ms cubic-bezier(0, 0, 0.1, 1), background-color 250ms cubic-bezier(0, 0, 0.1, 1)',
293
+ all: 'all 150ms cubic-bezier(0, 0, 0.1, 1)',
294
+ },
295
+ },
296
+ gradients: {
297
+ presets: {
298
+ hero: {
299
+ type: 'linear',
300
+ angle: 315,
301
+ stops: [
302
+ { color: '#7c3aed', position: 0 },
303
+ { color: '#3B82F6', position: 100 },
304
+ ],
305
+ cssValue: 'linear-gradient(315deg, #7c3aed 0%, #3B82F6 100%)',
306
+ },
307
+ button: {
308
+ type: 'linear',
309
+ angle: 315,
310
+ stops: [
311
+ { color: '#F59E0B', position: 0 },
312
+ { color: '#7c3aed', position: 100 },
313
+ ],
314
+ cssValue: 'linear-gradient(315deg, #F59E0B 0%, #7c3aed 100%)',
315
+ },
316
+ card: {
317
+ type: 'linear',
318
+ angle: 315,
319
+ stops: [
320
+ { color: '#f2f2f3', position: 0 },
321
+ { color: '#cacace', position: 100 },
322
+ ],
323
+ cssValue: 'linear-gradient(315deg, #f2f2f3 0%, #cacace 100%)',
324
+ },
325
+ text: {
326
+ type: 'linear',
327
+ angle: 315,
328
+ stops: [
329
+ { color: '#7c3aed', position: 0 },
330
+ { color: '#F59E0B', position: 100 },
331
+ ],
332
+ cssValue: 'linear-gradient(315deg, #7c3aed 0%, #F59E0B 100%)',
333
+ },
334
+ background: {
335
+ type: 'linear',
336
+ angle: 315,
337
+ stops: [
338
+ { color: '#f2f2f3', position: 0 },
339
+ { color: '#0d0c0d', position: 100 },
340
+ ],
341
+ cssValue: 'linear-gradient(315deg, #f2f2f3 0%, #0d0c0d 100%)',
342
+ },
343
+ },
344
+ },
345
+ logo: {
346
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="64" viewBox="0 0 200 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n <text x="78" y="30" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">FORGE</text>\n <text x="78" y="52" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">SPACE</text>\n</svg>',
347
+ variants: {
348
+ wordmark: '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="64" viewBox="0 0 200 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n <text x="78" y="30" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">FORGE</text>\n <text x="78" y="52" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">SPACE</text>\n</svg>',
349
+ monogram: '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n</svg>',
350
+ abstract: '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#8B5CF6"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#8B5CF6"/>\n</svg>',
351
+ icon: '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n</svg>',
352
+ },
353
+ },
354
+ createdAt: '2026-03-01T05:55:29.414Z',
355
+ };
57
356
  export function registerBrandTemplates(server) {
58
357
  server.resource('brand-templates', 'brand://templates', async () => ({
59
358
  contents: [
@@ -64,5 +363,14 @@ export function registerBrandTemplates(server) {
64
363
  },
65
364
  ],
66
365
  }));
366
+ server.resource('forge-space-brand', 'brand://templates/forge-space', async () => ({
367
+ contents: [
368
+ {
369
+ uri: 'brand://templates/forge-space',
370
+ text: JSON.stringify(FORGE_SPACE_BRAND, null, 2),
371
+ mimeType: 'application/json',
372
+ },
373
+ ],
374
+ }));
67
375
  }
68
376
  //# sourceMappingURL=brand-templates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand-templates.js","sourceRoot":"","sources":["../../src/resources/brand-templates.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG;IAChB;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,YAAY;QAC7B,YAAY,EAAE,YAAY;KAC3B;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,WAAW;QACpB,eAAe,EAAE,OAAO;QACxB,YAAY,EAAE,OAAO;KACtB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,WAAW;QACpB,eAAe,EAAE,OAAO;QACxB,YAAY,EAAE,YAAY;KAC3B;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,SAAS;QAC1B,YAAY,EAAE,YAAY;KAC3B;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,YAAY;QAC7B,YAAY,EAAE,YAAY;KAC3B;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,qBAAqB;QAC9B,eAAe,EAAE,SAAS;QAC1B,YAAY,EAAE,YAAY;KAC3B;CACF,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACnE,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,mBAAmB;gBACxB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxC,QAAQ,EAAE,kBAAkB;aAC7B;SACF;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"brand-templates.js","sourceRoot":"","sources":["../../src/resources/brand-templates.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgespace/branding-mcp",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "MCP server for AI-powered brand identity generation — color palettes, typography systems, design tokens, and brand guidelines with multi-format export",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { BrandIdentity } from '../lib/types.js';
2
3
 
3
4
  const TEMPLATES = [
4
5
  {
@@ -57,6 +58,310 @@ const TEMPLATES = [
57
58
  },
58
59
  ];
59
60
 
61
+ const FORGE_SPACE_BRAND: BrandIdentity = {
62
+ id: 'brand_forgespace_001',
63
+ name: 'Forge Space',
64
+ tagline: 'The developer tools ecosystem.',
65
+ industry: 'technology',
66
+ style: 'tech',
67
+ colors: {
68
+ primary: {
69
+ name: 'Forge Purple',
70
+ hex: '#7c3aed',
71
+ hsl: { h: 262, s: 83, l: 58 },
72
+ usage: 'Primary brand color',
73
+ },
74
+ secondary: {
75
+ name: 'Forge Blue',
76
+ hex: '#2563EB',
77
+ hsl: { h: 217, s: 83, l: 53 },
78
+ usage: 'Secondary brand color',
79
+ },
80
+ accent: {
81
+ name: 'Forge Amber',
82
+ hex: '#B45309',
83
+ hsl: { h: 33, s: 92, l: 37 },
84
+ usage: 'Accent and highlight color',
85
+ },
86
+ neutral: [
87
+ {
88
+ name: 'neutral-100',
89
+ hex: '#f2f2f3',
90
+ hsl: { h: 262, s: 5, l: 95 },
91
+ usage: 'Neutral shade 1',
92
+ },
93
+ {
94
+ name: 'neutral-200',
95
+ hex: '#e5e4e7',
96
+ hsl: { h: 262, s: 5, l: 90 },
97
+ usage: 'Neutral shade 2',
98
+ },
99
+ {
100
+ name: 'neutral-300',
101
+ hex: '#cbc9cf',
102
+ hsl: { h: 262, s: 5, l: 80 },
103
+ usage: 'Neutral shade 3',
104
+ },
105
+ {
106
+ name: 'neutral-400',
107
+ hex: '#98949e',
108
+ hsl: { h: 262, s: 5, l: 60 },
109
+ usage: 'Neutral shade 4',
110
+ },
111
+ {
112
+ name: 'neutral-500',
113
+ hex: '#65616b',
114
+ hsl: { h: 262, s: 5, l: 40 },
115
+ usage: 'Neutral shade 5',
116
+ },
117
+ {
118
+ name: 'neutral-600',
119
+ hex: '#323036',
120
+ hsl: { h: 262, s: 5, l: 20 },
121
+ usage: 'Neutral shade 6',
122
+ },
123
+ {
124
+ name: 'neutral-700',
125
+ hex: '#19181b',
126
+ hsl: { h: 262, s: 5, l: 10 },
127
+ usage: 'Neutral shade 7',
128
+ },
129
+ {
130
+ name: 'neutral-800',
131
+ hex: '#0d0c0d',
132
+ hsl: { h: 262, s: 5, l: 5 },
133
+ usage: 'Neutral shade 8',
134
+ },
135
+ ],
136
+ semantic: {
137
+ success: {
138
+ name: 'success',
139
+ hex: '#22c35d',
140
+ hsl: { h: 142, s: 70, l: 45 },
141
+ usage: 'Success states',
142
+ },
143
+ warning: {
144
+ name: 'warning',
145
+ hex: '#f59f0a',
146
+ hsl: { h: 38, s: 92, l: 50 },
147
+ usage: 'Warning states',
148
+ },
149
+ error: { name: 'error', hex: '#ef4343', hsl: { h: 0, s: 84, l: 60 }, usage: 'Error states' },
150
+ info: {
151
+ name: 'info',
152
+ hex: '#368fe7',
153
+ hsl: { h: 210, s: 79, l: 56 },
154
+ usage: 'Informational states',
155
+ },
156
+ },
157
+ contrast: {
158
+ 'primary-on-white': { ratio: 5.67, aa: true, aaLarge: true, aaa: false, aaaLarge: true },
159
+ 'primary-on-dark': { ratio: 3.07, aa: false, aaLarge: true, aaa: false, aaaLarge: false },
160
+ 'secondary-on-white': { ratio: 5.17, aa: true, aaLarge: true, aaa: false, aaaLarge: true },
161
+ 'accent-on-white': { ratio: 5.02, aa: true, aaLarge: true, aaa: false, aaaLarge: true },
162
+ },
163
+ },
164
+ typography: {
165
+ headingFont: 'Space Grotesk',
166
+ bodyFont: 'IBM Plex Sans',
167
+ monoFont: 'IBM Plex Mono',
168
+ baseSize: 16,
169
+ scaleRatio: 1.25,
170
+ steps: [
171
+ { name: 'xs', size: '10.24px', lineHeight: '1.6', letterSpacing: '0.02em', weight: 400 },
172
+ { name: 'sm', size: '12.8px', lineHeight: '1.6', letterSpacing: '0.02em', weight: 400 },
173
+ { name: 'base', size: '16px', lineHeight: '1.6', letterSpacing: '0em', weight: 400 },
174
+ { name: 'lg', size: '20px', lineHeight: '1.5', letterSpacing: '0em', weight: 400 },
175
+ { name: 'xl', size: '25px', lineHeight: '1.3', letterSpacing: '-0.01em', weight: 400 },
176
+ { name: '2xl', size: '31.25px', lineHeight: '1.3', letterSpacing: '-0.01em', weight: 600 },
177
+ { name: '3xl', size: '39.06px', lineHeight: '1.2', letterSpacing: '-0.01em', weight: 600 },
178
+ { name: '4xl', size: '48.83px', lineHeight: '1.2', letterSpacing: '-0.01em', weight: 700 },
179
+ { name: '5xl', size: '61.04px', lineHeight: '1.2', letterSpacing: '-0.01em', weight: 700 },
180
+ ],
181
+ },
182
+ spacing: {
183
+ unit: 4,
184
+ values: {
185
+ '0': '0px',
186
+ '1': '4px',
187
+ '2': '8px',
188
+ '3': '12px',
189
+ '4': '16px',
190
+ '5': '20px',
191
+ '6': '24px',
192
+ '8': '32px',
193
+ '10': '40px',
194
+ '12': '48px',
195
+ '16': '64px',
196
+ '20': '80px',
197
+ '24': '96px',
198
+ '0.5': '2px',
199
+ '1.5': '6px',
200
+ '2.5': '10px',
201
+ },
202
+ },
203
+ shadows: {
204
+ levels: {
205
+ none: {
206
+ offsetX: 0,
207
+ offsetY: 0,
208
+ blur: 0,
209
+ spread: 0,
210
+ color: 'rgba(47, 36, 66, 0)',
211
+ opacity: 0,
212
+ cssValue: 'none',
213
+ },
214
+ sm: {
215
+ offsetX: 0,
216
+ offsetY: 1,
217
+ blur: 2,
218
+ spread: 0,
219
+ color: 'rgba(47, 36, 66, 0.05)',
220
+ opacity: 0.05,
221
+ cssValue: '1px 1px 2px 0px rgba(47, 36, 66, 0.05)',
222
+ },
223
+ md: {
224
+ offsetX: 0,
225
+ offsetY: 2,
226
+ blur: 4,
227
+ spread: -1,
228
+ color: 'rgba(47, 36, 66, 0.08)',
229
+ opacity: 0.08,
230
+ cssValue: '2px 2px 4px -1px rgba(47, 36, 66, 0.08)',
231
+ },
232
+ lg: {
233
+ offsetX: 0,
234
+ offsetY: 4,
235
+ blur: 8,
236
+ spread: -2,
237
+ color: 'rgba(47, 36, 66, 0.1)',
238
+ opacity: 0.1,
239
+ cssValue: '4px 4px 8px -2px rgba(47, 36, 66, 0.1)',
240
+ },
241
+ xl: {
242
+ offsetX: 0,
243
+ offsetY: 8,
244
+ blur: 16,
245
+ spread: -4,
246
+ color: 'rgba(47, 36, 66, 0.12)',
247
+ opacity: 0.12,
248
+ cssValue: '8px 8px 16px -4px rgba(47, 36, 66, 0.12)',
249
+ },
250
+ '2xl': {
251
+ offsetX: 0,
252
+ offsetY: 16,
253
+ blur: 32,
254
+ spread: -8,
255
+ color: 'rgba(47, 36, 66, 0.15)',
256
+ opacity: 0.15,
257
+ cssValue: '16px 16px 32px -8px rgba(47, 36, 66, 0.15)',
258
+ },
259
+ },
260
+ },
261
+ borders: {
262
+ radii: {
263
+ none: '0px',
264
+ sm: '2px',
265
+ md: '4px',
266
+ lg: '8px',
267
+ xl: '12px',
268
+ full: '9999px',
269
+ circle: '9999px',
270
+ },
271
+ widths: {
272
+ thin: '1px',
273
+ medium: '2px',
274
+ thick: '3px',
275
+ },
276
+ },
277
+ motion: {
278
+ durations: {
279
+ instant: '0ms',
280
+ fast: '80ms',
281
+ normal: '150ms',
282
+ slow: '250ms',
283
+ slower: '350ms',
284
+ },
285
+ easings: {
286
+ 'ease-in': 'cubic-bezier(0.55, 0, 1, 1)',
287
+ 'ease-out': 'cubic-bezier(0, 0, 0.1, 1)',
288
+ 'ease-in-out': 'cubic-bezier(0.55, 0, 0.1, 1)',
289
+ spring: 'cubic-bezier(0.2, 1.6, 0.4, 1)',
290
+ bounce: 'cubic-bezier(0.2, 1.4, 0.4, 1)',
291
+ },
292
+ transitions: {
293
+ fade: 'opacity 150ms cubic-bezier(0, 0, 0.1, 1)',
294
+ slide: 'transform 150ms cubic-bezier(0, 0, 0.1, 1)',
295
+ scale: 'transform 80ms cubic-bezier(0, 0, 0.1, 1)',
296
+ color:
297
+ 'color 250ms cubic-bezier(0, 0, 0.1, 1), background-color 250ms cubic-bezier(0, 0, 0.1, 1)',
298
+ all: 'all 150ms cubic-bezier(0, 0, 0.1, 1)',
299
+ },
300
+ },
301
+ gradients: {
302
+ presets: {
303
+ hero: {
304
+ type: 'linear',
305
+ angle: 315,
306
+ stops: [
307
+ { color: '#7c3aed', position: 0 },
308
+ { color: '#3B82F6', position: 100 },
309
+ ],
310
+ cssValue: 'linear-gradient(315deg, #7c3aed 0%, #3B82F6 100%)',
311
+ },
312
+ button: {
313
+ type: 'linear',
314
+ angle: 315,
315
+ stops: [
316
+ { color: '#F59E0B', position: 0 },
317
+ { color: '#7c3aed', position: 100 },
318
+ ],
319
+ cssValue: 'linear-gradient(315deg, #F59E0B 0%, #7c3aed 100%)',
320
+ },
321
+ card: {
322
+ type: 'linear',
323
+ angle: 315,
324
+ stops: [
325
+ { color: '#f2f2f3', position: 0 },
326
+ { color: '#cacace', position: 100 },
327
+ ],
328
+ cssValue: 'linear-gradient(315deg, #f2f2f3 0%, #cacace 100%)',
329
+ },
330
+ text: {
331
+ type: 'linear',
332
+ angle: 315,
333
+ stops: [
334
+ { color: '#7c3aed', position: 0 },
335
+ { color: '#F59E0B', position: 100 },
336
+ ],
337
+ cssValue: 'linear-gradient(315deg, #7c3aed 0%, #F59E0B 100%)',
338
+ },
339
+ background: {
340
+ type: 'linear',
341
+ angle: 315,
342
+ stops: [
343
+ { color: '#f2f2f3', position: 0 },
344
+ { color: '#0d0c0d', position: 100 },
345
+ ],
346
+ cssValue: 'linear-gradient(315deg, #f2f2f3 0%, #0d0c0d 100%)',
347
+ },
348
+ },
349
+ },
350
+ logo: {
351
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="64" viewBox="0 0 200 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n <text x="78" y="30" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">FORGE</text>\n <text x="78" y="52" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">SPACE</text>\n</svg>',
352
+ variants: {
353
+ wordmark:
354
+ '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="64" viewBox="0 0 200 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n <text x="78" y="30" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">FORGE</text>\n <text x="78" y="52" fill="#8B5CF6" font-size="20" font-family="\'Sora\', sans-serif" font-weight="600" letter-spacing="0.12em">SPACE</text>\n</svg>',
355
+ monogram:
356
+ '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n</svg>',
357
+ abstract:
358
+ '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#8B5CF6"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#8B5CF6"/>\n</svg>',
359
+ icon: '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" fill="none">\n <path d="M4 20 L18 14 H56 a3 3 0 0 1 3 3 v6 a3 3 0 0 1-3 3 H18 L4 24 V20Z" fill="#A78BFA"/>\n <rect x="20" y="32" width="30" height="10" rx="3" fill="#8B5CF6"/>\n <rect x="14" y="48" width="40" height="14" rx="4" fill="#6D28D9"/>\n</svg>',
360
+ },
361
+ },
362
+ createdAt: '2026-03-01T05:55:29.414Z',
363
+ };
364
+
60
365
  export function registerBrandTemplates(server: McpServer): void {
61
366
  server.resource('brand-templates', 'brand://templates', async () => ({
62
367
  contents: [
@@ -67,4 +372,14 @@ export function registerBrandTemplates(server: McpServer): void {
67
372
  },
68
373
  ],
69
374
  }));
375
+
376
+ server.resource('forge-space-brand', 'brand://templates/forge-space', async () => ({
377
+ contents: [
378
+ {
379
+ uri: 'brand://templates/forge-space',
380
+ text: JSON.stringify(FORGE_SPACE_BRAND, null, 2),
381
+ mimeType: 'application/json',
382
+ },
383
+ ],
384
+ }));
70
385
  }