@sendinel/mcp-server 1.0.28 → 1.0.29

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.
@@ -35,6 +35,8 @@ export interface ApprovalResult {
35
35
  summary: string;
36
36
  expires_at: string;
37
37
  approve_via: string;
38
+ /** One-tap approval page; works on a phone and needs no project switching (#3661). */
39
+ approve_url: string;
38
40
  message: string;
39
41
  }
40
42
  /**
@@ -155,6 +155,10 @@ export function buildApprovalSummary(action, params) {
155
155
  const fn = summaries[action];
156
156
  return fn ? fn(params) : `Execute ${action} with provided parameters`;
157
157
  }
158
+ function approvalPageUrl(approvalId) {
159
+ const base = (process.env.NEXT_PUBLIC_APP_URL ?? process.env.SENDINEL_APP_URL ?? process.env.APP_URL ?? 'https://sendinel.ai').replace(/\/$/, '');
160
+ return `${base}/dashboard/approvals/${approvalId}`;
161
+ }
158
162
  function normalizeApprovalParams(value) {
159
163
  if (Array.isArray(value)) {
160
164
  return value.map(normalizeApprovalParams);
@@ -209,7 +213,8 @@ export async function requestApproval(action, params, apiKeyId, channelContext)
209
213
  action,
210
214
  summary,
211
215
  expires_at: expiresAt,
212
- approve_via: 'Dashboard → Pending Approvals, or Slack /sendinel approve',
216
+ approve_via: 'Open approve_url (works on a phone), Dashboard → Pending Approvals, or Slack /sendinel approve',
217
+ approve_url: approvalPageUrl(data.id),
213
218
  message: `This action requires human approval. A notification has been sent to your dashboard. Approval ID: ${data.id}. Check status with: poll this approval_id, or wait for the webhook callback (event: approval.decided). Token expires in 30 minutes.`,
214
219
  };
215
220
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendinel/mcp-server",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "description": "AI-controlled email operations control plane for campaigns, contacts, segments, analytics, and multi-provider sending via MCP.",
5
5
  "mcpName": "ai.sendinel/mcp-server",
6
6
  "type": "module",