@revealui/mcp 0.1.8 → 0.1.9

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/dist/index.d.ts CHANGED
@@ -4,10 +4,10 @@
4
4
  * Model Context Protocol integrations for RevealUI.
5
5
  *
6
6
  * Provides:
7
- * - MCP hypervisor: process management, tool discovery, health checks (production-ready)
8
- * - MCP adapter framework: base class with retry, idempotency, error handling (production-ready)
9
- * - Database adapter: PGlite / PostgreSQL with CRDT support (production-ready)
10
- * - MCP contracts: Zod schemas for request/response/tool bridging (production-ready)
7
+ * - MCP hypervisor: process management, tool discovery, health checks (pre-wired)
8
+ * - MCP adapter framework: base class with retry, idempotency, error handling (pre-wired)
9
+ * - Database adapter: PGlite / PostgreSQL with CRDT support (pre-wired)
10
+ * - MCP contracts: Zod schemas for request/response/tool bridging (pre-wired)
11
11
  *
12
12
  * Server adapter status:
13
13
  * - NeonAdapter, StripeAdapter, VercelAdapter: scaffolded (adapter config + error mapping only,
package/dist/index.js CHANGED
@@ -4,10 +4,10 @@
4
4
  * Model Context Protocol integrations for RevealUI.
5
5
  *
6
6
  * Provides:
7
- * - MCP hypervisor: process management, tool discovery, health checks (production-ready)
8
- * - MCP adapter framework: base class with retry, idempotency, error handling (production-ready)
9
- * - Database adapter: PGlite / PostgreSQL with CRDT support (production-ready)
10
- * - MCP contracts: Zod schemas for request/response/tool bridging (production-ready)
7
+ * - MCP hypervisor: process management, tool discovery, health checks (pre-wired)
8
+ * - MCP adapter framework: base class with retry, idempotency, error handling (pre-wired)
9
+ * - Database adapter: PGlite / PostgreSQL with CRDT support (pre-wired)
10
+ * - MCP contracts: Zod schemas for request/response/tool bridging (pre-wired)
11
11
  *
12
12
  * Server adapter status:
13
13
  * - NeonAdapter, StripeAdapter, VercelAdapter: scaffolded (adapter config + error mapping only,
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Email provider for MCP servers.
3
+ *
4
+ * Provider priority:
5
+ * 1. Gmail REST API (GOOGLE_SERVICE_ACCOUNT_EMAIL + GOOGLE_PRIVATE_KEY)
6
+ * 2. SMTP (SMTP_HOST + SMTP_USER + SMTP_PASS)
7
+ * 3. Resend API (RESEND_API_KEY) — deprecated, kept as fallback
8
+ *
9
+ * Gmail uses a Google Workspace service account with domain-wide delegation
10
+ * to send as EMAIL_FROM via the Gmail REST API. Edge-compatible (fetch + jose).
11
+ */
12
+ export interface EmailPayload {
13
+ from: string;
14
+ to: string | string[];
15
+ subject: string;
16
+ html?: string;
17
+ text?: string;
18
+ reply_to?: string;
19
+ tags?: Array<{
20
+ name: string;
21
+ value: string;
22
+ }>;
23
+ }
24
+ export interface EmailResult {
25
+ provider: 'gmail' | 'resend';
26
+ id?: string;
27
+ data?: unknown;
28
+ }
29
+ /**
30
+ * Send a single email using the best available provider.
31
+ * Gmail REST API is preferred; falls back to Resend if Gmail is not configured.
32
+ */
33
+ export declare function sendEmail(payload: EmailPayload, overrides?: Record<string, string>): Promise<EmailResult>;
34
+ /**
35
+ * Send a batch of emails. Uses Gmail for each individually (no batch API),
36
+ * or Resend batch API if Gmail is not configured.
37
+ */
38
+ export declare function sendEmailBatch(payloads: EmailPayload[], overrides?: Record<string, string>): Promise<EmailResult>;
39
+ //# sourceMappingURL=_email-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_email-provider.d.ts","sourceRoot":"","sources":["../../src/servers/_email-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAyKD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,YAAY,EACrB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,OAAO,CAAC,WAAW,CAAC,CAkBtB"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Email provider for MCP servers.
3
+ *
4
+ * Provider priority:
5
+ * 1. Gmail REST API (GOOGLE_SERVICE_ACCOUNT_EMAIL + GOOGLE_PRIVATE_KEY)
6
+ * 2. SMTP (SMTP_HOST + SMTP_USER + SMTP_PASS)
7
+ * 3. Resend API (RESEND_API_KEY) — deprecated, kept as fallback
8
+ *
9
+ * Gmail uses a Google Workspace service account with domain-wide delegation
10
+ * to send as EMAIL_FROM via the Gmail REST API. Edge-compatible (fetch + jose).
11
+ */
12
+ import { importPKCS8, SignJWT } from 'jose';
13
+ function getGmailConfig(overrides) {
14
+ const serviceAccountEmail = overrides.GOOGLE_SERVICE_ACCOUNT_EMAIL ?? process.env.GOOGLE_SERVICE_ACCOUNT_EMAIL;
15
+ const privateKey = overrides.GOOGLE_PRIVATE_KEY ?? process.env.GOOGLE_PRIVATE_KEY;
16
+ const delegateEmail = overrides.EMAIL_FROM ??
17
+ process.env.EMAIL_FROM ??
18
+ overrides.REVEALUI_FROM_EMAIL ??
19
+ process.env.REVEALUI_FROM_EMAIL ??
20
+ 'noreply@revealui.com';
21
+ if (!(serviceAccountEmail && privateKey))
22
+ return null;
23
+ return { serviceAccountEmail, privateKey, delegateEmail };
24
+ }
25
+ async function getGmailAccessToken(config) {
26
+ const key = await importPKCS8(config.privateKey.replace(/\\n/g, '\n'), 'RS256');
27
+ const now = Math.floor(Date.now() / 1000);
28
+ const jwt = await new SignJWT({
29
+ scope: 'https://www.googleapis.com/auth/gmail.send',
30
+ sub: config.delegateEmail,
31
+ })
32
+ .setProtectedHeader({ alg: 'RS256', typ: 'JWT' })
33
+ .setIssuer(config.serviceAccountEmail)
34
+ .setAudience('https://oauth2.googleapis.com/token')
35
+ .setIssuedAt(now)
36
+ .setExpirationTime(now + 3600)
37
+ .sign(key);
38
+ const tokenRes = await fetch('https://oauth2.googleapis.com/token', {
39
+ method: 'POST',
40
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
41
+ body: new URLSearchParams({
42
+ grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
43
+ assertion: jwt,
44
+ }),
45
+ });
46
+ if (!tokenRes.ok) {
47
+ const body = await tokenRes.text();
48
+ throw new Error(`Google OAuth2 token exchange failed (${tokenRes.status}): ${body}`);
49
+ }
50
+ const { access_token } = (await tokenRes.json());
51
+ return access_token;
52
+ }
53
+ function buildRawMessage(payload) {
54
+ const to = Array.isArray(payload.to) ? payload.to.join(', ') : payload.to;
55
+ const boundary = `boundary_${Date.now().toString(36)}`;
56
+ const lines = [
57
+ `From: ${payload.from}`,
58
+ `To: ${to}`,
59
+ `Subject: ${payload.subject}`,
60
+ 'MIME-Version: 1.0',
61
+ `Content-Type: multipart/alternative; boundary="${boundary}"`,
62
+ ];
63
+ if (payload.reply_to) {
64
+ lines.push(`Reply-To: ${payload.reply_to}`);
65
+ }
66
+ lines.push('');
67
+ if (payload.text) {
68
+ lines.push(`--${boundary}`, 'Content-Type: text/plain; charset="UTF-8"', '', payload.text, '');
69
+ }
70
+ if (payload.html) {
71
+ lines.push(`--${boundary}`, 'Content-Type: text/html; charset="UTF-8"', '', payload.html, '');
72
+ }
73
+ lines.push(`--${boundary}--`);
74
+ const raw = lines.join('\r\n');
75
+ const bytes = new TextEncoder().encode(raw);
76
+ let b64 = '';
77
+ for (let i = 0; i < bytes.length; i += 4096) {
78
+ b64 += String.fromCharCode(...bytes.subarray(i, i + 4096));
79
+ }
80
+ return btoa(b64).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
81
+ }
82
+ async function sendViaGmail(config, payload) {
83
+ const accessToken = await getGmailAccessToken(config);
84
+ const raw = buildRawMessage({ ...payload, from: config.delegateEmail });
85
+ const res = await fetch('https://gmail.googleapis.com/gmail/v1/users/me/messages/send', {
86
+ method: 'POST',
87
+ headers: {
88
+ Authorization: `Bearer ${accessToken}`,
89
+ 'Content-Type': 'application/json',
90
+ },
91
+ body: JSON.stringify({ raw }),
92
+ });
93
+ if (!res.ok) {
94
+ const body = await res.text();
95
+ throw new Error(`Gmail API error (${res.status}): ${body}`);
96
+ }
97
+ const data = (await res.json());
98
+ return { provider: 'gmail', id: data.id, data };
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // Resend API provider (deprecated fallback)
102
+ // ---------------------------------------------------------------------------
103
+ async function sendViaResend(apiKey, payload) {
104
+ const res = await fetch('https://api.resend.com/emails', {
105
+ method: 'POST',
106
+ headers: {
107
+ Authorization: `Bearer ${apiKey}`,
108
+ 'Content-Type': 'application/json',
109
+ 'User-Agent': 'RevealUI-MCP/1.0',
110
+ },
111
+ body: JSON.stringify(payload),
112
+ });
113
+ const data = await res.json();
114
+ if (!res.ok) {
115
+ throw new Error(data.message ?? `Resend ${res.status}`);
116
+ }
117
+ return { provider: 'resend', data };
118
+ }
119
+ // ---------------------------------------------------------------------------
120
+ // Batch send via Resend (no Gmail batch API equivalent)
121
+ // ---------------------------------------------------------------------------
122
+ async function batchSendViaResend(apiKey, payloads) {
123
+ const res = await fetch('https://api.resend.com/emails/batch', {
124
+ method: 'POST',
125
+ headers: {
126
+ Authorization: `Bearer ${apiKey}`,
127
+ 'Content-Type': 'application/json',
128
+ 'User-Agent': 'RevealUI-MCP/1.0',
129
+ },
130
+ body: JSON.stringify(payloads),
131
+ });
132
+ const data = await res.json();
133
+ if (!res.ok) {
134
+ throw new Error(data.message ?? `Resend batch ${res.status}`);
135
+ }
136
+ return { provider: 'resend', data };
137
+ }
138
+ // ---------------------------------------------------------------------------
139
+ // Public API — auto-detects provider
140
+ // ---------------------------------------------------------------------------
141
+ /**
142
+ * Send a single email using the best available provider.
143
+ * Gmail REST API is preferred; falls back to Resend if Gmail is not configured.
144
+ */
145
+ export async function sendEmail(payload, overrides = {}) {
146
+ // 1. Gmail REST API (preferred)
147
+ const gmailConfig = getGmailConfig(overrides);
148
+ if (gmailConfig) {
149
+ return sendViaGmail(gmailConfig, payload);
150
+ }
151
+ // 2. Resend API (deprecated fallback)
152
+ const resendKey = overrides.RESEND_API_KEY ?? process.env.RESEND_API_KEY;
153
+ if (resendKey) {
154
+ return sendViaResend(resendKey, payload);
155
+ }
156
+ throw new Error('No email provider configured. Set GOOGLE_SERVICE_ACCOUNT_EMAIL + GOOGLE_PRIVATE_KEY for Gmail, or RESEND_API_KEY as fallback.');
157
+ }
158
+ /**
159
+ * Send a batch of emails. Uses Gmail for each individually (no batch API),
160
+ * or Resend batch API if Gmail is not configured.
161
+ */
162
+ export async function sendEmailBatch(payloads, overrides = {}) {
163
+ // 1. Gmail REST API — send individually (Gmail has no batch send endpoint)
164
+ const gmailConfig = getGmailConfig(overrides);
165
+ if (gmailConfig) {
166
+ const results = [];
167
+ for (const payload of payloads) {
168
+ results.push(await sendViaGmail(gmailConfig, payload));
169
+ }
170
+ return { provider: 'gmail', data: { sent: results.length } };
171
+ }
172
+ // 2. Resend batch API (deprecated fallback)
173
+ const resendKey = overrides.RESEND_API_KEY ?? process.env.RESEND_API_KEY;
174
+ if (resendKey) {
175
+ return batchSendViaResend(resendKey, payloads);
176
+ }
177
+ throw new Error('No email provider configured for batch sending.');
178
+ }
179
+ //# sourceMappingURL=_email-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_email-provider.js","sourceRoot":"","sources":["../../src/servers/_email-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AA4B5C,SAAS,cAAc,CAAC,SAAiC;IACvD,MAAM,mBAAmB,GACvB,SAAS,CAAC,4BAA4B,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IACrF,MAAM,UAAU,GAAG,SAAS,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAClF,MAAM,aAAa,GACjB,SAAS,CAAC,UAAU;QACpB,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,SAAS,CAAC,mBAAmB;QAC7B,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC/B,sBAAsB,CAAC;IAEzB,IAAI,CAAC,CAAC,mBAAmB,IAAI,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,MAAmB;IACpD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAEhF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC;QAC5B,KAAK,EAAE,4CAA4C;QACnD,GAAG,EAAE,MAAM,CAAC,aAAa;KAC1B,CAAC;SACC,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SAChD,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;SACrC,WAAW,CAAC,qCAAqC,CAAC;SAClD,WAAW,CAAC,GAAG,CAAC;SAChB,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;SAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,UAAU,EAAE,6CAA6C;YACzD,SAAS,EAAE,GAAG;SACf,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;IAC7E,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1E,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG;QACZ,SAAS,OAAO,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,EAAE;QACX,YAAY,OAAO,CAAC,OAAO,EAAE;QAC7B,mBAAmB;QACnB,kDAAkD,QAAQ,GAAG;KAC9D,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,EAAE,2CAA2C,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,EAAE,0CAA0C,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC;IAE9B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAmB,EAAE,OAAqB;IACpE,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAExE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,8DAA8D,EAAE;QACtF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,WAAW,EAAE;YACtC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;IACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,OAAqB;IAChE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,+BAA+B,EAAE;QACvD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,kBAAkB;SACjC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAE,IAA6B,CAAC,OAAO,IAAI,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAwB;IACxE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,kBAAkB;SACjC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;KAC/B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAE,IAA6B,CAAC,OAAO,IAAI,gBAAgB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAqB,EACrB,YAAoC,EAAE;IAEtC,gCAAgC;IAChC,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,sCAAsC;IACtC,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACzE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,YAAoC,EAAE;IAEtC,2EAA2E;IAC3E,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/D,CAAC;IAED,4CAA4C;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACzE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACrE,CAAC"}
@@ -60,7 +60,7 @@ async function startNextDevToolsMCP() {
60
60
  stderr?.pipe(process.stderr);
61
61
  }
62
62
  else {
63
- // Check CMS dev server
63
+ // Check Admin dev server
64
64
  const cmsPort = 4000;
65
65
  const cmsRunning = await checkPort(cmsPort);
66
66
  // In interactive mode, provide feedback that the server is running
@@ -68,8 +68,8 @@ async function startNextDevToolsMCP() {
68
68
  logger.info('\n📊 Server Discovery');
69
69
  logger.info('📝 Next Steps');
70
70
  if (!cmsRunning) {
71
- logger.info('1. Start your CMS dev server:');
72
- logger.info(' cd apps/cms && pnpm dev');
71
+ logger.info('1. Start your Admin dev server:');
72
+ logger.info(' cd apps/admin && pnpm dev');
73
73
  logger.info('');
74
74
  }
75
75
  logger.info('2. Ensure Next.js DevTools MCP is running:');
@@ -83,7 +83,7 @@ async function startNextDevToolsMCP() {
83
83
  logger.info(' - "Enable Cache Components in my app"');
84
84
  logger.info('');
85
85
  if (cmsRunning) {
86
- logger.success(`Next.js CMS app detected on port ${cmsPort}`);
86
+ logger.success(`Next.js Admin app detected on port ${cmsPort}`);
87
87
  logger.info(` URL: http://localhost:${cmsPort}`);
88
88
  logger.info(` MCP Endpoint: http://localhost:${cmsPort}/_next/mcp`);
89
89
  logger.info(' Server started successfully ✓');
@@ -122,11 +122,11 @@ async function startNextDevToolsMCP() {
122
122
  logger.info(' - Route verification');
123
123
  logger.info(' - Intelligent boundary setup');
124
124
  logger.info('');
125
- logger.info('💡 How to Use with Your CMS App');
126
- logger.info('Once your CMS dev server is running (pnpm dev in apps/cms):');
125
+ logger.info('💡 How to Use with Your Admin App');
126
+ logger.info('Once your Admin dev server is running (pnpm dev in apps/admin):');
127
127
  logger.info('');
128
128
  logger.info('1. Auto-discovery:');
129
- logger.info(' The MCP server will automatically detect your CMS app');
129
+ logger.info(' The MCP server will automatically detect your Admin app');
130
130
  logger.info(" when it's running on http://localhost:4000");
131
131
  logger.info('');
132
132
  logger.info('2. Query runtime errors:');
@@ -155,15 +155,15 @@ async function startNextDevToolsMCP() {
155
155
  logger.info(' - package.json scripts (mcp:next-devtools)');
156
156
  logger.info(' - Included in mcp:all command');
157
157
  logger.info('');
158
- logger.success('Your CMS app is Next.js 16.1.1 - fully compatible!');
158
+ logger.success('Your Admin app is Next.js 16.1.1 - fully compatible!');
159
159
  logger.success('Dev server runs on port 4000 with Turbopack');
160
160
  logger.success('MCP endpoint available at: /_next/mcp');
161
161
  logger.info('');
162
162
  logger.info(' Press Ctrl+C to stop the server');
163
163
  }
164
164
  else {
165
- logger.warning(`Next.js CMS app not running on port ${cmsPort}`);
166
- logger.info(` Start it with: cd apps/cms && pnpm dev`);
165
+ logger.warning(`Next.js Admin app not running on port ${cmsPort}`);
166
+ logger.info(` Start it with: cd apps/admin && pnpm dev`);
167
167
  }
168
168
  }
169
169
  child.on('error', (error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"next-devtools.js","sourceRoot":"","sources":["../../src/servers/next-devtools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next-devtools.js","sourceRoot":"","sources":["../../src/servers/next-devtools.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;AAEtC,6BAA6B;AAC7B,MAAM,EAAE,CAAC;AAET,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC;QACH,gEAAgE;QAChE,2DAA2D;QAC3D,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1C,MAAM,WAAW,GAAyC,YAAY;YACpE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,kDAAkD;YAC7E,CAAC,CAAC,SAAS,CAAC,CAAC,iDAAiD;QAEhE,2DAA2D;QAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC9F,CAAC;QAED,sCAAsC;QACtC,8CAA8C;QAC9C,qFAAqF;QACrF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;YACzD,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,sDAAsD;gBACtD,uBAAuB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG;aACpE;SACF,CAAC,CAAC;QAEH,gEAAgE;QAChE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACxC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC;YACrB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,mEAAmE;YACnE,wEAAwE;YACxE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEhB,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,YAAY,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;gBACnF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEhB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEhB,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEhB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;gBACvE,MAAM,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;gBAC9D,MAAM,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,gDAAgD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,qBAAqB,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -2,17 +2,24 @@
2
2
  /**
3
3
  * RevealUI Email MCP Server
4
4
  *
5
- * Model Context Protocol server that exposes email sending tools via Resend,
6
- * RevealUI's transactional email provider. Lets AI agents send notification
7
- * emails, digests, alerts, and templated messages on behalf of a RevealUI site.
5
+ * Model Context Protocol server that exposes email sending tools.
6
+ * Lets AI agents send notification emails, digests, alerts, and
7
+ * templated messages on behalf of a RevealUI site.
8
+ *
9
+ * Provider priority (auto-detected):
10
+ * 1. Gmail REST API (GOOGLE_SERVICE_ACCOUNT_EMAIL + GOOGLE_PRIVATE_KEY)
11
+ * 2. Resend API (RESEND_API_KEY) — deprecated fallback
8
12
  *
9
13
  * Environment:
10
- * RESEND_API_KEY Resend API key (re_...)
11
- * REVEALUI_FROM_EMAIL Default sender address (default: notifications@revealui.com)
14
+ * GOOGLE_SERVICE_ACCOUNT_EMAIL Google Workspace service account
15
+ * GOOGLE_PRIVATE_KEY RSA private key (PKCS8, \n-escaped)
16
+ * EMAIL_FROM — Sender address (default: noreply@revealui.com)
17
+ * RESEND_API_KEY — Resend API key (deprecated fallback)
18
+ * REVEALUI_FROM_EMAIL — Legacy from address (fallback for EMAIL_FROM)
12
19
  *
13
20
  * Tools:
14
21
  * email_send — Send a single email (HTML or plain text)
15
- * email_send_batch — Send up to 100 emails in one API call
22
+ * email_send_batch — Send up to 100 emails in one request
16
23
  */
17
24
  /**
18
25
  * Set credential overrides for this server.
@@ -1 +1 @@
1
- {"version":3,"file":"revealui-email.d.ts","sourceRoot":"","sources":["../../src/servers/revealui-email.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAmBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAElE"}
1
+ {"version":3,"file":"revealui-email.d.ts","sourceRoot":"","sources":["../../src/servers/revealui-email.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAoBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAElE"}
@@ -2,23 +2,31 @@
2
2
  /**
3
3
  * RevealUI Email MCP Server
4
4
  *
5
- * Model Context Protocol server that exposes email sending tools via Resend,
6
- * RevealUI's transactional email provider. Lets AI agents send notification
7
- * emails, digests, alerts, and templated messages on behalf of a RevealUI site.
5
+ * Model Context Protocol server that exposes email sending tools.
6
+ * Lets AI agents send notification emails, digests, alerts, and
7
+ * templated messages on behalf of a RevealUI site.
8
+ *
9
+ * Provider priority (auto-detected):
10
+ * 1. Gmail REST API (GOOGLE_SERVICE_ACCOUNT_EMAIL + GOOGLE_PRIVATE_KEY)
11
+ * 2. Resend API (RESEND_API_KEY) — deprecated fallback
8
12
  *
9
13
  * Environment:
10
- * RESEND_API_KEY Resend API key (re_...)
11
- * REVEALUI_FROM_EMAIL Default sender address (default: notifications@revealui.com)
14
+ * GOOGLE_SERVICE_ACCOUNT_EMAIL Google Workspace service account
15
+ * GOOGLE_PRIVATE_KEY RSA private key (PKCS8, \n-escaped)
16
+ * EMAIL_FROM — Sender address (default: noreply@revealui.com)
17
+ * RESEND_API_KEY — Resend API key (deprecated fallback)
18
+ * REVEALUI_FROM_EMAIL — Legacy from address (fallback for EMAIL_FROM)
12
19
  *
13
20
  * Tools:
14
21
  * email_send — Send a single email (HTML or plain text)
15
- * email_send_batch — Send up to 100 emails in one API call
22
+ * email_send_batch — Send up to 100 emails in one request
16
23
  */
17
24
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
18
25
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
19
26
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
20
27
  import { logger } from '@revealui/core/observability/logger';
21
28
  import { checkMcpLicense } from '../index.js';
29
+ import { sendEmail, sendEmailBatch } from './_email-provider.js';
22
30
  // ---------------------------------------------------------------------------
23
31
  // Credential overrides (set by Hypervisor before tool invocations)
24
32
  // ---------------------------------------------------------------------------
@@ -31,37 +39,15 @@ export function setCredentials(creds) {
31
39
  _credentialOverrides = creds;
32
40
  }
33
41
  // ---------------------------------------------------------------------------
34
- // Resend REST helpers
35
- // ---------------------------------------------------------------------------
36
- const RESEND_BASE = 'https://api.resend.com';
37
- const DEFAULT_FROM = 'RevealUI <notifications@revealui.com>';
38
- async function resendPost(apiKey, path, body) {
39
- const res = await fetch(`${RESEND_BASE}${path}`, {
40
- method: 'POST',
41
- headers: {
42
- Authorization: `Bearer ${apiKey}`,
43
- 'Content-Type': 'application/json',
44
- 'User-Agent': 'RevealUI-MCP/1.0',
45
- },
46
- body: JSON.stringify(body),
47
- });
48
- const data = await res.json();
49
- if (!res.ok) {
50
- throw new Error(data.message ??
51
- data.name ??
52
- `Resend ${res.status}`);
53
- }
54
- return data;
55
- }
56
- // ---------------------------------------------------------------------------
57
42
  // Server
58
43
  // ---------------------------------------------------------------------------
59
- const server = new Server({ name: 'revealui-email', version: '1.0.0' }, { capabilities: { tools: {} } });
44
+ const DEFAULT_FROM = 'RevealUI <notifications@revealui.com>';
45
+ const server = new Server({ name: 'revealui-email', version: '2.0.0' }, { capabilities: { tools: {} } });
60
46
  const TOOLS = [
61
47
  {
62
48
  name: 'email_send',
63
- description: "Send a single transactional email via RevealUI's Resend account. " +
64
- 'Provide either html or text (or both). Returns the Resend message ID.',
49
+ description: 'Send a single transactional email via the configured email provider ' +
50
+ '(Gmail REST API or Resend). Provide either html or text (or both). Returns the message ID.',
65
51
  inputSchema: {
66
52
  type: 'object',
67
53
  properties: {
@@ -86,7 +72,7 @@ const TOOLS = [
86
72
  },
87
73
  {
88
74
  name: 'email_send_batch',
89
- description: 'Send up to 100 emails in a single Resend batch request. ' +
75
+ description: 'Send up to 100 emails in a single request. ' +
90
76
  'Each email in the batch can have its own to/subject/html/text.',
91
77
  inputSchema: {
92
78
  type: 'object',
@@ -103,7 +89,7 @@ const TOOLS = [
103
89
  text: { type: 'string', description: 'Plain text body' },
104
90
  from: {
105
91
  type: 'string',
106
- description: 'Sender address (defaults to REVEALUI_FROM_EMAIL)',
92
+ description: 'Sender address (defaults to EMAIL_FROM)',
107
93
  },
108
94
  },
109
95
  required: ['to', 'subject'],
@@ -119,16 +105,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }))
119
105
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
120
106
  const startTime = Date.now();
121
107
  const toolName = request.params.name;
122
- const apiKey = _credentialOverrides.RESEND_API_KEY ?? process.env.RESEND_API_KEY;
123
- if (!apiKey) {
124
- return {
125
- content: [{ type: 'text', text: 'Error: RESEND_API_KEY is not set' }],
126
- isError: true,
127
- };
128
- }
129
- const fromAddress = _credentialOverrides.REVEALUI_FROM_EMAIL ?? process.env.REVEALUI_FROM_EMAIL ?? DEFAULT_FROM;
108
+ const fromAddress = _credentialOverrides.EMAIL_FROM ??
109
+ _credentialOverrides.REVEALUI_FROM_EMAIL ??
110
+ process.env.EMAIL_FROM ??
111
+ process.env.REVEALUI_FROM_EMAIL ??
112
+ DEFAULT_FROM;
130
113
  try {
131
- let data;
114
+ let result;
132
115
  switch (toolName) {
133
116
  case 'email_send': {
134
117
  const { to, subject, html, text, from = fromAddress, reply_to, } = request.params.arguments;
@@ -145,9 +128,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
145
128
  payload.text = text;
146
129
  if (reply_to)
147
130
  payload.reply_to = reply_to;
148
- // Tag all RevealUI MCP emails for filtering in Resend dashboard
149
131
  payload.tags = [{ name: 'source', value: 'revealui-mcp' }];
150
- data = await resendPost(apiKey, '/emails', payload);
132
+ result = await sendEmail(payload, _credentialOverrides);
151
133
  break;
152
134
  }
153
135
  case 'email_send_batch': {
@@ -158,7 +140,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
158
140
  isError: true,
159
141
  };
160
142
  }
161
- const batch = emails.map((e) => {
143
+ const payloads = emails.map((e) => {
162
144
  const payload = {
163
145
  from: e.from ?? fromAddress,
164
146
  to: e.to,
@@ -171,7 +153,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
171
153
  payload.text = e.text;
172
154
  return payload;
173
155
  });
174
- data = await resendPost(apiKey, '/emails/batch', batch);
156
+ result = await sendEmailBatch(payloads, _credentialOverrides);
175
157
  break;
176
158
  }
177
159
  default:
@@ -185,7 +167,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
185
167
  {
186
168
  type: 'text',
187
169
  text: JSON.stringify({
188
- data,
170
+ data: result,
189
171
  _meta: {
190
172
  durationMs: Date.now() - startTime,
191
173
  server: 'revealui-email',
@@ -207,14 +189,19 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
207
189
  }
208
190
  });
209
191
  async function main() {
210
- if (!(await checkMcpLicense())) {
211
- process.exit(1);
192
+ const allowed = await checkMcpLicense();
193
+ if (!allowed) {
194
+ logger.warn('revealui-email MCP server requires a Pro license');
195
+ process.exit(0);
212
196
  }
213
197
  const transport = new StdioServerTransport();
214
198
  await server.connect(transport);
199
+ logger.info('revealui-email MCP server running (Gmail → Resend fallback)');
215
200
  }
216
201
  main().catch((err) => {
217
- logger.error('RevealUI Email MCP error', err instanceof Error ? err : new Error(String(err)));
202
+ logger.error('revealui-email server failed to start', {
203
+ error: err instanceof Error ? err.message : String(err),
204
+ });
218
205
  process.exit(1);
219
206
  });
220
207
  //# sourceMappingURL=revealui-email.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"revealui-email.js","sourceRoot":"","sources":["../../src/servers/revealui-email.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revealui-email.js","sourceRoot":"","sources":["../../src/servers/revealui-email.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revealui/mcp",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Model Context Protocol integrations for RevealUI — adapter framework, hypervisor, and MCP contracts",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,9 +11,10 @@
11
11
  "dependencies": {
12
12
  "@modelcontextprotocol/sdk": "^1.26.0",
13
13
  "dotenv": "^17.2.4",
14
- "@revealui/config": "0.3.2",
15
- "@revealui/contracts": "1.3.5",
16
- "@revealui/core": "0.5.4"
14
+ "jose": "^6.2.2",
15
+ "@revealui/config": "0.3.3",
16
+ "@revealui/contracts": "1.3.6",
17
+ "@revealui/core": "0.5.5"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@electric-sql/pglite": "^0.4.2",
@@ -89,7 +90,7 @@
89
90
  "clean": "rm -rf dist",
90
91
  "dev": "tsc --watch",
91
92
  "lint": "biome check .",
92
- "test": "vitest run --passWithNoTests",
93
+ "test": "vitest run",
93
94
  "typecheck": "tsc --noEmit"
94
95
  }
95
96
  }
@@ -1,111 +0,0 @@
1
- RevealUI Commercial License
2
- Version 1.0, February 2026
3
-
4
- Copyright (c) 2025-2026 RevealUI Studio (founder@revealui.com)
5
-
6
- TERMS AND CONDITIONS
7
-
8
- 1. DEFINITIONS
9
-
10
- "Software" means the RevealUI source code, documentation, and associated
11
- files contained in directories and packages designated as commercial,
12
- including but not limited to: packages/ai, packages/harnesses, and any
13
- directory named "ee" within the repository.
14
-
15
- "License Key" means a valid RevealUI license key obtained through an active
16
- paid subscription at https://revealui.com.
17
-
18
- "Licensee" means the individual or organization that holds a valid License
19
- Key through an active subscription.
20
-
21
- "Production Use" means any use of the Software beyond local development and
22
- evaluation, including but not limited to: deploying the Software to serve
23
- end users, integrating the Software into a product or service, or using the
24
- Software in a revenue-generating capacity.
25
-
26
- 2. GRANT OF RIGHTS
27
-
28
- Subject to the terms of this License and a valid License Key, the Licensee
29
- is granted a non-exclusive, non-transferable, revocable license to:
30
-
31
- (a) Use the Software for internal development and Production Use.
32
- (b) Modify the Software for internal use.
33
- (c) Deploy the Software on infrastructure controlled by the Licensee.
34
-
35
- Enterprise License holders are additionally granted the right to:
36
-
37
- (d) Deploy the Software in a self-hosted environment.
38
- (e) Remove or replace RevealUI branding (white-label).
39
- (f) Use the Software for multiple tenants within the Licensee's
40
- organization or customer base.
41
-
42
- 3. RESTRICTIONS
43
-
44
- The Licensee SHALL NOT:
45
-
46
- (a) Provide the Software, or any portion of it, to third parties as a
47
- hosted or managed service that competes with RevealUI.
48
- (b) Redistribute, sublicense, sell, or otherwise transfer the Software
49
- or any portion of it to third parties.
50
- (c) Remove, alter, or circumvent the license key verification
51
- functionality of the Software.
52
- (d) Use the Software in Production without a valid License Key.
53
- (e) Share, publish, or make the License Key available to unauthorized
54
- parties.
55
-
56
- 4. EVALUATION
57
-
58
- The Software may be used for evaluation and local development purposes
59
- without a License Key. Evaluation use does not grant any rights to
60
- Production Use.
61
-
62
- 5. SUBSCRIPTION AND PAYMENT
63
-
64
- This License is valid only during the term of an active paid subscription.
65
- Upon cancellation or expiration of the subscription:
66
-
67
- (a) The License terminates automatically.
68
- (b) A grace period of fourteen (14) days is provided for the Licensee
69
- to transition away from Production Use.
70
- (c) After the grace period, the Licensee must cease all Production Use
71
- of the Software.
72
-
73
- 6. INTELLECTUAL PROPERTY
74
-
75
- The Software is and remains the intellectual property of RevealUI Studio.
76
- This License does not grant any ownership rights. Contributions to
77
- commercial portions of the Software require a Contributor License Agreement.
78
-
79
- 7. OPEN SOURCE COMPONENTS
80
-
81
- This License applies only to files and directories designated as commercial.
82
- Files under the MIT License (as indicated in the root LICENSE file) are not
83
- subject to this commercial license and may be used freely under MIT terms.
84
-
85
- 8. DISCLAIMER OF WARRANTY
86
-
87
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
88
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
89
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
90
-
91
- 9. LIMITATION OF LIABILITY
92
-
93
- IN NO EVENT SHALL REVEALUI STUDIO BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
94
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
95
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
96
- DEALINGS IN THE SOFTWARE, EXCEEDING THE AMOUNT PAID BY THE LICENSEE IN
97
- THE TWELVE (12) MONTHS PRECEDING THE CLAIM.
98
-
99
- 10. GOVERNING LAW
100
-
101
- This License shall be governed by the laws of the State of California,
102
- United States of America, without regard to its conflict of law provisions.
103
-
104
- 11. ENTIRE AGREEMENT
105
-
106
- This License constitutes the entire agreement between the parties with
107
- respect to the commercial portions of the Software and supersedes all
108
- prior agreements, understandings, and communications.
109
-
110
- For licensing inquiries: founder@revealui.com
111
- For pricing and subscriptions: https://revealui.com/pricing