@ssemble/mcp-server 1.0.4 → 1.0.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssemble/mcp-server",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "mcpName": "com.ssemble/mcp-server",
5
5
  "description": "MCP server for Ssemble AI Clipping — create viral short-form videos from any AI assistant",
6
6
  "type": "module",
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "com.ssemble/mcp-server",
4
4
  "title": "Ssemble AI Clipping",
5
5
  "description": "Create AI-powered short-form video clips from YouTube videos using any AI assistant.",
6
- "version": "1.0.4",
6
+ "version": "1.0.5",
7
7
  "websiteUrl": "https://www.ssemble.com",
8
8
  "repository": {
9
9
  "url": "https://github.com/ssembleinc/ssemble-mcp-server",
@@ -14,7 +14,7 @@
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "@ssemble/mcp-server",
17
- "version": "1.0.4",
17
+ "version": "1.0.5",
18
18
  "transport": {
19
19
  "type": "stdio"
20
20
  },
package/src/api/client.js CHANGED
@@ -34,13 +34,13 @@ export class SsembleClient {
34
34
  if (!this.apiKey) {
35
35
  throw new SsembleApiError(401, {
36
36
  code: 'missing_api_key',
37
- message: 'Ssemble API key required. Pass via X-Ssemble-API-Key header when using the remote endpoint, or set SSEMBLE_API_KEY env var for local usage. Get your key at https://app.ssemble.com → Settings → API Keys.',
37
+ message: 'Ssemble API key required. Pass via X-Ssemble-API-Key header when using the remote endpoint, or set SSEMBLE_API_KEY env var for local usage. Get your key at https://app.ssemble.com/api-keys',
38
38
  });
39
39
  }
40
40
  if (!this.apiKey.startsWith('sk_ssemble_')) {
41
41
  throw new SsembleApiError(401, {
42
42
  code: 'invalid_api_key',
43
- message: 'Invalid API key format. Must start with sk_ssemble_',
43
+ message: 'Invalid API key format. Must start with sk_ssemble_. Get your key at https://app.ssemble.com/api-keys',
44
44
  });
45
45
  }
46
46
 
@@ -60,7 +60,7 @@ export class SsembleClient {
60
60
  const headers = {
61
61
  'X-API-Key': this.apiKey,
62
62
  'Content-Type': 'application/json',
63
- 'User-Agent': 'ssemble-mcp-server/1.0.4',
63
+ 'User-Agent': 'ssemble-mcp-server/1.0.5',
64
64
  };
65
65
 
66
66
  const options = { method, headers };
@@ -11,7 +11,7 @@ import { createSsembleMcpServer } from '../index.js';
11
11
  const apiKey = process.env.SSEMBLE_API_KEY;
12
12
  if (!apiKey) {
13
13
  console.error('Error: SSEMBLE_API_KEY environment variable is required.');
14
- console.error('Get your API key at https://app.ssemble.com → Settings → API Keys');
14
+ console.error('Get your API key at https://app.ssemble.com/api-keys');
15
15
  process.exit(1);
16
16
  }
17
17
 
@@ -171,11 +171,24 @@ export function formatDeleteResponse(result) {
171
171
 
172
172
  export function formatError(error) {
173
173
  if (error instanceof Error && error.code) {
174
- let text = `**Error**: ${error.message}`;
175
- if (error.code) text += ` (${error.code})`;
174
+ let text = `**Error**: ${error.message} (${error.code})`;
176
175
  if (error.details) {
177
176
  text += `\n\n**Details**: ${JSON.stringify(error.details, null, 2)}`;
178
177
  }
178
+
179
+ // Add helpful guidance based on error code
180
+ const helpLinks = {
181
+ missing_api_key: '\n\n**Get your API key**: https://app.ssemble.com/api-keys\n**Setup guide**: https://www.npmjs.com/package/@ssemble/mcp-server',
182
+ invalid_api_key: '\n\n**Get a valid API key**: https://app.ssemble.com/api-keys\nAPI keys start with `sk_ssemble_` and are 43 characters long.',
183
+ subscription_required: '\n\n**Subscribe to a plan**: https://app.ssemble.com/pricing\nAn active subscription is required to use the API.',
184
+ insufficient_credits: '\n\n**Get credits**: https://app.ssemble.com/pricing\nEach short creation costs 1 credit.',
185
+ user_not_found: '\n\n**Create an account**: https://app.ssemble.com\nThen generate an API key at https://app.ssemble.com/api-keys',
186
+ };
187
+
188
+ if (helpLinks[error.code]) {
189
+ text += helpLinks[error.code];
190
+ }
191
+
179
192
  if (error.rateLimits?.hourlyRemaining) {
180
193
  text += formatRateLimits(error.rateLimits);
181
194
  }