@shoppexio/mcp-theme-server 0.5.1 → 0.5.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/README.md CHANGED
@@ -50,8 +50,6 @@ Restart Claude Desktop.
50
50
  - `theme_apply` — apply explicit file changes (for precise edits)
51
51
  - `theme_accept` — accept a pending draft from an agent run
52
52
  - `theme_create` — scaffold from a base theme
53
- - `theme_create_section` — add a section
54
- - `theme_create_page` — add a page/route
55
53
  - `theme_update_config` — extend theme.config.ts
56
54
 
57
55
  ### Preview & Publish
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shoppexio/mcp-theme-server",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Shoppex MCP server for theme control plane operations",
5
5
  "type": "module",
6
6
  "repository": {
@@ -38,6 +38,6 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.28.0",
41
- "@shoppexio/theme-control-client": "^0.4.0"
41
+ "@shoppexio/theme-control-client": "^0.4.3"
42
42
  }
43
43
  }
package/src/server.mjs CHANGED
@@ -101,7 +101,7 @@ export function createThemeToolCatalog() {
101
101
  name: 'theme_create',
102
102
  description: 'Create a new theme scaffold from a Shoppex base theme.',
103
103
  inputSchema: {
104
- base: z.enum(['default', 'classic', 'nebula', 'pulse', 'phantom', 'starlight']),
104
+ base: z.enum(['default', 'classic', 'nebula', 'pulse', 'phantom', 'starlight', 'apex', 'vault', 'clean-minimal', 'shadow']),
105
105
  name: z.string().min(1).optional(),
106
106
  set_as_active: z.boolean().optional(),
107
107
  },
@@ -131,36 +131,6 @@ export function createThemeToolCatalog() {
131
131
  return client.aiApplyTheme(theme_id, body);
132
132
  },
133
133
  },
134
- {
135
- name: 'theme_create_section',
136
- description: 'Scaffold a new theme section and wire it into theme.config.ts.',
137
- inputSchema: {
138
- theme_id: z.string().min(1),
139
- name: z.string().min(1),
140
- description: z.string().optional(),
141
- section_key: z.string().optional(),
142
- },
143
- execute: ({ theme_id, name, description, section_key }, client) => client.createThemeSection(theme_id, {
144
- name,
145
- ...(description ? { description } : {}),
146
- ...(section_key ? { sectionKey: section_key } : {}),
147
- }),
148
- },
149
- {
150
- name: 'theme_create_page',
151
- description: 'Scaffold a new static page and wire its route into src/App.tsx.',
152
- inputSchema: {
153
- theme_id: z.string().min(1),
154
- name: z.string().min(1),
155
- description: z.string().optional(),
156
- route_path: z.string().optional(),
157
- },
158
- execute: ({ theme_id, name, description, route_path }, client) => client.createThemePage(theme_id, {
159
- name,
160
- ...(description ? { description } : {}),
161
- ...(route_path ? { routePath: route_path } : {}),
162
- }),
163
- },
164
134
  {
165
135
  name: 'theme_update_config',
166
136
  description: 'Extend theme.config.ts with a new settings field.',
@@ -201,6 +171,33 @@ export function createThemeToolCatalog() {
201
171
  },
202
172
  execute: ({ theme_id }, client) => client.publishTheme(theme_id),
203
173
  },
174
+ {
175
+ name: 'theme_deploy',
176
+ description: 'Queue a deploy for the current accepted theme draft through the official deployTheme control-plane path.',
177
+ inputSchema: {
178
+ theme_id: z.string().min(1),
179
+ set_as_active: z.boolean().optional(),
180
+ },
181
+ execute: ({ theme_id, set_as_active }, client) => client.deployTheme(theme_id, {
182
+ ...(set_as_active !== undefined ? { setAsActive: set_as_active } : {}),
183
+ }),
184
+ },
185
+ {
186
+ name: 'theme_purge_storefront_cache',
187
+ description: 'Purge the live theme artifact cache after a deploy or asset refresh.',
188
+ inputSchema: {
189
+ theme_id: z.string().min(1),
190
+ },
191
+ execute: ({ theme_id }, client) => client.purgeStorefrontCache(theme_id),
192
+ },
193
+ {
194
+ name: 'theme_force_purge_storefront_cache',
195
+ description: 'Force-purge live theme artifacts and storefront domain cache when a merchant still sees stale storefront output.',
196
+ inputSchema: {
197
+ theme_id: z.string().min(1),
198
+ },
199
+ execute: ({ theme_id }, client) => client.forcePurgeStorefrontCache(theme_id),
200
+ },
204
201
  {
205
202
  name: 'theme_publish_status',
206
203
  description: 'Read the current publish job status.',
@@ -285,7 +282,7 @@ export async function executeThemeTool(toolName, args, client) {
285
282
  export function createThemeMcpServer(client = new ShoppexThemeControlClient(resolveEnvThemeControlConfig())) {
286
283
  const server = new McpServer({
287
284
  name: 'shoppex-themes',
288
- version: '0.5.1',
285
+ version: '0.5.2',
289
286
  });
290
287
 
291
288
  for (const tool of createThemeToolCatalog()) {