@timelesscms-com/mcp-server 0.6.0 → 0.7.0

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.
@@ -6,9 +6,10 @@ function v(version) {
6
6
  export const deployTools = [
7
7
  {
8
8
  name: 'trigger_deploy',
9
- description: 'Enqueue a deploy of the currently active version. Returns a job_id immediately; poll get_deploy_status until the status leaves queued/running.',
9
+ description: "Enqueue a deploy of the currently active version. Returns a job_id immediately; poll get_deploy_status until the status leaves queued/running. With `dry_run: true`, the deploy runs through every step EXCEPT the hosting-adapter upload — useful for validating a structural change (new collection routes, schema bump, mode switch) without risking the live site. A dry_run job that succeeds proves the build is clean; one that fails returns the same astro stack-trace in get_deploy_status.error as a real deploy would.",
10
10
  inputSchema: {
11
11
  environment: z.enum(['production', 'staging']).optional(),
12
+ dry_run: z.boolean().optional().describe('Run the build but skip the CDN upload. The job ends in succeeded/failed the same way a real deploy does.'),
12
13
  version: versionParam,
13
14
  },
14
15
  handler: withErrorBoundary(async (args, { client, siteId }) => {
@@ -10,6 +10,14 @@ export const siteTools = [
10
10
  return ok(res);
11
11
  }),
12
12
  },
13
+ {
14
+ name: 'get_site_capabilities',
15
+ description: "Discover what the site-template renderer supports for this site. Returns a manifest of feature flags (blocks-mode, x-include, collection routes, custom block scripts, dry-run deploys, etc.) plus template_capabilities_version + the core block type ids. Call this when you're about to do something structural (set route_template on a collection, switch a page to blocks-mode, install a custom block type) and want to feature-detect rather than guess. The manifest is platform-wide today; per-site custom templates land later.",
16
+ handler: withErrorBoundary(async (_args, { client, siteId }) => {
17
+ const res = await client.get(siteId, 'capabilities');
18
+ return ok(res);
19
+ }),
20
+ },
13
21
  {
14
22
  name: 'update_site',
15
23
  description: 'Edit Site-level identity fields: name (display), slug (drives the {slug}.timelesscms-fallback subdomain — kebab-case, 3-48 chars, unique across the org), domain (the customer\'s real hostname; pass "" to clear). For colors / fonts / contact info / tagline use update_site_settings instead.',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timelesscms-com/mcp-server",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Model Context Protocol server for the TimelessCMS public API. Use with Claude Code or any MCP-compatible client to manage a TimelessCMS site.",
5
5
  "license": "MIT",
6
6
  "type": "module",