@convertcom/mcp-server 0.0.1-beta.10 → 0.0.1-beta.13

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.
Files changed (63) hide show
  1. package/.assets/apple-touch-icon.png +0 -0
  2. package/.assets/convert-icon-64.png +0 -0
  3. package/.assets/convert-icon.svg +7 -0
  4. package/.assets/convert-logo.png +0 -0
  5. package/.assets/favicon.ico +0 -0
  6. package/.assets/favicon.png +0 -0
  7. package/.assets/icon-128.png +0 -0
  8. package/.assets/icon-180.png +0 -0
  9. package/.assets/icon-192.png +0 -0
  10. package/.assets/icon-256.png +0 -0
  11. package/.assets/icon-512.png +0 -0
  12. package/.assets/icon.png +0 -0
  13. package/.assets/og-image.png +0 -0
  14. package/README.md +11 -1
  15. package/build/api-config.d.ts +5 -0
  16. package/build/api-config.js +131 -13
  17. package/build/api-config.js.map +1 -1
  18. package/build/auth-context.d.ts +50 -0
  19. package/build/auth-context.js +2 -0
  20. package/build/auth-context.js.map +1 -0
  21. package/build/brand.d.ts +6 -0
  22. package/build/brand.js +89 -0
  23. package/build/brand.js.map +1 -0
  24. package/build/executor.d.ts +2 -1
  25. package/build/executor.js +118 -348
  26. package/build/executor.js.map +1 -1
  27. package/build/generated-tool-validators.d.ts +2803 -0
  28. package/build/generated-tool-validators.js +119285 -0
  29. package/build/generated-tool-validators.js.map +1 -0
  30. package/build/index.d.ts +7 -8
  31. package/build/index.js +46 -399
  32. package/build/index.js.map +1 -1
  33. package/build/kb-search-node.d.ts +2 -0
  34. package/build/kb-search-node.js +8 -0
  35. package/build/kb-search-node.js.map +1 -0
  36. package/build/kb-search.d.ts +1 -1
  37. package/build/kb-search.js +1 -4
  38. package/build/kb-search.js.map +1 -1
  39. package/build/namespaced.d.ts +2 -1
  40. package/build/namespaced.js +88 -7
  41. package/build/namespaced.js.map +1 -1
  42. package/build/operator.d.ts +2 -0
  43. package/build/operator.js +88 -45
  44. package/build/operator.js.map +1 -1
  45. package/build/runtime.d.ts +28 -0
  46. package/build/runtime.js +394 -0
  47. package/build/runtime.js.map +1 -0
  48. package/build/schema-normalizer.d.ts +2 -0
  49. package/build/schema-normalizer.js +373 -0
  50. package/build/schema-normalizer.js.map +1 -0
  51. package/build/tools.js +22 -10
  52. package/build/tools.js.map +1 -1
  53. package/data/convert-kb.json +12381 -12276
  54. package/data/kb-vectors/0/embedding.index.3.proxima +0 -0
  55. package/data/kb-vectors/0/scalar.0.ipc +0 -0
  56. package/data/kb-vectors/1/.gitkeep +0 -0
  57. package/data/kb-vectors/del.0 +0 -0
  58. package/data/kb-vectors/idmap.0/000008.sst +0 -0
  59. package/data/kb-vectors/idmap.0/IDENTITY +1 -1
  60. package/data/kb-vectors/idmap.0/MANIFEST-000005 +0 -0
  61. package/data/kb-vectors/manifest.3 +2 -2
  62. package/package.json +29 -8
  63. package/server.json +2 -2
Binary file
Binary file
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Convert">
2
+ <rect width="64" height="64" rx="14" fill="#24292F"/>
3
+ <path fill="#FFFFFF" d="M22.3 44.6c-4.8 0-8.5-1.6-11.2-4.7-2.7-3-4-7.3-4-12.9 0-5.4 1.3-9.6 3.9-12.6 2.7-3.1 6.4-4.7 11.2-4.7 5 0 8.9 1.5 11.7 4.5 1.5 1.9 2.6 4 3.3 6.4h-8.8c-.4-.8-.8-1.5-1.3-1.9-1.1-1.2-2.6-1.8-4.7-1.8-1.8 0-3.4.6-4.5 1.8-1.5 1.7-2.3 4.5-2.3 8.3 0 3.9.8 6.6 2.3 8.2 1.1 1.3 2.7 2 4.9 2 1.4 0 2.6-.3 3.6-.9.3-.1.5-.2.7-.4.2-.2.4-.4.7-.7.2-.3.5-.6 1-1 .5-.4 1.3-.6 2.3-.6h6.3c-.9 3.5-2.7 6.2-5.3 8.1-2.6 1.9-5.9 2.9-9.8 2.9Z"/>
4
+ <path fill="#FFFFFF" opacity=".56" d="m39.4 13.6-2 4.8 4.1 9.3L46 16.1l-6.6-2.5Z"/>
5
+ <path fill="#FFFFFF" opacity=".78" d="m50.8 12.7-7.3 19.3 4.1 9.4L57.8 15.4l-7-2.7Z"/>
6
+ <path fill="#FFFFFF" d="m57.8 15.4-2.1-12.3-9.8 7.5 2.7 1.1-13 33.7h7.5l12.1-31 2.6 1Z"/>
7
+ </svg>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/README.md CHANGED
@@ -20,7 +20,7 @@ MCP (Model Context Protocol) is an open standard that allows AI models to intera
20
20
  **Key Benefits:**
21
21
  - 🔌 **Zero-config integration** – Works with Claude Desktop, Cursor, and any MCP-compatible client
22
22
  - 🔍 **Full API access** – Comprehensive coverage of Convert's [REST API v2](https://api.convert.com/doc/v2.0.0/)
23
- - 📚 **Built-in knowledge** – 5,776 indexed chunks across 500 Convert support article URLs
23
+ - 📚 **Built-in knowledge** – 5,797 indexed chunks across 500 Convert support article URLs
24
24
  - 🛡️ **Configurable permissions** – Three access levels from reporting-only to full read/write
25
25
  - 🧩 **Namespaced tools** – Clean interface with 13 generated API namespaces plus one computed `operator` namespace
26
26
  - 🧠 **MCP prompts** – 19 curated Convert experimentation prompts exposed through `prompts/list` and `prompts/get`
@@ -55,6 +55,16 @@ MCP (Model Context Protocol) is an open standard that allows AI models to intera
55
55
 
56
56
  The server implements the [Model Context Protocol](https://modelcontextprotocol.io) and works with Claude Desktop, Cursor, and any MCP-compatible client.
57
57
 
58
+ ### Hosted Remote MCP
59
+
60
+ If your MCP client supports remote connectors, you can connect to Convert without managing local API keys:
61
+
62
+ ```text
63
+ https://mcp.ai.app.convert.com/mcp
64
+ ```
65
+
66
+ Your client will open Convert for sign-in and permission approval. The local `npx` setup below remains the default for stdio-based clients and existing installations.
67
+
58
68
  ### Recommended Models
59
69
 
60
70
  For the best experience, use models with strong agentic capabilities:
@@ -1,4 +1,9 @@
1
+ import type { ConvertAuthContext } from './auth-context.js';
1
2
  export declare const API_BASE_URL: string;
2
3
  export declare function convertHttpHeadersFromEnv(env?: NodeJS.ProcessEnv): Record<string, string>;
4
+ export declare function convertEdgeAuthHeadersFromEnv(env?: NodeJS.ProcessEnv): Record<string, string>;
3
5
  export declare function shouldRetryApiRequest(method: string | undefined, status: number | undefined, retryUnsafeWrites?: boolean): boolean;
6
+ export declare function resolveApiBaseUrl(env?: NodeJS.ProcessEnv): string;
7
+ export declare function buildConvertAuthHeaders(requestUrl: string, requestBody: unknown, authContext: ConvertAuthContext): Record<string, string>;
8
+ export declare function getEnvAuthContext(env?: NodeJS.ProcessEnv): ConvertAuthContext | undefined;
4
9
  export declare function signingBody(data: unknown): string;
@@ -1,10 +1,19 @@
1
1
  import axios from 'axios';
2
2
  import crypto from 'crypto';
3
- export const API_BASE_URL = process.env.API_BASE_URL || 'https://api.convert.com/api/v2';
3
+ export const API_BASE_URL = resolveApiBaseUrl();
4
4
  const CUSTOM_HEADER_PREFIX = 'CONVERT_HTTP_HEADER_';
5
+ const EDGE_AUTH_HEADER_DEFAULT = 'Proxy-Authorization';
5
6
  const DEFAULT_MAX_RETRIES = 2;
7
+ const DEFAULT_HMAC_EXPIRES_SECONDS = 60;
6
8
  const RETRYABLE_STATUSES = new Set([429, 503]);
7
9
  const BLOCKED_CUSTOM_HEADERS = new Set([
10
+ 'authorization',
11
+ 'proxy-authorization',
12
+ 'convert-application-id',
13
+ 'expires',
14
+ 'content-type',
15
+ ]);
16
+ const FORBIDDEN_EDGE_AUTH_HEADERS = new Set([
8
17
  'authorization',
9
18
  'convert-application-id',
10
19
  'expires',
@@ -39,6 +48,16 @@ export function convertHttpHeadersFromEnv(env = process.env) {
39
48
  }
40
49
  return headers;
41
50
  }
51
+ export function convertEdgeAuthHeadersFromEnv(env = process.env) {
52
+ const authValue = edgeBasicAuthValue(env);
53
+ if (!authValue)
54
+ return {};
55
+ const headerName = edgeAuthHeaderName(env);
56
+ if (FORBIDDEN_EDGE_AUTH_HEADERS.has(headerName.toLowerCase())) {
57
+ throw new Error(`Invalid CONVERT_EDGE_AUTH_HEADER=${headerName}. Edge auth must not use a header reserved for Convert API authentication. Use ${EDGE_AUTH_HEADER_DEFAULT} or another upstream-only header.`);
58
+ }
59
+ return { [headerName]: authValue };
60
+ }
42
61
  export function shouldRetryApiRequest(method, status, retryUnsafeWrites = false) {
43
62
  if (!status || !RETRYABLE_STATUSES.has(status))
44
63
  return false;
@@ -48,21 +67,24 @@ export function shouldRetryApiRequest(method, status, retryUnsafeWrites = false)
48
67
  return retryUnsafeWrites;
49
68
  }
50
69
  axios.interceptors.request.use((config) => {
51
- const applicationID = process.env.CONVERT_API_KEY;
52
- const applicationSecretKey = process.env.CONVERT_API_SECRET;
53
- const expires = 60;
54
70
  const requestURL = config.url;
55
- const requestBody = signingBody(config.data);
56
- const expiresTimestamp = Date.now() / 1000 + expires;
57
- const signString = applicationID + '\n' + expiresTimestamp + '\n' + requestURL + '\n' + requestBody;
58
- const hash = crypto.createHmac('sha256', applicationSecretKey).update(signString).digest('hex');
59
- const authorization = 'Convert-HMAC-SHA256 Signature=' + hash;
71
+ const requestBody = config.data;
72
+ const headers = config.headers ?? {};
73
+ config.headers = headers;
60
74
  for (const [header, value] of Object.entries(convertHttpHeadersFromEnv())) {
61
- config.headers[header] = value;
75
+ headers[header] = value;
76
+ }
77
+ for (const [header, value] of Object.entries(convertEdgeAuthHeadersFromEnv())) {
78
+ headers[header] = value;
79
+ }
80
+ if (hasAuthorizationHeader(headers)) {
81
+ return config;
62
82
  }
63
- config.headers['Convert-Application-ID'] = applicationID;
64
- config.headers['Expires'] = expiresTimestamp;
65
- config.headers['Authorization'] = authorization;
83
+ const authContext = getEnvAuthContext();
84
+ if (!authContext) {
85
+ throw new Error('Convert API authentication is not configured. Set CONVERT_API_KEY and CONVERT_API_SECRET, or use an explicit auth context.');
86
+ }
87
+ Object.assign(headers, buildConvertAuthHeaders(String(requestURL), requestBody, authContext));
66
88
  return config;
67
89
  }, (error) => {
68
90
  return Promise.reject(error);
@@ -96,6 +118,102 @@ function headerNameFromEnvKey(key) {
96
118
  .map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
97
119
  .join('-');
98
120
  }
121
+ export function resolveApiBaseUrl(env = process.env) {
122
+ return env.CONVERT_BASE_URL?.trim()
123
+ || env.API_BASE_URL?.trim()
124
+ || env.MCP_CONNECT_CONVERT_API_BASE_URL?.trim()
125
+ || 'https://api.convert.com/api/v2';
126
+ }
127
+ export function buildConvertAuthHeaders(requestUrl, requestBody, authContext) {
128
+ if (authContext.type === 'none') {
129
+ return {};
130
+ }
131
+ if (authContext.type === 'bearerToken') {
132
+ return { Authorization: `Bearer ${authContext.token}` };
133
+ }
134
+ if (authContext.type === 'secretKey') {
135
+ return { Authorization: `Bearer ${authContext.keyId}:${authContext.keySecret}` };
136
+ }
137
+ const expiresTimestamp = Date.now() / 1000 + (authContext.expiresInSeconds ?? DEFAULT_HMAC_EXPIRES_SECONDS);
138
+ const signString = `${authContext.keyId}\n${expiresTimestamp}\n${requestUrl}\n${signingBody(requestBody)}`;
139
+ const hash = crypto.createHmac('sha256', authContext.keySecret).update(signString).digest('hex');
140
+ return {
141
+ 'Convert-Application-ID': authContext.keyId,
142
+ Expires: String(expiresTimestamp),
143
+ Authorization: `Convert-HMAC-SHA256 Signature=${hash}`,
144
+ };
145
+ }
146
+ export function getEnvAuthContext(env = process.env) {
147
+ const mode = (env.CONVERT_AUTH_MODE || env.CONVERT_API_AUTH_MODE || '').trim().toLowerCase();
148
+ if (mode === 'none') {
149
+ return { type: 'none' };
150
+ }
151
+ const keyId = env.CONVERT_API_KEY?.trim();
152
+ const keySecret = env.CONVERT_API_SECRET?.trim();
153
+ const token = env.CONVERT_OAUTH_ACCESS_TOKEN?.trim()
154
+ || env.CONVERT_BEARER_TOKEN?.trim()
155
+ || env.BEARER_TOKEN?.trim()
156
+ || env.API_TOKEN?.trim();
157
+ if (!mode || mode === 'hmac' || mode === 'requestsigning' || mode === 'request_signing') {
158
+ if (keyId && keySecret) {
159
+ return { type: 'requestSigning', keyId, keySecret };
160
+ }
161
+ if (!mode && token) {
162
+ return authContextFromToken(token);
163
+ }
164
+ return undefined;
165
+ }
166
+ if (mode === 'bearer' || mode === 'oauth') {
167
+ if (!token) {
168
+ throw new Error(`CONVERT_AUTH_MODE=${mode} requires CONVERT_OAUTH_ACCESS_TOKEN or CONVERT_BEARER_TOKEN.`);
169
+ }
170
+ return { type: 'bearerToken', token };
171
+ }
172
+ if (mode === 'secretkey' || mode === 'secret_key') {
173
+ if (keyId && keySecret) {
174
+ return { type: 'secretKey', keyId, keySecret };
175
+ }
176
+ if (!token) {
177
+ throw new Error('CONVERT_AUTH_MODE=secretKey requires CONVERT_API_KEY/CONVERT_API_SECRET or BEARER_TOKEN in key:secret form.');
178
+ }
179
+ return authContextFromToken(token);
180
+ }
181
+ throw new Error(`Unsupported CONVERT_AUTH_MODE=${mode}. Use hmac, bearer, oauth, secretKey, or none.`);
182
+ }
183
+ function authContextFromToken(token) {
184
+ const pairIndex = token.indexOf(':');
185
+ if (pairIndex > 0 && pairIndex < token.length - 1) {
186
+ return {
187
+ type: 'secretKey',
188
+ keyId: token.slice(0, pairIndex),
189
+ keySecret: token.slice(pairIndex + 1),
190
+ };
191
+ }
192
+ return { type: 'bearerToken', token };
193
+ }
194
+ function hasAuthorizationHeader(headers) {
195
+ if (!headers || typeof headers !== 'object')
196
+ return false;
197
+ return Object.keys(headers).some((header) => header.toLowerCase() === 'authorization');
198
+ }
199
+ function edgeAuthHeaderName(env) {
200
+ const configured = env.CONVERT_EDGE_AUTH_HEADER?.trim();
201
+ return configured || EDGE_AUTH_HEADER_DEFAULT;
202
+ }
203
+ function edgeBasicAuthValue(env) {
204
+ const explicit = env.CONVERT_EDGE_BASIC_AUTH?.trim();
205
+ if (explicit) {
206
+ return explicit.toLowerCase().startsWith('basic ')
207
+ ? explicit
208
+ : `Basic ${Buffer.from(explicit, 'utf8').toString('base64')}`;
209
+ }
210
+ const username = env.CONVERT_EDGE_BASIC_AUTH_USERNAME?.trim();
211
+ const password = env.CONVERT_EDGE_BASIC_AUTH_PASSWORD;
212
+ if (username && typeof password === 'string') {
213
+ return `Basic ${Buffer.from(`${username}:${password}`, 'utf8').toString('base64')}`;
214
+ }
215
+ return null;
216
+ }
99
217
  export function signingBody(data) {
100
218
  if (typeof data === 'undefined' || data === null)
101
219
  return '{}';
@@ -1 +1 @@
1
- {"version":3,"file":"api-config.js","sourceRoot":"","sources":["../src/api-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,gCAAgC,CAAC;AACzF,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AACpD,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,eAAe;IACf,wBAAwB;IACxB,SAAS;IACT,cAAc;CACf,CAAC,CAAC;AAEH,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG;IAChC,UAAU,IAAS;QACjB,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC5E,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7F,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QACnE,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA0B,EAAE,MAA0B,EAAE,iBAAiB,GAAG,KAAK;IACrH,IAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAC5B,CAAC,MAAM,EAAE,EAAE;IACT,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAClD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAA4B,CAAC;IACtE,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC;IAC9B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC;IAErD,MAAM,UAAU,GACd,aAAa,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC;IAEnF,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChG,MAAM,aAAa,GAAG,gCAAgC,GAAG,IAAI,CAAC;IAE9D,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,aAAa,CAAC;IACzD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;IAC7C,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC7B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,KAAK,EAAE,KAAK,EAAE,EAAE;IACd,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgE,CAAC;IACtF,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG;WACpE,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;IACvE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACrF,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,mBAAmB,GAAG,UAAU,GAAG,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC,CACF,CAAC;AAEF,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,IAAI,IAAI,CAAC;IAClD,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,IAAI,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,OAAO,eAAe,KAAK,WAAW,IAAI,IAAI,YAAY,eAAe;QAAE,OAAO,IAAI,CAAC;IAC3F,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,IAAI,YAAY,WAAW;QAAE,OAAO,IAAI,CAAC;IACnF,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB,EAAE,UAAmB;IAC3D,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,UAAU,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"api-config.js","sourceRoot":"","sources":["../src/api-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export type HmacAuthContext = {
2
+ type: 'requestSigning';
3
+ keyId: string;
4
+ keySecret: string;
5
+ expiresInSeconds?: number;
6
+ };
7
+ export type BearerTokenAuthContext = {
8
+ type: 'bearerToken';
9
+ token: string;
10
+ };
11
+ export type SecretKeyAuthContext = {
12
+ type: 'secretKey';
13
+ keyId: string;
14
+ keySecret: string;
15
+ };
16
+ export type NoAuthContext = {
17
+ type: 'none';
18
+ };
19
+ export type ConvertAuthContext = HmacAuthContext | BearerTokenAuthContext | SecretKeyAuthContext | NoAuthContext;
20
+ export type ConvertApiTransportRequest = {
21
+ method: string;
22
+ url: string;
23
+ headers: Record<string, string>;
24
+ data?: unknown;
25
+ };
26
+ export type ConvertApiTransportResponse = {
27
+ status: number;
28
+ headers: Record<string, string>;
29
+ data?: unknown;
30
+ };
31
+ export type ConvertApiTransport = (request: ConvertApiTransportRequest) => Promise<ConvertApiTransportResponse>;
32
+ export type AuthorizedProjectGrant = {
33
+ project_id: number;
34
+ name?: string;
35
+ role?: string;
36
+ };
37
+ export type AuthorizedAccountGrant = {
38
+ account_id: number;
39
+ name?: string;
40
+ projects?: AuthorizedProjectGrant[];
41
+ };
42
+ export type ToolExecutionContext = {
43
+ authContext?: ConvertAuthContext;
44
+ credentialsByAccount?: Map<number, ConvertAuthContext>;
45
+ apiBaseUrl?: string;
46
+ apiTransport?: ConvertApiTransport;
47
+ authorizedAccounts?: AuthorizedAccountGrant[];
48
+ principalId?: string;
49
+ missingCredentialsHint?: string;
50
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../src/auth-context.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { Icon } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const CONVERT_WEBSITE_URL = "https://www.convert.com/";
3
+ export declare const DEFAULT_ICON_BASE_URL = "https://mcp.ai.app.convert.com";
4
+ export declare function normalizeIconBaseUrl(baseUrl: string | undefined): string;
5
+ export declare function convertBrandIcons(baseUrl?: string): Icon[];
6
+ export declare function brandAssetPath(pathname: string): string | null;
package/build/brand.js ADDED
@@ -0,0 +1,89 @@
1
+ export const CONVERT_WEBSITE_URL = 'https://www.convert.com/';
2
+ export const DEFAULT_ICON_BASE_URL = 'https://mcp.ai.app.convert.com';
3
+ export function normalizeIconBaseUrl(baseUrl) {
4
+ const normalized = (baseUrl || DEFAULT_ICON_BASE_URL).trim().replace(/\/+$/, '');
5
+ return normalized || DEFAULT_ICON_BASE_URL;
6
+ }
7
+ export function convertBrandIcons(baseUrl) {
8
+ const base = normalizeIconBaseUrl(baseUrl);
9
+ return [
10
+ {
11
+ src: `${base}/convert-logo.png`,
12
+ mimeType: 'image/png',
13
+ sizes: ['567x122'],
14
+ },
15
+ {
16
+ src: `${base}/icon-512.png`,
17
+ mimeType: 'image/png',
18
+ sizes: ['512x512'],
19
+ },
20
+ {
21
+ src: `${base}/icon.png`,
22
+ mimeType: 'image/png',
23
+ sizes: ['512x512'],
24
+ },
25
+ {
26
+ src: `${base}/icon-256.png`,
27
+ mimeType: 'image/png',
28
+ sizes: ['256x256'],
29
+ },
30
+ {
31
+ src: `${base}/icon-192.png`,
32
+ mimeType: 'image/png',
33
+ sizes: ['192x192'],
34
+ },
35
+ {
36
+ src: `${base}/icon-128.png`,
37
+ mimeType: 'image/png',
38
+ sizes: ['128x128'],
39
+ },
40
+ {
41
+ src: `${base}/favicon.png`,
42
+ mimeType: 'image/png',
43
+ sizes: ['64x64'],
44
+ },
45
+ {
46
+ src: `${base}/favicon.ico`,
47
+ mimeType: 'image/x-icon',
48
+ sizes: ['16x16', '32x32', '48x48'],
49
+ },
50
+ {
51
+ src: `${base}/logo-light.svg`,
52
+ mimeType: 'image/svg+xml',
53
+ sizes: ['any'],
54
+ theme: 'light',
55
+ },
56
+ {
57
+ src: `${base}/logo-dark.svg`,
58
+ mimeType: 'image/svg+xml',
59
+ sizes: ['any'],
60
+ theme: 'dark',
61
+ },
62
+ {
63
+ src: `${base}/convert-icon.svg`,
64
+ mimeType: 'image/svg+xml',
65
+ sizes: ['any'],
66
+ },
67
+ ];
68
+ }
69
+ export function brandAssetPath(pathname) {
70
+ if (pathname === '/favicon.ico' ||
71
+ pathname === '/favicon.png' ||
72
+ pathname === '/apple-touch-icon.png' ||
73
+ pathname === '/convert-logo.png' ||
74
+ pathname === '/icon.png' ||
75
+ pathname === '/icon-192.png' ||
76
+ pathname === '/icon-256.png' ||
77
+ pathname === '/icon-512.png' ||
78
+ pathname === '/icon-128.png' ||
79
+ pathname === '/icon-180.png' ||
80
+ pathname === '/og-image.png' ||
81
+ pathname === '/convert-icon-64.png' ||
82
+ pathname === '/convert-icon.svg' ||
83
+ pathname === '/logo-light.svg' ||
84
+ pathname === '/logo-dark.svg') {
85
+ return pathname;
86
+ }
87
+ return null;
88
+ }
89
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAEtE,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,MAAM,UAAU,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,UAAU,IAAI,qBAAqB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO;QACL;YACE,GAAG,EAAE,GAAG,IAAI,mBAAmB;YAC/B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,eAAe;YAC3B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,WAAW;YACvB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,eAAe;YAC3B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,eAAe;YAC3B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,eAAe;YAC3B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,cAAc;YAC1B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,OAAO,CAAC;SACjB;QACD;YACE,GAAG,EAAE,GAAG,IAAI,cAAc;YAC1B,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;SACnC;QACD;YACE,GAAG,EAAE,GAAG,IAAI,iBAAiB;YAC7B,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,KAAK,EAAE,OAAO;SACf;QACD;YACE,GAAG,EAAE,GAAG,IAAI,gBAAgB;YAC5B,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,KAAK,EAAE,MAAM;SACd;QACD;YACE,GAAG,EAAE,GAAG,IAAI,mBAAmB;YAC/B,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC;SACf;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IACE,QAAQ,KAAK,cAAc;QAC3B,QAAQ,KAAK,cAAc;QAC3B,QAAQ,KAAK,uBAAuB;QACpC,QAAQ,KAAK,mBAAmB;QAChC,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,eAAe;QAC5B,QAAQ,KAAK,eAAe;QAC5B,QAAQ,KAAK,eAAe;QAC5B,QAAQ,KAAK,eAAe;QAC5B,QAAQ,KAAK,eAAe;QAC5B,QAAQ,KAAK,eAAe;QAC5B,QAAQ,KAAK,sBAAsB;QACnC,QAAQ,KAAK,mBAAmB;QAChC,QAAQ,KAAK,iBAAiB;QAC9B,QAAQ,KAAK,gBAAgB,EAC7B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
2
  import { type AxiosError } from 'axios';
3
3
  import { type ErrorObject } from 'ajv/dist/2020.js';
4
+ import type { ToolExecutionContext } from './auth-context.js';
4
5
  import { type JsonObject } from './shared.js';
5
- export declare function executeToolByName(toolName: string, toolArgs: JsonObject): Promise<CallToolResult>;
6
+ export declare function executeToolByName(toolName: string, toolArgs: JsonObject, executionContext?: ToolExecutionContext): Promise<CallToolResult>;
6
7
  export declare function recoverUploadedScreenshot(toolName: string, error: AxiosError, readbackUrl: string | null): Promise<CallToolResult | null>;
7
8
  export declare function validateToolArgs(toolName: string, rawSchema: unknown, args: JsonObject): {
8
9
  ok: true;