@unclick/mcp-server 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +139 -139
  2. package/dist/algolia-tool.d.ts +5 -0
  3. package/dist/algolia-tool.d.ts.map +1 -0
  4. package/dist/algolia-tool.js +121 -0
  5. package/dist/algolia-tool.js.map +1 -0
  6. package/dist/assemblyai-tool.d.ts +7 -0
  7. package/dist/assemblyai-tool.d.ts.map +1 -0
  8. package/dist/assemblyai-tool.js +127 -0
  9. package/dist/assemblyai-tool.js.map +1 -0
  10. package/dist/catalog.d.ts.map +1 -1
  11. package/dist/catalog.js +261 -0
  12. package/dist/catalog.js.map +1 -1
  13. package/dist/circleci-tool.d.ts +7 -0
  14. package/dist/circleci-tool.d.ts.map +1 -0
  15. package/dist/circleci-tool.js +133 -0
  16. package/dist/circleci-tool.js.map +1 -0
  17. package/dist/cohere-tool.d.ts +7 -0
  18. package/dist/cohere-tool.d.ts.map +1 -0
  19. package/dist/cohere-tool.js +225 -0
  20. package/dist/cohere-tool.js.map +1 -0
  21. package/dist/convertkit-tool.d.ts +7 -0
  22. package/dist/convertkit-tool.d.ts.map +1 -0
  23. package/dist/convertkit-tool.js +213 -0
  24. package/dist/convertkit-tool.js.map +1 -0
  25. package/dist/datadog-tool.d.ts +7 -0
  26. package/dist/datadog-tool.d.ts.map +1 -0
  27. package/dist/datadog-tool.js +121 -0
  28. package/dist/datadog-tool.js.map +1 -0
  29. package/dist/deepl-tool.d.ts +5 -0
  30. package/dist/deepl-tool.d.ts.map +1 -0
  31. package/dist/deepl-tool.js +137 -0
  32. package/dist/deepl-tool.js.map +1 -0
  33. package/dist/flyio-tool.d.ts +6 -0
  34. package/dist/flyio-tool.d.ts.map +1 -0
  35. package/dist/flyio-tool.js +158 -0
  36. package/dist/flyio-tool.js.map +1 -0
  37. package/dist/groq-tool.d.ts +3 -0
  38. package/dist/groq-tool.d.ts.map +1 -0
  39. package/dist/groq-tool.js +109 -0
  40. package/dist/groq-tool.js.map +1 -0
  41. package/dist/gumroad-tool.d.ts +6 -0
  42. package/dist/gumroad-tool.d.ts.map +1 -0
  43. package/dist/gumroad-tool.js +90 -0
  44. package/dist/gumroad-tool.js.map +1 -0
  45. package/dist/heygen-tool.d.ts +5 -0
  46. package/dist/heygen-tool.d.ts.map +1 -0
  47. package/dist/heygen-tool.js +134 -0
  48. package/dist/heygen-tool.js.map +1 -0
  49. package/dist/higgsfield-tool.d.ts +5 -0
  50. package/dist/higgsfield-tool.d.ts.map +1 -0
  51. package/dist/higgsfield-tool.js +120 -0
  52. package/dist/higgsfield-tool.js.map +1 -0
  53. package/dist/keychain-crypto.d.ts +24 -0
  54. package/dist/keychain-crypto.d.ts.map +1 -0
  55. package/dist/keychain-crypto.js +60 -0
  56. package/dist/keychain-crypto.js.map +1 -0
  57. package/dist/keychain-secure-input.d.ts +17 -0
  58. package/dist/keychain-secure-input.d.ts.map +1 -0
  59. package/dist/keychain-secure-input.js +229 -0
  60. package/dist/keychain-secure-input.js.map +1 -0
  61. package/dist/keychain-tool.d.ts +3 -0
  62. package/dist/keychain-tool.d.ts.map +1 -0
  63. package/dist/keychain-tool.js +516 -0
  64. package/dist/keychain-tool.js.map +1 -0
  65. package/dist/kling-tool.d.ts +3 -0
  66. package/dist/kling-tool.d.ts.map +1 -0
  67. package/dist/kling-tool.js +102 -0
  68. package/dist/kling-tool.js.map +1 -0
  69. package/dist/lemonsqueezy-tool.d.ts +7 -0
  70. package/dist/lemonsqueezy-tool.d.ts.map +1 -0
  71. package/dist/lemonsqueezy-tool.js +220 -0
  72. package/dist/lemonsqueezy-tool.js.map +1 -0
  73. package/dist/linear-tool.js +73 -73
  74. package/dist/local-catalog-handlers.d.ts +3 -0
  75. package/dist/local-catalog-handlers.d.ts.map +1 -0
  76. package/dist/local-catalog-handlers.js +1254 -0
  77. package/dist/local-catalog-handlers.js.map +1 -0
  78. package/dist/mailchimp-tool.d.ts +8 -0
  79. package/dist/mailchimp-tool.d.ts.map +1 -0
  80. package/dist/mailchimp-tool.js +138 -0
  81. package/dist/mailchimp-tool.js.map +1 -0
  82. package/dist/mapbox-tool.d.ts +6 -0
  83. package/dist/mapbox-tool.d.ts.map +1 -0
  84. package/dist/mapbox-tool.js +106 -0
  85. package/dist/mapbox-tool.js.map +1 -0
  86. package/dist/memory/db.d.ts +10 -0
  87. package/dist/memory/db.d.ts.map +1 -0
  88. package/dist/memory/db.js +22 -0
  89. package/dist/memory/db.js.map +1 -0
  90. package/dist/memory/handlers.d.ts +11 -0
  91. package/dist/memory/handlers.d.ts.map +1 -0
  92. package/dist/memory/handlers.js +125 -0
  93. package/dist/memory/handlers.js.map +1 -0
  94. package/dist/memory/local.d.ts +37 -0
  95. package/dist/memory/local.d.ts.map +1 -0
  96. package/dist/memory/local.js +386 -0
  97. package/dist/memory/local.js.map +1 -0
  98. package/dist/memory/supabase.d.ts +34 -0
  99. package/dist/memory/supabase.d.ts.map +1 -0
  100. package/dist/memory/supabase.js +209 -0
  101. package/dist/memory/supabase.js.map +1 -0
  102. package/dist/memory/types.d.ts +81 -0
  103. package/dist/memory/types.d.ts.map +1 -0
  104. package/dist/memory/types.js +5 -0
  105. package/dist/memory/types.js.map +1 -0
  106. package/dist/mistral-tool.d.ts +4 -0
  107. package/dist/mistral-tool.d.ts.map +1 -0
  108. package/dist/mistral-tool.js +145 -0
  109. package/dist/mistral-tool.js.map +1 -0
  110. package/dist/mixpanel-tool.d.ts +6 -0
  111. package/dist/mixpanel-tool.d.ts.map +1 -0
  112. package/dist/mixpanel-tool.js +162 -0
  113. package/dist/mixpanel-tool.js.map +1 -0
  114. package/dist/monday-tool.js +46 -46
  115. package/dist/musicbrainz-tool.js +1 -1
  116. package/dist/musicbrainz-tool.js.map +1 -1
  117. package/dist/neon-tool.d.ts +7 -0
  118. package/dist/neon-tool.d.ts.map +1 -0
  119. package/dist/neon-tool.js +156 -0
  120. package/dist/neon-tool.js.map +1 -0
  121. package/dist/pagerduty-tool.d.ts +8 -0
  122. package/dist/pagerduty-tool.d.ts.map +1 -0
  123. package/dist/pagerduty-tool.js +185 -0
  124. package/dist/pagerduty-tool.js.map +1 -0
  125. package/dist/perplexity-tool.d.ts +2 -0
  126. package/dist/perplexity-tool.d.ts.map +1 -0
  127. package/dist/perplexity-tool.js +93 -0
  128. package/dist/perplexity-tool.js.map +1 -0
  129. package/dist/pika-tool.d.ts +4 -0
  130. package/dist/pika-tool.d.ts.map +1 -0
  131. package/dist/pika-tool.js +102 -0
  132. package/dist/pika-tool.js.map +1 -0
  133. package/dist/pinecone-tool.d.ts +6 -0
  134. package/dist/pinecone-tool.d.ts.map +1 -0
  135. package/dist/pinecone-tool.js +148 -0
  136. package/dist/pinecone-tool.js.map +1 -0
  137. package/dist/postmark-tool.d.ts +7 -0
  138. package/dist/postmark-tool.d.ts.map +1 -0
  139. package/dist/postmark-tool.js +148 -0
  140. package/dist/postmark-tool.js.map +1 -0
  141. package/dist/qc-tool.d.ts +4 -0
  142. package/dist/qc-tool.d.ts.map +1 -0
  143. package/dist/qc-tool.js +415 -0
  144. package/dist/qc-tool.js.map +1 -0
  145. package/dist/render-tool.d.ts +7 -0
  146. package/dist/render-tool.d.ts.map +1 -0
  147. package/dist/render-tool.js +158 -0
  148. package/dist/render-tool.js.map +1 -0
  149. package/dist/runway-tool.d.ts +4 -0
  150. package/dist/runway-tool.d.ts.map +1 -0
  151. package/dist/runway-tool.js +110 -0
  152. package/dist/runway-tool.js.map +1 -0
  153. package/dist/segment-tool.d.ts +6 -0
  154. package/dist/segment-tool.d.ts.map +1 -0
  155. package/dist/segment-tool.js +129 -0
  156. package/dist/segment-tool.js.map +1 -0
  157. package/dist/sendgrid-tool.d.ts +7 -0
  158. package/dist/sendgrid-tool.d.ts.map +1 -0
  159. package/dist/sendgrid-tool.js +124 -0
  160. package/dist/sendgrid-tool.js.map +1 -0
  161. package/dist/server.d.ts.map +1 -1
  162. package/dist/server.js +129 -0
  163. package/dist/server.js.map +1 -1
  164. package/dist/togetherai-tool.d.ts +5 -0
  165. package/dist/togetherai-tool.d.ts.map +1 -0
  166. package/dist/togetherai-tool.js +129 -0
  167. package/dist/togetherai-tool.js.map +1 -0
  168. package/dist/toilets-tool.js +2 -2
  169. package/dist/tool-wiring.d.ts +4608 -692
  170. package/dist/tool-wiring.d.ts.map +1 -1
  171. package/dist/tool-wiring.js +2946 -463
  172. package/dist/tool-wiring.js.map +1 -1
  173. package/dist/turso-tool.d.ts +6 -0
  174. package/dist/turso-tool.d.ts.map +1 -0
  175. package/dist/turso-tool.js +158 -0
  176. package/dist/turso-tool.js.map +1 -0
  177. package/dist/upstash-tool.d.ts +8 -0
  178. package/dist/upstash-tool.d.ts.map +1 -0
  179. package/dist/upstash-tool.js +191 -0
  180. package/dist/upstash-tool.js.map +1 -0
  181. package/package.json +66 -65
  182. package/public/icon.svg +15 -15
  183. package/server.json +37 -37
@@ -0,0 +1,93 @@
1
+ // Perplexity AI API integration for the UnClick MCP server.
2
+ // Uses the Perplexity REST API via fetch - no external dependencies.
3
+ // Users must supply an API key from www.perplexity.ai/settings/api.
4
+ const PERPLEXITY_API_BASE = "https://api.perplexity.ai";
5
+ // --- Auth validation ---------------------------------------------------------
6
+ function requireKey(args) {
7
+ const key = String(args.api_key ?? "").trim();
8
+ if (!key)
9
+ throw new Error("api_key is required. Get one at www.perplexity.ai/settings/api.");
10
+ return key;
11
+ }
12
+ // --- API helpers -------------------------------------------------------------
13
+ async function perplexityPost(apiKey, path, body) {
14
+ const res = await fetch(`${PERPLEXITY_API_BASE}${path}`, {
15
+ method: "POST",
16
+ headers: {
17
+ Authorization: `Bearer ${apiKey}`,
18
+ "Content-Type": "application/json",
19
+ },
20
+ body: JSON.stringify(body),
21
+ });
22
+ const data = await res.json();
23
+ if (!res.ok) {
24
+ const err = data.error;
25
+ const msg = err?.message ?? data.detail ?? `HTTP ${res.status}`;
26
+ throw new Error(`Perplexity error: ${msg}`);
27
+ }
28
+ return data;
29
+ }
30
+ // --- Operations --------------------------------------------------------------
31
+ export async function perplexityChatCompletion(args) {
32
+ try {
33
+ const apiKey = requireKey(args);
34
+ const model = String(args.model ?? "sonar");
35
+ // Parse messages
36
+ let messages;
37
+ if (Array.isArray(args.messages)) {
38
+ messages = args.messages;
39
+ }
40
+ else if (typeof args.messages === "string") {
41
+ try {
42
+ messages = JSON.parse(args.messages);
43
+ }
44
+ catch {
45
+ throw new Error("messages must be a JSON array of {role, content} objects.");
46
+ }
47
+ }
48
+ else if (args.prompt) {
49
+ const systemPrompt = args.system_prompt ? String(args.system_prompt) : undefined;
50
+ messages = [];
51
+ if (systemPrompt)
52
+ messages.push({ role: "system", content: systemPrompt });
53
+ messages.push({ role: "user", content: String(args.prompt) });
54
+ }
55
+ else {
56
+ throw new Error("Either messages (array) or prompt (string) is required.");
57
+ }
58
+ if (messages.length === 0)
59
+ throw new Error("messages array must not be empty.");
60
+ const body = { model, messages };
61
+ if (args.max_tokens)
62
+ body.max_tokens = Number(args.max_tokens);
63
+ if (args.temperature !== undefined)
64
+ body.temperature = Number(args.temperature);
65
+ // Perplexity-specific search options
66
+ if (args.search_domain_filter) {
67
+ body.search_domain_filter = Array.isArray(args.search_domain_filter)
68
+ ? args.search_domain_filter
69
+ : [String(args.search_domain_filter)];
70
+ }
71
+ if (args.search_recency_filter)
72
+ body.search_recency_filter = String(args.search_recency_filter);
73
+ if (args.return_images !== undefined)
74
+ body.return_images = Boolean(args.return_images);
75
+ if (args.return_related_questions !== undefined)
76
+ body.return_related_questions = Boolean(args.return_related_questions);
77
+ const result = await perplexityPost(apiKey, "/chat/completions", body);
78
+ return {
79
+ id: result.id,
80
+ model: result.model,
81
+ created: new Date(result.created * 1000).toISOString(),
82
+ message: result.choices[0]?.message.content ?? null,
83
+ finish_reason: result.choices[0]?.finish_reason ?? null,
84
+ citations: result.citations ?? [],
85
+ related_questions: result.related_questions ?? [],
86
+ usage: result.usage,
87
+ };
88
+ }
89
+ catch (err) {
90
+ return { error: err instanceof Error ? err.message : String(err) };
91
+ }
92
+ }
93
+ //# sourceMappingURL=perplexity-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perplexity-tool.js","sourceRoot":"","sources":["../src/perplexity-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function pika_generate_video(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function pika_get_generation(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function pika_list_styles(args: Record<string, unknown>): Promise<unknown>;
4
+ //# sourceMappingURL=pika-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pika-tool.d.ts","sourceRoot":"","sources":["../src/pika-tool.ts"],"names":[],"mappings":"AAoDA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBzF;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBzF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAYtF"}
@@ -0,0 +1,102 @@
1
+ // Pika API integration for the UnClick MCP server.
2
+ // Uses the Pika REST API via fetch - no external dependencies.
3
+ // Users must supply an API key from pika.art.
4
+ const PIKA_API_BASE = "https://api.pika.art/v1";
5
+ // ─── Auth validation ──────────────────────────────────────────────────────────
6
+ function requireKey(args) {
7
+ const key = String(args.api_key ?? "").trim();
8
+ if (!key)
9
+ throw new Error("api_key is required. Get one at pika.art.");
10
+ return key;
11
+ }
12
+ // ─── API helpers ──────────────────────────────────────────────────────────────
13
+ async function pikaGet(apiKey, path) {
14
+ const res = await fetch(`${PIKA_API_BASE}${path}`, {
15
+ headers: {
16
+ Authorization: `Bearer ${apiKey}`,
17
+ "Content-Type": "application/json",
18
+ },
19
+ });
20
+ const data = await res.json();
21
+ if (!res.ok) {
22
+ const msg = data.message ?? data.error ?? `HTTP ${res.status}`;
23
+ throw new Error(`Pika error (${res.status}): ${msg}`);
24
+ }
25
+ return data;
26
+ }
27
+ async function pikaPost(apiKey, path, body) {
28
+ const res = await fetch(`${PIKA_API_BASE}${path}`, {
29
+ method: "POST",
30
+ headers: {
31
+ Authorization: `Bearer ${apiKey}`,
32
+ "Content-Type": "application/json",
33
+ },
34
+ body: JSON.stringify(body),
35
+ });
36
+ const data = await res.json();
37
+ if (!res.ok) {
38
+ const msg = data.message ?? data.error ?? `HTTP ${res.status}`;
39
+ throw new Error(`Pika error (${res.status}): ${msg}`);
40
+ }
41
+ return data;
42
+ }
43
+ // ─── Operations ───────────────────────────────────────────────────────────────
44
+ export async function pika_generate_video(args) {
45
+ const apiKey = requireKey(args);
46
+ const prompt = String(args.prompt ?? "").trim();
47
+ if (!prompt)
48
+ throw new Error("prompt is required.");
49
+ const body = { prompt };
50
+ if (args.image_url)
51
+ body.image = String(args.image_url);
52
+ if (args.style)
53
+ body.style = String(args.style);
54
+ if (args.duration)
55
+ body.duration = Number(args.duration);
56
+ if (args.aspect_ratio)
57
+ body.aspectRatio = String(args.aspect_ratio);
58
+ if (args.negative_prompt)
59
+ body.negativePrompt = String(args.negative_prompt);
60
+ if (args.seed !== undefined)
61
+ body.seed = Number(args.seed);
62
+ if (args.motion)
63
+ body.motion = Number(args.motion);
64
+ if (args.guidance_scale !== undefined)
65
+ body.guidanceScale = Number(args.guidance_scale);
66
+ const result = await pikaPost(apiKey, "/generate", body);
67
+ return {
68
+ generation_id: result.id ?? result.generation_id ?? null,
69
+ status: result.status ?? "submitted",
70
+ prompt,
71
+ note: "Use pika_get_generation with the generation_id to poll for completion.",
72
+ raw: result,
73
+ };
74
+ }
75
+ export async function pika_get_generation(args) {
76
+ const apiKey = requireKey(args);
77
+ const generationId = String(args.generation_id ?? "").trim();
78
+ if (!generationId)
79
+ throw new Error("generation_id is required.");
80
+ const result = await pikaGet(apiKey, `/generations/${encodeURIComponent(generationId)}`);
81
+ return {
82
+ generation_id: generationId,
83
+ status: result.status ?? null,
84
+ video_url: result.video_url ?? result.url ?? null,
85
+ thumbnail_url: result.thumbnail_url ?? null,
86
+ duration: result.duration ?? null,
87
+ created_at: result.created_at ?? result.createdAt ?? null,
88
+ error: result.error ?? null,
89
+ raw: result,
90
+ };
91
+ }
92
+ export async function pika_list_styles(args) {
93
+ const apiKey = requireKey(args);
94
+ const data = await pikaGet(apiKey, "/styles");
95
+ const styles = data.styles ?? data.data ?? [];
96
+ return {
97
+ count: Array.isArray(styles) ? styles.length : 0,
98
+ styles,
99
+ note: "Pass a style name or ID as the style parameter in pika_generate_video.",
100
+ };
101
+ }
102
+ //# sourceMappingURL=pika-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pika-tool.js","sourceRoot":"","sources":["../src/pika-tool.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,+DAA+D;AAC/D,8CAA8C;AAE9C,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAEhD,iFAAiF;AAEjF,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,OAAO,CAAI,MAAc,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,GAAG,IAAI,EAAE,EAAE;QACjD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAI,MAAc,EAAE,IAAY,EAAE,IAAa;IACpE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,aAAa,GAAG,IAAI,EAAE,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAC;IACzD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAA6B;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEpD,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,YAAY;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,eAAe;QAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAExF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAA0B,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAElF,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI;QACxD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,WAAW;QACpC,MAAM;QACN,IAAI,EAAE,wEAAwE;QAC9E,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAA6B;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,MAAM,EAAE,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAC3D,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,YAAY;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI;QACjD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI;QACzD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,GAAG,EAAE,MAAM;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAA6B;IAClE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,MAAM,EAAE,SAAS,CAClB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC9C,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM;QACN,IAAI,EAAE,wEAAwE;KAC/E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function pineconeListIndexes(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function pineconeDescribeIndex(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function pineconeQueryVectors(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function pineconeUpsertVectors(args: Record<string, unknown>): Promise<unknown>;
5
+ export declare function pineconeDeleteVectors(args: Record<string, unknown>): Promise<unknown>;
6
+ //# sourceMappingURL=pinecone-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinecone-tool.d.ts","sourceRoot":"","sources":["../src/pinecone-tool.ts"],"names":[],"mappings":"AAyDA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAKzF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK3F;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B1F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoB3F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB3F"}
@@ -0,0 +1,148 @@
1
+ // Pinecone Vector DB integration for the UnClick MCP server.
2
+ // Uses the Pinecone REST API via fetch - no external dependencies.
3
+ // Users must supply an API key from app.pinecone.io.
4
+ const PINE_BASE = "https://api.pinecone.io";
5
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
6
+ function requireKey(args) {
7
+ const key = String(args.api_key ?? "").trim();
8
+ if (!key)
9
+ throw new Error("api_key is required. Get one at app.pinecone.io.");
10
+ return key;
11
+ }
12
+ async function pineGet(apiKey, path) {
13
+ const res = await fetch(`${PINE_BASE}${path}`, {
14
+ headers: { "Api-Key": apiKey, "Content-Type": "application/json" },
15
+ });
16
+ const data = await res.json();
17
+ if (!res.ok) {
18
+ const msg = data.message ?? data.error ?? `HTTP ${res.status}`;
19
+ throw new Error(`Pinecone error (${res.status}): ${msg}`);
20
+ }
21
+ return data;
22
+ }
23
+ async function pinePost(apiKey, path, body, baseUrl) {
24
+ const url = baseUrl ? `${baseUrl}${path}` : `${PINE_BASE}${path}`;
25
+ const res = await fetch(url, {
26
+ method: "POST",
27
+ headers: { "Api-Key": apiKey, "Content-Type": "application/json" },
28
+ body: JSON.stringify(body),
29
+ });
30
+ const data = await res.json();
31
+ if (!res.ok) {
32
+ const msg = data.message ?? data.error ?? `HTTP ${res.status}`;
33
+ throw new Error(`Pinecone error (${res.status}): ${msg}`);
34
+ }
35
+ return data;
36
+ }
37
+ async function pineDel(apiKey, path, body, baseUrl) {
38
+ const url = baseUrl ? `${baseUrl}${path}` : `${PINE_BASE}${path}`;
39
+ const options = {
40
+ method: "DELETE",
41
+ headers: { "Api-Key": apiKey, "Content-Type": "application/json" },
42
+ };
43
+ if (body)
44
+ options.body = JSON.stringify(body);
45
+ const res = await fetch(url, options);
46
+ if (res.status === 200 || res.status === 204)
47
+ return {};
48
+ const data = await res.json();
49
+ const msg = data.message ?? `HTTP ${res.status}`;
50
+ throw new Error(`Pinecone error (${res.status}): ${msg}`);
51
+ }
52
+ // ─── Operations ───────────────────────────────────────────────────────────────
53
+ export async function pineconeListIndexes(args) {
54
+ const apiKey = requireKey(args);
55
+ const data = await pineGet(apiKey, "/indexes");
56
+ const indexes = data.indexes ?? [];
57
+ return { count: indexes.length, indexes };
58
+ }
59
+ export async function pineconeDescribeIndex(args) {
60
+ const apiKey = requireKey(args);
61
+ const name = String(args.index_name ?? "").trim();
62
+ if (!name)
63
+ throw new Error("index_name is required.");
64
+ return pineGet(apiKey, `/indexes/${encodeURIComponent(name)}`);
65
+ }
66
+ export async function pineconeQueryVectors(args) {
67
+ const apiKey = requireKey(args);
68
+ const indexHost = String(args.index_host ?? "").trim();
69
+ if (!indexHost)
70
+ throw new Error("index_host is required (the full host URL from describe_index, e.g. https://my-index-xxx.svc.pinecone.io).");
71
+ let vector;
72
+ if (Array.isArray(args.vector)) {
73
+ vector = args.vector;
74
+ }
75
+ else if (typeof args.vector === "string") {
76
+ try {
77
+ vector = JSON.parse(args.vector);
78
+ }
79
+ catch {
80
+ throw new Error("vector must be a JSON array of numbers.");
81
+ }
82
+ }
83
+ else {
84
+ throw new Error("vector is required (array of numbers).");
85
+ }
86
+ const body = {
87
+ vector,
88
+ topK: Math.min(10000, Math.max(1, Number(args.top_k ?? 10))),
89
+ includeValues: args.include_values === true,
90
+ includeMetadata: args.include_metadata !== false,
91
+ };
92
+ if (args.namespace)
93
+ body.namespace = String(args.namespace);
94
+ if (args.filter)
95
+ body.filter = args.filter;
96
+ const host = indexHost.startsWith("http") ? indexHost : `https://${indexHost}`;
97
+ return pinePost(apiKey, "/query", body, host);
98
+ }
99
+ export async function pineconeUpsertVectors(args) {
100
+ const apiKey = requireKey(args);
101
+ const indexHost = String(args.index_host ?? "").trim();
102
+ if (!indexHost)
103
+ throw new Error("index_host is required.");
104
+ let vectors;
105
+ if (Array.isArray(args.vectors)) {
106
+ vectors = args.vectors;
107
+ }
108
+ else if (typeof args.vectors === "string") {
109
+ try {
110
+ vectors = JSON.parse(args.vectors);
111
+ }
112
+ catch {
113
+ throw new Error("vectors must be a JSON array of {id, values, metadata?} objects.");
114
+ }
115
+ }
116
+ else {
117
+ throw new Error("vectors is required (array of {id, values, metadata?} objects).");
118
+ }
119
+ const body = { vectors };
120
+ if (args.namespace)
121
+ body.namespace = String(args.namespace);
122
+ const host = indexHost.startsWith("http") ? indexHost : `https://${indexHost}`;
123
+ return pinePost(apiKey, "/vectors/upsert", body, host);
124
+ }
125
+ export async function pineconeDeleteVectors(args) {
126
+ const apiKey = requireKey(args);
127
+ const indexHost = String(args.index_host ?? "").trim();
128
+ if (!indexHost)
129
+ throw new Error("index_host is required.");
130
+ const body = {};
131
+ if (args.ids) {
132
+ body.ids = Array.isArray(args.ids) ? args.ids : [String(args.ids)];
133
+ }
134
+ else if (args.delete_all === true) {
135
+ body.deleteAll = true;
136
+ }
137
+ else {
138
+ throw new Error("Either ids (array of vector IDs) or delete_all=true is required.");
139
+ }
140
+ if (args.namespace)
141
+ body.namespace = String(args.namespace);
142
+ if (args.filter)
143
+ body.filter = args.filter;
144
+ const host = indexHost.startsWith("http") ? indexHost : `https://${indexHost}`;
145
+ await pineDel(apiKey, "/vectors/delete", body, host);
146
+ return { success: true };
147
+ }
148
+ //# sourceMappingURL=pinecone-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinecone-tool.js","sourceRoot":"","sources":["../src/pinecone-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function postmark_send_email(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function postmark_send_batch(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function postmark_get_delivery_stats(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function postmark_list_templates(args: Record<string, unknown>): Promise<unknown>;
5
+ export declare function postmark_get_template(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function postmark_search_messages(args: Record<string, unknown>): Promise<unknown>;
7
+ //# sourceMappingURL=postmark-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postmark-tool.d.ts","sourceRoot":"","sources":["../src/postmark-tool.ts"],"names":[],"mappings":"AAuDA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BzF;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzF;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjG;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAc7F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK3F;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkB9F"}
@@ -0,0 +1,148 @@
1
+ // Postmark Transactional Email API.
2
+ // Docs: https://postmarkapp.com/developer/api/overview
3
+ // Auth: X-Postmark-Server-Token header
4
+ // Base: https://api.postmarkapp.com
5
+ const POSTMARK_API_BASE = "https://api.postmarkapp.com";
6
+ function requireKey(args) {
7
+ const key = String(args.api_key ?? "").trim();
8
+ if (!key)
9
+ throw new Error("api_key is required. Get your Server Token from account.postmarkapp.com.");
10
+ return key;
11
+ }
12
+ async function pmGet(apiKey, path, query) {
13
+ const url = new URL(`${POSTMARK_API_BASE}${path}`);
14
+ if (query) {
15
+ for (const [k, v] of Object.entries(query)) {
16
+ if (v !== undefined && v !== "")
17
+ url.searchParams.set(k, v);
18
+ }
19
+ }
20
+ const res = await fetch(url.toString(), {
21
+ headers: {
22
+ "X-Postmark-Server-Token": apiKey,
23
+ Accept: "application/json",
24
+ "Content-Type": "application/json",
25
+ },
26
+ });
27
+ const data = await res.json();
28
+ if (!res.ok) {
29
+ const msg = data.Message ?? `HTTP ${res.status}`;
30
+ throw new Error(`Postmark error (${res.status}): ${msg}`);
31
+ }
32
+ return data;
33
+ }
34
+ async function pmPost(apiKey, path, body) {
35
+ const res = await fetch(`${POSTMARK_API_BASE}${path}`, {
36
+ method: "POST",
37
+ headers: {
38
+ "X-Postmark-Server-Token": apiKey,
39
+ Accept: "application/json",
40
+ "Content-Type": "application/json",
41
+ },
42
+ body: JSON.stringify(body),
43
+ });
44
+ const data = await res.json();
45
+ if (!res.ok) {
46
+ const msg = data.Message ?? `HTTP ${res.status}`;
47
+ throw new Error(`Postmark error (${res.status}): ${msg}`);
48
+ }
49
+ return data;
50
+ }
51
+ // ─── Operations ───────────────────────────────────────────────────────────────
52
+ export async function postmark_send_email(args) {
53
+ const apiKey = requireKey(args);
54
+ const from = String(args.from ?? "").trim();
55
+ const to = String(args.to ?? "").trim();
56
+ const subject = String(args.subject ?? "").trim();
57
+ if (!from)
58
+ throw new Error("from is required.");
59
+ if (!to)
60
+ throw new Error("to is required.");
61
+ if (!subject)
62
+ throw new Error("subject is required.");
63
+ if (!args.html_body && !args.text_body)
64
+ throw new Error("html_body or text_body is required.");
65
+ const body = { From: from, To: to, Subject: subject };
66
+ if (args.html_body)
67
+ body.HtmlBody = String(args.html_body);
68
+ if (args.text_body)
69
+ body.TextBody = String(args.text_body);
70
+ if (args.reply_to)
71
+ body.ReplyTo = String(args.reply_to);
72
+ if (args.cc)
73
+ body.Cc = String(args.cc);
74
+ if (args.bcc)
75
+ body.Bcc = String(args.bcc);
76
+ if (args.tag)
77
+ body.Tag = String(args.tag);
78
+ if (args.message_stream)
79
+ body.MessageStream = String(args.message_stream);
80
+ const data = await pmPost(apiKey, "/email", body);
81
+ return {
82
+ message_id: data.MessageID,
83
+ submitted_at: data.SubmittedAt,
84
+ to: data.To,
85
+ error_code: data.ErrorCode,
86
+ message: data.Message,
87
+ };
88
+ }
89
+ export async function postmark_send_batch(args) {
90
+ const apiKey = requireKey(args);
91
+ const messages = args.messages;
92
+ if (!Array.isArray(messages) || messages.length === 0) {
93
+ throw new Error("messages must be a non-empty array of email objects.");
94
+ }
95
+ const data = await pmPost(apiKey, "/email/batch", { Messages: messages });
96
+ return {
97
+ count: Array.isArray(data) ? data.length : 0,
98
+ results: data,
99
+ };
100
+ }
101
+ export async function postmark_get_delivery_stats(args) {
102
+ const apiKey = requireKey(args);
103
+ return pmGet(apiKey, "/deliverystats");
104
+ }
105
+ export async function postmark_list_templates(args) {
106
+ const apiKey = requireKey(args);
107
+ const query = {};
108
+ if (args.count)
109
+ query.Count = String(args.count);
110
+ if (args.offset)
111
+ query.Offset = String(args.offset);
112
+ const data = await pmGet(apiKey, "/templates", query);
113
+ return {
114
+ total: data.TotalCount,
115
+ count: data.Templates?.length ?? 0,
116
+ templates: data.Templates ?? [],
117
+ };
118
+ }
119
+ export async function postmark_get_template(args) {
120
+ const apiKey = requireKey(args);
121
+ const id = String(args.template_id ?? "").trim();
122
+ if (!id)
123
+ throw new Error("template_id is required.");
124
+ return pmGet(apiKey, `/templates/${id}`);
125
+ }
126
+ export async function postmark_search_messages(args) {
127
+ const apiKey = requireKey(args);
128
+ const query = {};
129
+ if (args.count)
130
+ query.count = String(args.count);
131
+ if (args.offset)
132
+ query.offset = String(args.offset);
133
+ if (args.recipient)
134
+ query.recipient = String(args.recipient);
135
+ if (args.from_email)
136
+ query.fromEmail = String(args.from_email);
137
+ if (args.tag)
138
+ query.tag = String(args.tag);
139
+ if (args.status)
140
+ query.status = String(args.status);
141
+ const data = await pmGet(apiKey, "/messages/outbound", query);
142
+ return {
143
+ total: data.TotalCount,
144
+ count: data.Messages?.length ?? 0,
145
+ messages: data.Messages ?? [],
146
+ };
147
+ }
148
+ //# sourceMappingURL=postmark-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postmark-tool.js","sourceRoot":"","sources":["../src/postmark-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function qcRunChecklist(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function qcCheckApi(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function qcCopyAudit(args: Record<string, unknown>): Promise<unknown>;
4
+ //# sourceMappingURL=qc-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qc-tool.d.ts","sourceRoot":"","sources":["../src/qc-tool.ts"],"names":[],"mappings":"AA8RA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA2CpF;AAID,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA8ChF;AAID,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwEjF"}