@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.
- package/.assets/apple-touch-icon.png +0 -0
- package/.assets/convert-icon-64.png +0 -0
- package/.assets/convert-icon.svg +7 -0
- package/.assets/convert-logo.png +0 -0
- package/.assets/favicon.ico +0 -0
- package/.assets/favicon.png +0 -0
- package/.assets/icon-128.png +0 -0
- package/.assets/icon-180.png +0 -0
- package/.assets/icon-192.png +0 -0
- package/.assets/icon-256.png +0 -0
- package/.assets/icon-512.png +0 -0
- package/.assets/icon.png +0 -0
- package/.assets/og-image.png +0 -0
- package/README.md +11 -1
- package/build/api-config.d.ts +5 -0
- package/build/api-config.js +131 -13
- package/build/api-config.js.map +1 -1
- package/build/auth-context.d.ts +50 -0
- package/build/auth-context.js +2 -0
- package/build/auth-context.js.map +1 -0
- package/build/brand.d.ts +6 -0
- package/build/brand.js +89 -0
- package/build/brand.js.map +1 -0
- package/build/executor.d.ts +2 -1
- package/build/executor.js +118 -348
- package/build/executor.js.map +1 -1
- package/build/generated-tool-validators.d.ts +2803 -0
- package/build/generated-tool-validators.js +119285 -0
- package/build/generated-tool-validators.js.map +1 -0
- package/build/index.d.ts +7 -8
- package/build/index.js +46 -399
- package/build/index.js.map +1 -1
- package/build/kb-search-node.d.ts +2 -0
- package/build/kb-search-node.js +8 -0
- package/build/kb-search-node.js.map +1 -0
- package/build/kb-search.d.ts +1 -1
- package/build/kb-search.js +1 -4
- package/build/kb-search.js.map +1 -1
- package/build/namespaced.d.ts +2 -1
- package/build/namespaced.js +88 -7
- package/build/namespaced.js.map +1 -1
- package/build/operator.d.ts +2 -0
- package/build/operator.js +88 -45
- package/build/operator.js.map +1 -1
- package/build/runtime.d.ts +28 -0
- package/build/runtime.js +394 -0
- package/build/runtime.js.map +1 -0
- package/build/schema-normalizer.d.ts +2 -0
- package/build/schema-normalizer.js +373 -0
- package/build/schema-normalizer.js.map +1 -0
- package/build/tools.js +22 -10
- package/build/tools.js.map +1 -1
- package/data/convert-kb.json +12381 -12276
- package/data/kb-vectors/0/embedding.index.3.proxima +0 -0
- package/data/kb-vectors/0/scalar.0.ipc +0 -0
- package/data/kb-vectors/1/.gitkeep +0 -0
- package/data/kb-vectors/del.0 +0 -0
- package/data/kb-vectors/idmap.0/000008.sst +0 -0
- package/data/kb-vectors/idmap.0/IDENTITY +1 -1
- package/data/kb-vectors/idmap.0/MANIFEST-000005 +0 -0
- package/data/kb-vectors/manifest.3 +2 -2
- package/package.json +29 -8
- 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
|
package/.assets/icon.png
ADDED
|
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,
|
|
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:
|
package/build/api-config.d.ts
CHANGED
|
@@ -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;
|
package/build/api-config.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import crypto from 'crypto';
|
|
3
|
-
export const API_BASE_URL =
|
|
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 =
|
|
56
|
-
const
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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 '{}';
|
package/build/api-config.js.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../src/auth-context.ts"],"names":[],"mappings":""}
|
package/build/brand.d.ts
ADDED
|
@@ -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"}
|
package/build/executor.d.ts
CHANGED
|
@@ -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;
|