supporthero-mcp-server 1.1.1 → 1.1.2

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.js CHANGED
@@ -28,7 +28,7 @@ if (writeEnabled) {
28
28
  // ── Server Setup ────────────────────────────────────────────
29
29
  const server = new McpServer({
30
30
  name: "supporthero-mcp-server",
31
- version: "1.1.0",
31
+ version: "1.1.2",
32
32
  });
33
33
  const client = new SupportHeroClient(SUPPORTHERO_DOMAIN, SUPPORTHERO_API_KEY, session);
34
34
  registerTools(server, client);
@@ -32,8 +32,11 @@ export declare class SupportHeroClient {
32
32
  private requireSession;
33
33
  /**
34
34
  * GET an article via the authenticated session endpoint.
35
- * Uses /api/article/{id} (no v1 prefix) which may return additional
36
- * fields needed for the PUT payload.
35
+ * Uses /api/article/{id} (no v1 prefix) which returns the full article
36
+ * wrapped in an envelope: { article: { ..., container: { id, ... } }, links: [...] }
37
+ *
38
+ * We unwrap the article and transform it into the flat SHArticleUpdatePayload
39
+ * shape that the PUT endpoint expects (container.id -> containerId).
37
40
  */
38
41
  getArticleForUpdate(articleId: string): Promise<SHArticleUpdatePayload>;
39
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,SAAS,EAET,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IAOrE,+EAA+E;IAC/E,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;YACW,OAAO;IA0BrB,sEAAsE;IAChE,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAStE,mCAAmC;IAC7B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM1D,6CAA6C;IACvC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5D,kCAAkC;IAC5B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAMvD,uEAAuE;IACjE,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+B7E;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;CAkDnC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,SAAS,EAET,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IAOrE,+EAA+E;IAC/E,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;YACW,OAAO;IA0BrB,sEAAsE;IAChE,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAStE,mCAAmC;IAC7B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM1D,6CAA6C;IACvC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5D,kCAAkC;IAC5B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAMvD,uEAAuE;IACjE,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;;;;OAOG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiE7E;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;CAkDnC"}
@@ -88,8 +88,11 @@ export class SupportHeroClient {
88
88
  }
89
89
  /**
90
90
  * GET an article via the authenticated session endpoint.
91
- * Uses /api/article/{id} (no v1 prefix) which may return additional
92
- * fields needed for the PUT payload.
91
+ * Uses /api/article/{id} (no v1 prefix) which returns the full article
92
+ * wrapped in an envelope: { article: { ..., container: { id, ... } }, links: [...] }
93
+ *
94
+ * We unwrap the article and transform it into the flat SHArticleUpdatePayload
95
+ * shape that the PUT endpoint expects (container.id -> containerId).
93
96
  */
94
97
  async getArticleForUpdate(articleId) {
95
98
  const session = this.requireSession();
@@ -108,8 +111,38 @@ export class SupportHeroClient {
108
111
  if (!body.trim()) {
109
112
  throw new Error(`Failed to fetch article ${articleId} for update: server returned empty response body`);
110
113
  }
111
- const article = JSON.parse(body);
112
- console.error(`[client] getArticleForUpdate: Got article title="${article.title}", containerId="${article.containerId}"`);
114
+ // The API returns { article: { ... }, links: [...], ... }
115
+ // We need to unwrap the article object from the envelope.
116
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
+ const envelope = JSON.parse(body);
118
+ // Unwrap: the article is nested under .article
119
+ const raw = envelope.article ?? envelope;
120
+ console.error(`[client] getArticleForUpdate: Has .article wrapper=${!!envelope.article}`);
121
+ // Transform container object -> flat containerId string
122
+ // The GET response has: { container: { id: "28476", name: "..." } }
123
+ // The PUT payload expects: { containerId: "28476" }
124
+ const containerId = raw.container?.id ?? raw.containerId ?? "";
125
+ console.error(`[client] getArticleForUpdate: title="${raw.title}", containerId="${containerId}", container=${JSON.stringify(raw.container?.id)}`);
126
+ const article = {
127
+ id: raw.id ?? articleId,
128
+ title: raw.title ?? "",
129
+ description: raw.description ?? "",
130
+ containerId,
131
+ keywords: raw.keywords ?? "",
132
+ metaCanonical: raw.metaCanonical ?? "",
133
+ metaDescription: raw.metaDescription ?? "",
134
+ metaKeywords: raw.metaKeywords ?? "",
135
+ metaTitle: raw.metaTitle ?? "",
136
+ published: raw.published ?? false,
137
+ saveAsDraft: raw.saveAsDraft ?? false,
138
+ type: raw.type ?? "article",
139
+ videoUrl: raw.videoUrl ?? "",
140
+ expireDate: raw.expireDate ?? null,
141
+ publishDate: raw.publishDate ?? null,
142
+ threeOhOne: raw.threeOhOne ?? "",
143
+ viewerGroups: raw.viewerGroups ?? [],
144
+ articlesToTranslate: raw.articlesToTranslate ?? [],
145
+ };
113
146
  return article;
114
147
  }
115
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAY9C;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,OAAO,CAAwB;IAEvC,YAAY,OAAe,EAAE,MAAc,EAAE,OAAwB;QACnE,kCAAkC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAED,+EAA+E;IAC/E,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,SAAiC,EAAE;QACxE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,WAAW,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACxC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAC5E,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAED,+DAA+D;IAE/D,sEAAsE;IACtE,KAAK,CAAC,cAAc,CAAC,gBAAyB;QAC5C,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAyB,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAa,YAAY,UAAU,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,+DAA+D;IAE/D,6CAA6C;IAC7C,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAwB,SAAS,EAAE;YAChE,UAAU;SACX,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAY,WAAW,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,+DAA+D;IAE/D,uEAAuE;IACvE,KAAK,CAAC,cAAc,CAClB,UAAkB,EAClB,GAAY,EACZ,MAAe;QAEf,MAAM,MAAM,GAA2B,EAAE,UAAU,EAAE,CAAC;QACtD,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACnC,OAAO,IAAI,CAAC,OAAO,CAAmB,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,6DAA6D;IAE7D;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,mDAAmD;gBACnD,8DAA8D,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,gBAAgB,SAAS,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACrD,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAC1C,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,iDAAiD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,gBAAgB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CACtG,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,sDAAsD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,kDAAkD,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,CAAC,KAAK,mBAAmB,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAC1H,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAA8B;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtC,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAE1D,oDAAoD;QACpD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,OAAO,GAA2B;YACtC,GAAG,OAAO;YACV,GAAG,OAAO;SACX,CAAC;QAEF,wBAAwB;QACxB,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;QAEvB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,gBAAgB,SAAS,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACrD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,+CAA+C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAClF,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAC5F,CAAC;QACJ,CAAC;QAED,4DAA4D;QAC5D,8EAA8E;QAC9E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,oDAAoD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;YACvG,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;IACpD,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,GAA0B;IAChD,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAoC,EAAE,CAAC;QACtE,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,8DAA8D;YAC7D,MAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -2,11 +2,16 @@
2
2
  * Session management for SupportHero write operations.
3
3
  *
4
4
  * SupportHero's write API requires session-based authentication via cookies
5
- * (JSESSIONID and X-Session-Token), obtained by logging in through their
6
- * HTML form at signin.supporthero.io.
5
+ * (JSESSIONID and X-Session-Token), obtained by calling the preLogin API
6
+ * on signin.supporthero.io.
7
+ *
8
+ * The login flow (discovered by inspecting the AngularJS SPA):
9
+ * 1. GET /api/session/preLogin?domain={subdomain}&email={email}&password={base64}&redirect=true
10
+ * 2. On success, the server returns a 302 redirect to {subdomain}.supporthero.io with session cookies
11
+ * 3. We manually follow redirects, collecting Set-Cookie headers at each hop
7
12
  *
8
13
  * This module handles:
9
- * - Logging in via the signin form
14
+ * - Authenticating via the preLogin API
10
15
  * - Extracting and caching session cookies across redirect hops
11
16
  * - Making authenticated requests with automatic session renewal
12
17
  */
@@ -20,7 +25,6 @@ export declare class SessionManager {
20
25
  constructor(email: string, password: string, domain: string);
21
26
  /**
22
27
  * Parse Set-Cookie headers and merge into our cookie jar.
23
- * Handles both single and multiple Set-Cookie values.
24
28
  */
25
29
  private collectCookies;
26
30
  /**
@@ -28,13 +32,13 @@ export declare class SessionManager {
28
32
  */
29
33
  private getCookieHeader;
30
34
  /**
31
- * Log in to SupportHero via the signin form.
35
+ * Log in to SupportHero via the preLogin API.
36
+ *
37
+ * The login is a GET request (not a form POST) with the password base64-encoded:
38
+ * GET https://signin.supporthero.io/api/session/preLogin
39
+ * ?domain={subdomain}&email={email}&password={base64}&redirect=true
32
40
  *
33
- * Flow:
34
- * 1. GET signin.supporthero.io to discover the form action and hidden fields
35
- * 2. POST credentials to the form action URL
36
- * 3. Manually follow redirects, collecting cookies at each hop
37
- * 4. Verify we got the required session cookies
41
+ * On success, the server responds with a redirect chain that sets session cookies.
38
42
  */
39
43
  login(): Promise<void>;
40
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAS;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU3D;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsH5B;;;OAGG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAuDpF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAS;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU3D;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2E5B;;;OAGG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAoDpF"}
package/dist/session.js CHANGED
@@ -2,11 +2,16 @@
2
2
  * Session management for SupportHero write operations.
3
3
  *
4
4
  * SupportHero's write API requires session-based authentication via cookies
5
- * (JSESSIONID and X-Session-Token), obtained by logging in through their
6
- * HTML form at signin.supporthero.io.
5
+ * (JSESSIONID and X-Session-Token), obtained by calling the preLogin API
6
+ * on signin.supporthero.io.
7
+ *
8
+ * The login flow (discovered by inspecting the AngularJS SPA):
9
+ * 1. GET /api/session/preLogin?domain={subdomain}&email={email}&password={base64}&redirect=true
10
+ * 2. On success, the server returns a 302 redirect to {subdomain}.supporthero.io with session cookies
11
+ * 3. We manually follow redirects, collecting Set-Cookie headers at each hop
7
12
  *
8
13
  * This module handles:
9
- * - Logging in via the signin form
14
+ * - Authenticating via the preLogin API
10
15
  * - Extracting and caching session cookies across redirect hops
11
16
  * - Making authenticated requests with automatic session renewal
12
17
  */
@@ -28,10 +33,8 @@ export class SessionManager {
28
33
  }
29
34
  /**
30
35
  * Parse Set-Cookie headers and merge into our cookie jar.
31
- * Handles both single and multiple Set-Cookie values.
32
36
  */
33
37
  collectCookies(response, label) {
34
- // response.headers.getSetCookie() returns an array of Set-Cookie strings
35
38
  const setCookieHeaders = response.headers.getSetCookie?.() ?? [];
36
39
  if (setCookieHeaders.length === 0) {
37
40
  console.error(`[session] ${label}: No Set-Cookie headers received`);
@@ -57,91 +60,43 @@ export class SessionManager {
57
60
  .join("; ");
58
61
  }
59
62
  /**
60
- * Log in to SupportHero via the signin form.
63
+ * Log in to SupportHero via the preLogin API.
64
+ *
65
+ * The login is a GET request (not a form POST) with the password base64-encoded:
66
+ * GET https://signin.supporthero.io/api/session/preLogin
67
+ * ?domain={subdomain}&email={email}&password={base64}&redirect=true
61
68
  *
62
- * Flow:
63
- * 1. GET signin.supporthero.io to discover the form action and hidden fields
64
- * 2. POST credentials to the form action URL
65
- * 3. Manually follow redirects, collecting cookies at each hop
66
- * 4. Verify we got the required session cookies
69
+ * On success, the server responds with a redirect chain that sets session cookies.
67
70
  */
68
71
  async login() {
69
72
  this.cookies.clear();
70
73
  this.isAuthenticated = false;
71
74
  console.error("[session] Starting login flow...");
72
- // Step 1: GET the login page to inspect the form
73
- const loginPageUrl = "https://signin.supporthero.io/";
74
- console.error(`[session] Step 1: GET ${loginPageUrl}`);
75
- const loginPageRes = await fetch(loginPageUrl, {
75
+ // Build the preLogin URL with base64-encoded password
76
+ const encodedPassword = Buffer.from(this.password).toString("base64");
77
+ const loginUrl = new URL("https://signin.supporthero.io/api/session/preLogin");
78
+ loginUrl.searchParams.set("domain", this.subdomain);
79
+ loginUrl.searchParams.set("email", this.email);
80
+ loginUrl.searchParams.set("password", encodedPassword);
81
+ loginUrl.searchParams.set("redirect", "true");
82
+ console.error(`[session] GET preLogin for domain="${this.subdomain}", email="${this.email}"`);
83
+ let response = await fetch(loginUrl.toString(), {
76
84
  redirect: "manual",
77
85
  });
78
- console.error(`[session] Step 1: Response status=${loginPageRes.status}`);
79
- this.collectCookies(loginPageRes, "Step 1 (GET login page)");
80
- const loginPageHtml = await loginPageRes.text();
81
- console.error(`[session] Step 1: Page HTML length=${loginPageHtml.length}`);
82
- // Extract form action URL (default to the login page itself if not found)
83
- const actionMatch = loginPageHtml.match(/<form[^>]*action=["']([^"']*)["']/i);
84
- const formAction = actionMatch ? actionMatch[1] : loginPageUrl;
85
- console.error(`[session] Step 1: Form action="${formAction}" (matched=${!!actionMatch})`);
86
- // Resolve relative action URLs against the login page
87
- const postUrl = new URL(formAction, loginPageUrl).toString();
88
- console.error(`[session] Step 1: Resolved POST URL="${postUrl}"`);
89
- // Extract any hidden input fields (CSRF tokens, etc.)
90
- const hiddenFields = {};
91
- const hiddenInputRegex = /<input[^>]*type=["']hidden["'][^>]*>/gi;
92
- let match;
93
- while ((match = hiddenInputRegex.exec(loginPageHtml)) !== null) {
94
- const input = match[0];
95
- const nameMatch = input.match(/name=["']([^"']*)["']/);
96
- const valueMatch = input.match(/value=["']([^"']*)["']/);
97
- if (nameMatch) {
98
- hiddenFields[nameMatch[1]] = valueMatch ? valueMatch[1] : "";
99
- }
100
- }
101
- console.error(`[session] Step 1: Hidden fields found: ${JSON.stringify(Object.keys(hiddenFields))}`);
102
- // Also look for all input fields to understand the form structure
103
- const allInputRegex = /<input[^>]*>/gi;
104
- const allInputs = [];
105
- while ((match = allInputRegex.exec(loginPageHtml)) !== null) {
106
- const nameMatch = match[0].match(/name=["']([^"']*)["']/);
107
- const typeMatch = match[0].match(/type=["']([^"']*)["']/);
108
- if (nameMatch) {
109
- allInputs.push(`${nameMatch[1]} (type=${typeMatch ? typeMatch[1] : "text"})`);
110
- }
111
- }
112
- console.error(`[session] Step 1: All form inputs: ${JSON.stringify(allInputs)}`);
113
- // Step 2: POST login credentials
114
- const formData = new URLSearchParams({
115
- ...hiddenFields,
116
- email: this.email,
117
- password: this.password,
118
- helpCenter: this.subdomain,
119
- });
120
- console.error(`[session] Step 2: POST to ${postUrl}`);
121
- console.error(`[session] Step 2: Form fields being sent: ${JSON.stringify(Object.keys({ ...hiddenFields, email: "(set)", password: "(set)", helpCenter: this.subdomain }))}`);
122
- console.error(`[session] Step 2: helpCenter value="${this.subdomain}"`);
123
- let response = await fetch(postUrl, {
124
- method: "POST",
125
- headers: {
126
- "Content-Type": "application/x-www-form-urlencoded",
127
- "Cookie": this.getCookieHeader(),
128
- },
129
- body: formData.toString(),
130
- redirect: "manual",
131
- });
132
- console.error(`[session] Step 2: POST response status=${response.status}`);
133
- this.collectCookies(response, "Step 2 (POST login)");
134
- // Step 3: Follow redirect chain manually to collect cookies from each domain
86
+ console.error(`[session] preLogin response status=${response.status}`);
87
+ this.collectCookies(response, "preLogin response");
88
+ // Follow redirect chain manually to collect cookies from each domain hop
89
+ // (signin.supporthero.io -> propel.supporthero.io)
135
90
  const maxRedirects = 10;
136
91
  let redirectCount = 0;
137
92
  while (isRedirect(response.status) && redirectCount < maxRedirects) {
138
93
  const location = response.headers.get("location");
139
94
  if (!location) {
140
- console.error(`[session] Step 3: Redirect ${redirectCount + 1} has no Location header, stopping`);
95
+ console.error(`[session] Redirect ${redirectCount + 1}: No Location header, stopping`);
141
96
  break;
142
97
  }
143
- const nextUrl = new URL(location, response.url || postUrl).toString();
144
- console.error(`[session] Step 3: Redirect ${redirectCount + 1} -> ${nextUrl}`);
98
+ const nextUrl = new URL(location, loginUrl.toString()).toString();
99
+ console.error(`[session] Redirect ${redirectCount + 1}: -> ${nextUrl}`);
145
100
  response = await fetch(nextUrl, {
146
101
  method: "GET",
147
102
  headers: {
@@ -149,14 +104,24 @@ export class SessionManager {
149
104
  },
150
105
  redirect: "manual",
151
106
  });
152
- console.error(`[session] Step 3: Redirect ${redirectCount + 1} response status=${response.status}`);
153
- this.collectCookies(response, `Step 3 (redirect ${redirectCount + 1})`);
107
+ console.error(`[session] Redirect ${redirectCount + 1}: status=${response.status}`);
108
+ this.collectCookies(response, `Redirect ${redirectCount + 1}`);
154
109
  redirectCount++;
155
110
  }
156
- // Step 4: Verify we have the required session cookies
111
+ // If no redirects happened (status 200), the login may have failed.
112
+ // Check the response body for error indicators.
113
+ if (redirectCount === 0 && response.status === 200) {
114
+ const body = await response.text();
115
+ console.error(`[session] No redirects after preLogin. Response body length=${body.length}`);
116
+ if (body.includes("credentials") || body.includes("error") || body.includes("invalid")) {
117
+ console.error(`[session] Response appears to contain an error message`);
118
+ }
119
+ // Even without redirects, check if we got useful cookies
120
+ }
121
+ // Log the final cookie state
157
122
  const cookieNames = Array.from(this.cookies.keys());
158
- console.error(`[session] Step 4: All cookies collected: ${JSON.stringify(cookieNames)}`);
159
- console.error(`[session] Step 4: Has JSESSIONID=${this.cookies.has("JSESSIONID")}, Has X-Session-Token=${this.cookies.has("X-Session-Token")}`);
123
+ console.error(`[session] All cookies collected: ${JSON.stringify(cookieNames)}`);
124
+ console.error(`[session] Has JSESSIONID=${this.cookies.has("JSESSIONID")}, Has X-Session-Token=${this.cookies.has("X-Session-Token")}`);
160
125
  if (!this.cookies.has("JSESSIONID")) {
161
126
  throw new Error("Login failed: JSESSIONID cookie not received. " +
162
127
  "Check your SUPPORTHERO_EMAIL and SUPPORTHERO_PASSWORD credentials. " +
@@ -176,11 +141,9 @@ export class SessionManager {
176
141
  }
177
142
  const doFetch = async () => {
178
143
  const headers = new Headers(options.headers);
179
- const cookieHeader = this.getCookieHeader();
180
- headers.set("Cookie", cookieHeader);
144
+ headers.set("Cookie", this.getCookieHeader());
181
145
  console.error(`[session] authenticatedFetch: ${options.method || "GET"} ${url}`);
182
146
  console.error(`[session] authenticatedFetch: Sending cookies: ${Array.from(this.cookies.keys()).join(", ")}`);
183
- // Don't follow redirects automatically so we can detect login redirects
184
147
  return fetch(url, {
185
148
  ...options,
186
149
  headers,
@@ -195,7 +158,6 @@ export class SessionManager {
195
158
  await this.login();
196
159
  response = await doFetch();
197
160
  console.error(`[session] authenticatedFetch (retry): Response status=${response.status}`);
198
- // If still failing after re-auth, let it through as-is
199
161
  if (isSessionExpired(response)) {
200
162
  throw new Error("SupportHero authentication failed after retry. " +
201
163
  "Check your credentials and try again.");
@@ -230,7 +192,6 @@ function isSessionExpired(response) {
230
192
  if (response.status === 401 || response.status === 403) {
231
193
  return true;
232
194
  }
233
- // Check if redirected back to the login page
234
195
  if (isRedirect(response.status)) {
235
196
  const location = response.headers.get("location") ?? "";
236
197
  if (location.includes("signin.supporthero.io")) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supporthero-mcp-server",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "MCP server for SupportHero Help Center API. Enables Claude and other LLMs to search, browse, read, and update help center articles.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",