@unclick/mcp-server 0.2.4 → 0.2.5

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 (153) hide show
  1. package/dist/algolia-tool.d.ts +5 -0
  2. package/dist/algolia-tool.d.ts.map +1 -0
  3. package/dist/algolia-tool.js +121 -0
  4. package/dist/algolia-tool.js.map +1 -0
  5. package/dist/assemblyai-tool.d.ts +7 -0
  6. package/dist/assemblyai-tool.d.ts.map +1 -0
  7. package/dist/assemblyai-tool.js +127 -0
  8. package/dist/assemblyai-tool.js.map +1 -0
  9. package/dist/circleci-tool.d.ts +7 -0
  10. package/dist/circleci-tool.d.ts.map +1 -0
  11. package/dist/circleci-tool.js +133 -0
  12. package/dist/circleci-tool.js.map +1 -0
  13. package/dist/cohere-tool.d.ts +7 -0
  14. package/dist/cohere-tool.d.ts.map +1 -0
  15. package/dist/cohere-tool.js +225 -0
  16. package/dist/cohere-tool.js.map +1 -0
  17. package/dist/convertkit-tool.d.ts +7 -0
  18. package/dist/convertkit-tool.d.ts.map +1 -0
  19. package/dist/convertkit-tool.js +213 -0
  20. package/dist/convertkit-tool.js.map +1 -0
  21. package/dist/datadog-tool.d.ts +7 -0
  22. package/dist/datadog-tool.d.ts.map +1 -0
  23. package/dist/datadog-tool.js +121 -0
  24. package/dist/datadog-tool.js.map +1 -0
  25. package/dist/deepl-tool.d.ts +5 -0
  26. package/dist/deepl-tool.d.ts.map +1 -0
  27. package/dist/deepl-tool.js +137 -0
  28. package/dist/deepl-tool.js.map +1 -0
  29. package/dist/flyio-tool.d.ts +6 -0
  30. package/dist/flyio-tool.d.ts.map +1 -0
  31. package/dist/flyio-tool.js +158 -0
  32. package/dist/flyio-tool.js.map +1 -0
  33. package/dist/groq-tool.d.ts +3 -0
  34. package/dist/groq-tool.d.ts.map +1 -0
  35. package/dist/groq-tool.js +109 -0
  36. package/dist/groq-tool.js.map +1 -0
  37. package/dist/gumroad-tool.d.ts +6 -0
  38. package/dist/gumroad-tool.d.ts.map +1 -0
  39. package/dist/gumroad-tool.js +90 -0
  40. package/dist/gumroad-tool.js.map +1 -0
  41. package/dist/heygen-tool.d.ts +5 -0
  42. package/dist/heygen-tool.d.ts.map +1 -0
  43. package/dist/heygen-tool.js +134 -0
  44. package/dist/heygen-tool.js.map +1 -0
  45. package/dist/higgsfield-tool.d.ts +5 -0
  46. package/dist/higgsfield-tool.d.ts.map +1 -0
  47. package/dist/higgsfield-tool.js +120 -0
  48. package/dist/higgsfield-tool.js.map +1 -0
  49. package/dist/keychain-crypto.d.ts +24 -0
  50. package/dist/keychain-crypto.d.ts.map +1 -0
  51. package/dist/keychain-crypto.js +60 -0
  52. package/dist/keychain-crypto.js.map +1 -0
  53. package/dist/keychain-secure-input.d.ts +17 -0
  54. package/dist/keychain-secure-input.d.ts.map +1 -0
  55. package/dist/keychain-secure-input.js +229 -0
  56. package/dist/keychain-secure-input.js.map +1 -0
  57. package/dist/keychain-tool.d.ts +3 -0
  58. package/dist/keychain-tool.d.ts.map +1 -0
  59. package/dist/keychain-tool.js +516 -0
  60. package/dist/keychain-tool.js.map +1 -0
  61. package/dist/kling-tool.d.ts +3 -0
  62. package/dist/kling-tool.d.ts.map +1 -0
  63. package/dist/kling-tool.js +102 -0
  64. package/dist/kling-tool.js.map +1 -0
  65. package/dist/lemonsqueezy-tool.d.ts +7 -0
  66. package/dist/lemonsqueezy-tool.d.ts.map +1 -0
  67. package/dist/lemonsqueezy-tool.js +220 -0
  68. package/dist/lemonsqueezy-tool.js.map +1 -0
  69. package/dist/local-catalog-handlers.d.ts +3 -0
  70. package/dist/local-catalog-handlers.d.ts.map +1 -0
  71. package/dist/local-catalog-handlers.js +1254 -0
  72. package/dist/local-catalog-handlers.js.map +1 -0
  73. package/dist/mailchimp-tool.d.ts +8 -0
  74. package/dist/mailchimp-tool.d.ts.map +1 -0
  75. package/dist/mailchimp-tool.js +138 -0
  76. package/dist/mailchimp-tool.js.map +1 -0
  77. package/dist/mapbox-tool.d.ts +6 -0
  78. package/dist/mapbox-tool.d.ts.map +1 -0
  79. package/dist/mapbox-tool.js +106 -0
  80. package/dist/mapbox-tool.js.map +1 -0
  81. package/dist/mistral-tool.d.ts +4 -0
  82. package/dist/mistral-tool.d.ts.map +1 -0
  83. package/dist/mistral-tool.js +145 -0
  84. package/dist/mistral-tool.js.map +1 -0
  85. package/dist/mixpanel-tool.d.ts +6 -0
  86. package/dist/mixpanel-tool.d.ts.map +1 -0
  87. package/dist/mixpanel-tool.js +162 -0
  88. package/dist/mixpanel-tool.js.map +1 -0
  89. package/dist/neon-tool.d.ts +7 -0
  90. package/dist/neon-tool.d.ts.map +1 -0
  91. package/dist/neon-tool.js +156 -0
  92. package/dist/neon-tool.js.map +1 -0
  93. package/dist/pagerduty-tool.d.ts +8 -0
  94. package/dist/pagerduty-tool.d.ts.map +1 -0
  95. package/dist/pagerduty-tool.js +185 -0
  96. package/dist/pagerduty-tool.js.map +1 -0
  97. package/dist/perplexity-tool.d.ts +2 -0
  98. package/dist/perplexity-tool.d.ts.map +1 -0
  99. package/dist/perplexity-tool.js +93 -0
  100. package/dist/perplexity-tool.js.map +1 -0
  101. package/dist/pika-tool.d.ts +4 -0
  102. package/dist/pika-tool.d.ts.map +1 -0
  103. package/dist/pika-tool.js +102 -0
  104. package/dist/pika-tool.js.map +1 -0
  105. package/dist/pinecone-tool.d.ts +6 -0
  106. package/dist/pinecone-tool.d.ts.map +1 -0
  107. package/dist/pinecone-tool.js +148 -0
  108. package/dist/pinecone-tool.js.map +1 -0
  109. package/dist/postmark-tool.d.ts +7 -0
  110. package/dist/postmark-tool.d.ts.map +1 -0
  111. package/dist/postmark-tool.js +148 -0
  112. package/dist/postmark-tool.js.map +1 -0
  113. package/dist/qc-tool.d.ts +4 -0
  114. package/dist/qc-tool.d.ts.map +1 -0
  115. package/dist/qc-tool.js +415 -0
  116. package/dist/qc-tool.js.map +1 -0
  117. package/dist/render-tool.d.ts +7 -0
  118. package/dist/render-tool.d.ts.map +1 -0
  119. package/dist/render-tool.js +158 -0
  120. package/dist/render-tool.js.map +1 -0
  121. package/dist/runway-tool.d.ts +4 -0
  122. package/dist/runway-tool.d.ts.map +1 -0
  123. package/dist/runway-tool.js +110 -0
  124. package/dist/runway-tool.js.map +1 -0
  125. package/dist/segment-tool.d.ts +6 -0
  126. package/dist/segment-tool.d.ts.map +1 -0
  127. package/dist/segment-tool.js +129 -0
  128. package/dist/segment-tool.js.map +1 -0
  129. package/dist/sendgrid-tool.d.ts +7 -0
  130. package/dist/sendgrid-tool.d.ts.map +1 -0
  131. package/dist/sendgrid-tool.js +124 -0
  132. package/dist/sendgrid-tool.js.map +1 -0
  133. package/dist/server.d.ts.map +1 -1
  134. package/dist/server.js +10 -0
  135. package/dist/server.js.map +1 -1
  136. package/dist/togetherai-tool.d.ts +5 -0
  137. package/dist/togetherai-tool.d.ts.map +1 -0
  138. package/dist/togetherai-tool.js +129 -0
  139. package/dist/togetherai-tool.js.map +1 -0
  140. package/dist/tool-wiring.d.ts +4608 -692
  141. package/dist/tool-wiring.d.ts.map +1 -1
  142. package/dist/tool-wiring.js +2946 -463
  143. package/dist/tool-wiring.js.map +1 -1
  144. package/dist/turso-tool.d.ts +6 -0
  145. package/dist/turso-tool.d.ts.map +1 -0
  146. package/dist/turso-tool.js +158 -0
  147. package/dist/turso-tool.js.map +1 -0
  148. package/dist/upstash-tool.d.ts +8 -0
  149. package/dist/upstash-tool.d.ts.map +1 -0
  150. package/dist/upstash-tool.js +191 -0
  151. package/dist/upstash-tool.js.map +1 -0
  152. package/package.json +1 -1
  153. package/server.json +2 -2
@@ -0,0 +1,225 @@
1
+ // Cohere AI API integration for the UnClick MCP server.
2
+ // Uses the Cohere REST API via fetch - no external dependencies.
3
+ // Users must supply an API key from dashboard.cohere.com.
4
+ const COHERE_API_BASE = "https://api.cohere.com/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 dashboard.cohere.com.");
10
+ return key;
11
+ }
12
+ // --- API helpers -------------------------------------------------------------
13
+ async function coherePost(apiKey, path, body) {
14
+ const res = await fetch(`${COHERE_API_BASE}${path}`, {
15
+ method: "POST",
16
+ headers: {
17
+ Authorization: `Bearer ${apiKey}`,
18
+ "Content-Type": "application/json",
19
+ "X-Client-Name": "unclick-mcp",
20
+ },
21
+ body: JSON.stringify(body),
22
+ });
23
+ const data = await res.json();
24
+ if (!res.ok) {
25
+ const msg = data.message ?? `HTTP ${res.status}`;
26
+ throw new Error(`Cohere error: ${msg}`);
27
+ }
28
+ return data;
29
+ }
30
+ async function cohereGet(apiKey, path) {
31
+ const res = await fetch(`${COHERE_API_BASE}${path}`, {
32
+ headers: {
33
+ Authorization: `Bearer ${apiKey}`,
34
+ "X-Client-Name": "unclick-mcp",
35
+ },
36
+ });
37
+ const data = await res.json();
38
+ if (!res.ok) {
39
+ const msg = data.message ?? `HTTP ${res.status}`;
40
+ throw new Error(`Cohere error: ${msg}`);
41
+ }
42
+ return data;
43
+ }
44
+ function parseJsonOrArray(value, fieldName) {
45
+ if (Array.isArray(value))
46
+ return value;
47
+ if (typeof value === "string") {
48
+ try {
49
+ return JSON.parse(value);
50
+ }
51
+ catch {
52
+ throw new Error(`${fieldName} must be a JSON array or an array.`);
53
+ }
54
+ }
55
+ throw new Error(`${fieldName} is required as an array or JSON string array.`);
56
+ }
57
+ // --- Operations --------------------------------------------------------------
58
+ export async function cohereChat(args) {
59
+ try {
60
+ const apiKey = requireKey(args);
61
+ const message = String(args.message ?? "").trim();
62
+ if (!message)
63
+ throw new Error("message is required.");
64
+ const model = String(args.model ?? "command-r-plus");
65
+ const body = { message, model };
66
+ if (args.preamble)
67
+ body.preamble = String(args.preamble);
68
+ if (args.max_tokens)
69
+ body.max_tokens = Number(args.max_tokens);
70
+ if (args.temperature !== undefined)
71
+ body.temperature = Number(args.temperature);
72
+ if (args.chat_history) {
73
+ let history;
74
+ if (Array.isArray(args.chat_history)) {
75
+ history = args.chat_history;
76
+ }
77
+ else if (typeof args.chat_history === "string") {
78
+ try {
79
+ history = JSON.parse(args.chat_history);
80
+ }
81
+ catch {
82
+ throw new Error("chat_history must be a JSON array of {role, message} objects.");
83
+ }
84
+ }
85
+ else {
86
+ throw new Error("chat_history must be an array or JSON string.");
87
+ }
88
+ body.chat_history = history;
89
+ }
90
+ const result = await coherePost(apiKey, "/chat", body);
91
+ return {
92
+ text: result.text,
93
+ generation_id: result.generation_id,
94
+ finish_reason: result.finish_reason,
95
+ usage: result.meta?.billed_units ?? result.meta?.tokens ?? null,
96
+ };
97
+ }
98
+ catch (err) {
99
+ return { error: err instanceof Error ? err.message : String(err) };
100
+ }
101
+ }
102
+ export async function cohereGenerate(args) {
103
+ try {
104
+ const apiKey = requireKey(args);
105
+ const prompt = String(args.prompt ?? "").trim();
106
+ if (!prompt)
107
+ throw new Error("prompt is required.");
108
+ const model = String(args.model ?? "command");
109
+ const body = { prompt, model, max_tokens: Number(args.max_tokens ?? 256) };
110
+ if (args.temperature !== undefined)
111
+ body.temperature = Number(args.temperature);
112
+ if (args.k !== undefined)
113
+ body.k = Number(args.k);
114
+ if (args.p !== undefined)
115
+ body.p = Number(args.p);
116
+ if (args.stop_sequences) {
117
+ body.stop_sequences = Array.isArray(args.stop_sequences)
118
+ ? args.stop_sequences
119
+ : JSON.parse(String(args.stop_sequences));
120
+ }
121
+ const result = await coherePost(apiKey, "/generate", body);
122
+ return {
123
+ id: result.id,
124
+ generations: result.generations.map((g) => ({
125
+ id: g.id,
126
+ text: g.text,
127
+ finish_reason: g.finish_reason,
128
+ })),
129
+ };
130
+ }
131
+ catch (err) {
132
+ return { error: err instanceof Error ? err.message : String(err) };
133
+ }
134
+ }
135
+ export async function cohereEmbed(args) {
136
+ try {
137
+ const apiKey = requireKey(args);
138
+ const texts = parseJsonOrArray(args.texts, "texts");
139
+ const model = String(args.model ?? "embed-english-v3.0");
140
+ const input_type = String(args.input_type ?? "search_document");
141
+ const truncate = String(args.truncate ?? "END");
142
+ const body = { texts, model, input_type, truncate };
143
+ const result = await coherePost(apiKey, "/embed", body);
144
+ return {
145
+ model,
146
+ count: result.embeddings.length,
147
+ embeddings: result.embeddings.map((emb, i) => ({
148
+ index: i,
149
+ dimensions: emb.length,
150
+ embedding: emb,
151
+ })),
152
+ };
153
+ }
154
+ catch (err) {
155
+ return { error: err instanceof Error ? err.message : String(err) };
156
+ }
157
+ }
158
+ export async function cohereRerank(args) {
159
+ try {
160
+ const apiKey = requireKey(args);
161
+ const query = String(args.query ?? "").trim();
162
+ if (!query)
163
+ throw new Error("query is required.");
164
+ const documents = parseJsonOrArray(args.documents, "documents");
165
+ const model = String(args.model ?? "rerank-english-v3.0");
166
+ const body = { query, documents, model };
167
+ if (args.top_n !== undefined)
168
+ body.top_n = Number(args.top_n);
169
+ const result = await coherePost(apiKey, "/rerank", body);
170
+ return {
171
+ id: result.id,
172
+ count: result.results.length,
173
+ results: result.results.map((r) => ({
174
+ index: r.index,
175
+ relevance_score: r.relevance_score,
176
+ document: r.document ?? null,
177
+ })),
178
+ };
179
+ }
180
+ catch (err) {
181
+ return { error: err instanceof Error ? err.message : String(err) };
182
+ }
183
+ }
184
+ export async function cohereClassify(args) {
185
+ try {
186
+ const apiKey = requireKey(args);
187
+ const inputs = parseJsonOrArray(args.inputs, "inputs");
188
+ const examples = parseJsonOrArray(args.examples, "examples");
189
+ const model = String(args.model ?? "embed-english-v2.0");
190
+ const body = { inputs, examples, model };
191
+ const result = await coherePost(apiKey, "/classify", body);
192
+ return {
193
+ id: result.id,
194
+ count: result.classifications.length,
195
+ classifications: result.classifications.map((c) => ({
196
+ input: c.input,
197
+ prediction: c.prediction,
198
+ confidence: c.confidence,
199
+ labels: c.labels,
200
+ })),
201
+ };
202
+ }
203
+ catch (err) {
204
+ return { error: err instanceof Error ? err.message : String(err) };
205
+ }
206
+ }
207
+ export async function cohereListModels(args) {
208
+ try {
209
+ const apiKey = requireKey(args);
210
+ const data = await cohereGet(apiKey, "/models");
211
+ const models = data.models ?? [];
212
+ return {
213
+ count: models.length,
214
+ models: models.map((m) => ({
215
+ name: m.name,
216
+ endpoints: m.endpoints ?? [],
217
+ context_length: m.context_length ?? null,
218
+ })),
219
+ };
220
+ }
221
+ catch (err) {
222
+ return { error: err instanceof Error ? err.message : String(err) };
223
+ }
224
+ }
225
+ //# sourceMappingURL=cohere-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cohere-tool.js","sourceRoot":"","sources":["../src/cohere-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function ckListSubscribers(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function ckAddSubscriber(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function ckListForms(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function ckListSequences(args: Record<string, unknown>): Promise<unknown>;
5
+ export declare function ckListTags(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function ckTagSubscriber(args: Record<string, unknown>): Promise<unknown>;
7
+ //# sourceMappingURL=convertkit-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertkit-tool.d.ts","sourceRoot":"","sources":["../src/convertkit-tool.ts"],"names":[],"mappings":"AAuHA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA+BvF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BrF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBjF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBrF;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBhF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BrF"}
@@ -0,0 +1,213 @@
1
+ // ConvertKit API integration for the UnClick MCP server.
2
+ // Uses the ConvertKit v3 REST API via fetch - no external dependencies.
3
+ // Users must supply an api_key (read ops) and/or api_secret (subscriber management)
4
+ // from app.convertkit.com/account_settings/advanced_settings.
5
+ const CK_API_BASE = "https://api.convertkit.com/v3";
6
+ // --- Auth validation ---------------------------------------------------------
7
+ function requireApiKey(args) {
8
+ const key = String(args.api_key ?? "").trim();
9
+ if (!key)
10
+ throw new Error("api_key is required. Find it at app.convertkit.com/account_settings/advanced_settings.");
11
+ return key;
12
+ }
13
+ function requireApiSecret(args) {
14
+ const secret = String(args.api_secret ?? "").trim();
15
+ if (!secret)
16
+ throw new Error("api_secret is required for subscriber management. Find it at app.convertkit.com/account_settings/advanced_settings.");
17
+ return secret;
18
+ }
19
+ // --- API helpers -------------------------------------------------------------
20
+ async function ckGet(path, queryParams) {
21
+ const params = Object.entries(queryParams)
22
+ .filter(([, v]) => v !== undefined && v !== "")
23
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
24
+ .join("&");
25
+ const url = `${CK_API_BASE}${path}${params ? "?" + params : ""}`;
26
+ const res = await fetch(url, {
27
+ headers: { Accept: "application/json" },
28
+ });
29
+ const data = await res.json();
30
+ if (!res.ok) {
31
+ const msg = data.message ?? data.error ?? `HTTP ${res.status}`;
32
+ throw new Error(`ConvertKit error: ${msg}`);
33
+ }
34
+ return data;
35
+ }
36
+ async function ckPost(path, body) {
37
+ const res = await fetch(`${CK_API_BASE}${path}`, {
38
+ method: "POST",
39
+ headers: {
40
+ "Content-Type": "application/json",
41
+ Accept: "application/json",
42
+ },
43
+ body: JSON.stringify(body),
44
+ });
45
+ const data = await res.json();
46
+ if (!res.ok) {
47
+ const msg = data.message ?? data.error ?? `HTTP ${res.status}`;
48
+ throw new Error(`ConvertKit error: ${msg}`);
49
+ }
50
+ return data;
51
+ }
52
+ // --- Operations --------------------------------------------------------------
53
+ export async function ckListSubscribers(args) {
54
+ try {
55
+ const apiSecret = requireApiSecret(args);
56
+ const params = { api_secret: apiSecret };
57
+ if (args.page)
58
+ params.page = String(args.page);
59
+ if (args.from)
60
+ params.from = String(args.from);
61
+ if (args.to)
62
+ params.to = String(args.to);
63
+ if (args.updated_from)
64
+ params.updated_from = String(args.updated_from);
65
+ if (args.updated_to)
66
+ params.updated_to = String(args.updated_to);
67
+ if (args.sort_order)
68
+ params.sort_order = String(args.sort_order);
69
+ if (args.sort_field)
70
+ params.sort_field = String(args.sort_field);
71
+ const result = await ckGet("/subscribers", params);
72
+ return {
73
+ total_subscribers: result.total_subscribers,
74
+ page: result.page,
75
+ total_pages: result.total_pages,
76
+ count: result.subscribers.length,
77
+ subscribers: result.subscribers.map((s) => ({
78
+ id: s.id,
79
+ first_name: s.first_name,
80
+ email_address: s.email_address,
81
+ state: s.state,
82
+ created_at: s.created_at,
83
+ fields: s.fields,
84
+ })),
85
+ };
86
+ }
87
+ catch (err) {
88
+ return { error: err instanceof Error ? err.message : String(err) };
89
+ }
90
+ }
91
+ export async function ckAddSubscriber(args) {
92
+ try {
93
+ const apiKey = requireApiKey(args);
94
+ const formId = String(args.form_id ?? "").trim();
95
+ if (!formId)
96
+ throw new Error("form_id is required.");
97
+ const email = String(args.email ?? "").trim();
98
+ if (!email)
99
+ throw new Error("email is required.");
100
+ const body = { api_key: apiKey, email };
101
+ if (args.first_name)
102
+ body.first_name = String(args.first_name);
103
+ if (args.fields && typeof args.fields === "object")
104
+ body.fields = args.fields;
105
+ const result = await ckPost(`/forms/${formId}/subscribe`, body);
106
+ const sub = result.subscription;
107
+ return {
108
+ subscription_id: sub.id,
109
+ state: sub.state,
110
+ created_at: sub.created_at,
111
+ subscriber: {
112
+ id: sub.subscriber.id,
113
+ first_name: sub.subscriber.first_name,
114
+ email_address: sub.subscriber.email_address,
115
+ state: sub.subscriber.state,
116
+ },
117
+ };
118
+ }
119
+ catch (err) {
120
+ return { error: err instanceof Error ? err.message : String(err) };
121
+ }
122
+ }
123
+ export async function ckListForms(args) {
124
+ try {
125
+ const apiKey = requireApiKey(args);
126
+ const result = await ckGet("/forms", { api_key: apiKey });
127
+ const forms = result.forms ?? [];
128
+ return {
129
+ count: forms.length,
130
+ forms: forms.map((f) => ({
131
+ id: f.id,
132
+ name: f.name,
133
+ type: f.type,
134
+ format: f.format,
135
+ archived: f.archived,
136
+ embed_url: f.embed_url,
137
+ created_at: f.created_at,
138
+ })),
139
+ };
140
+ }
141
+ catch (err) {
142
+ return { error: err instanceof Error ? err.message : String(err) };
143
+ }
144
+ }
145
+ export async function ckListSequences(args) {
146
+ try {
147
+ const apiKey = requireApiKey(args);
148
+ const result = await ckGet("/sequences", { api_key: apiKey });
149
+ const sequences = result.courses ?? [];
150
+ return {
151
+ count: sequences.length,
152
+ sequences: sequences.map((s) => ({
153
+ id: s.id,
154
+ name: s.name,
155
+ hold: s.hold,
156
+ repeat: s.repeat,
157
+ created_at: s.created_at,
158
+ })),
159
+ };
160
+ }
161
+ catch (err) {
162
+ return { error: err instanceof Error ? err.message : String(err) };
163
+ }
164
+ }
165
+ export async function ckListTags(args) {
166
+ try {
167
+ const apiKey = requireApiKey(args);
168
+ const result = await ckGet("/tags", { api_key: apiKey });
169
+ const tags = result.tags ?? [];
170
+ return {
171
+ count: tags.length,
172
+ tags: tags.map((t) => ({
173
+ id: t.id,
174
+ name: t.name,
175
+ created_at: t.created_at,
176
+ })),
177
+ };
178
+ }
179
+ catch (err) {
180
+ return { error: err instanceof Error ? err.message : String(err) };
181
+ }
182
+ }
183
+ export async function ckTagSubscriber(args) {
184
+ try {
185
+ const apiKey = requireApiKey(args);
186
+ const tagId = String(args.tag_id ?? "").trim();
187
+ if (!tagId)
188
+ throw new Error("tag_id is required.");
189
+ const email = String(args.email ?? "").trim();
190
+ if (!email)
191
+ throw new Error("email is required.");
192
+ const body = { api_key: apiKey, email };
193
+ if (args.first_name)
194
+ body.first_name = String(args.first_name);
195
+ const result = await ckPost(`/tags/${tagId}/subscribe`, body);
196
+ const sub = result.subscription;
197
+ return {
198
+ subscription_id: sub.id,
199
+ state: sub.state,
200
+ created_at: sub.created_at,
201
+ subscriber: {
202
+ id: sub.subscriber.id,
203
+ first_name: sub.subscriber.first_name,
204
+ email_address: sub.subscriber.email_address,
205
+ state: sub.subscriber.state,
206
+ },
207
+ };
208
+ }
209
+ catch (err) {
210
+ return { error: err instanceof Error ? err.message : String(err) };
211
+ }
212
+ }
213
+ //# sourceMappingURL=convertkit-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertkit-tool.js","sourceRoot":"","sources":["../src/convertkit-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function datadogListMonitors(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function datadogGetMonitor(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function datadogCreateMonitor(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function datadogListDashboards(args: Record<string, unknown>): Promise<unknown>;
5
+ export declare function datadogQueryMetrics(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function datadogListEvents(args: Record<string, unknown>): Promise<unknown>;
7
+ //# sourceMappingURL=datadog-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datadog-tool.d.ts","sourceRoot":"","sources":["../src/datadog-tool.ts"],"names":[],"mappings":"AAkDA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CASzF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAe1F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3F;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAUzF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAavF"}
@@ -0,0 +1,121 @@
1
+ // Datadog API integration for the UnClick MCP server.
2
+ // Uses the Datadog REST API via fetch - no external dependencies.
3
+ // Users must supply DD-API-KEY and DD-APPLICATION-KEY from app.datadoghq.com.
4
+ const DD_BASE = "https://api.datadoghq.com/api/v1";
5
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
6
+ function requireKeys(args) {
7
+ const apiKey = String(args.api_key ?? "").trim();
8
+ const appKey = String(args.app_key ?? "").trim();
9
+ if (!apiKey)
10
+ throw new Error("api_key is required (DD-API-KEY from app.datadoghq.com/organization-settings/api-keys).");
11
+ if (!appKey)
12
+ throw new Error("app_key is required (DD-APPLICATION-KEY from app.datadoghq.com/organization-settings/application-keys).");
13
+ return { apiKey, appKey };
14
+ }
15
+ async function ddGet(apiKey, appKey, path, params) {
16
+ const url = new URL(`${DD_BASE}${path}`);
17
+ if (params)
18
+ Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
19
+ const res = await fetch(url.toString(), {
20
+ headers: { "DD-API-KEY": apiKey, "DD-APPLICATION-KEY": appKey },
21
+ });
22
+ const data = await res.json();
23
+ if (!res.ok) {
24
+ const msg = data.errors?.join(", ") ?? data.error ?? `HTTP ${res.status}`;
25
+ throw new Error(`Datadog error (${res.status}): ${msg}`);
26
+ }
27
+ return data;
28
+ }
29
+ async function ddPost(apiKey, appKey, path, body) {
30
+ const res = await fetch(`${DD_BASE}${path}`, {
31
+ method: "POST",
32
+ headers: {
33
+ "DD-API-KEY": apiKey,
34
+ "DD-APPLICATION-KEY": appKey,
35
+ "Content-Type": "application/json",
36
+ },
37
+ body: JSON.stringify(body),
38
+ });
39
+ const data = await res.json();
40
+ if (!res.ok) {
41
+ const msg = data.errors?.join(", ") ?? data.error ?? `HTTP ${res.status}`;
42
+ throw new Error(`Datadog error (${res.status}): ${msg}`);
43
+ }
44
+ return data;
45
+ }
46
+ // ─── Operations ───────────────────────────────────────────────────────────────
47
+ export async function datadogListMonitors(args) {
48
+ const { apiKey, appKey } = requireKeys(args);
49
+ const params = {};
50
+ if (args.name)
51
+ params.name = String(args.name);
52
+ if (args.tags)
53
+ params.monitor_tags = String(args.tags);
54
+ if (args.page)
55
+ params.page = String(args.page);
56
+ if (args.page_size)
57
+ params.page_size = String(Math.min(1000, Number(args.page_size)));
58
+ const data = await ddGet(apiKey, appKey, "/monitor", params);
59
+ return { count: Array.isArray(data) ? data.length : 0, monitors: data };
60
+ }
61
+ export async function datadogGetMonitor(args) {
62
+ const { apiKey, appKey } = requireKeys(args);
63
+ const id = String(args.monitor_id ?? "").trim();
64
+ if (!id)
65
+ throw new Error("monitor_id is required.");
66
+ return ddGet(apiKey, appKey, `/monitor/${encodeURIComponent(id)}`);
67
+ }
68
+ export async function datadogCreateMonitor(args) {
69
+ const { apiKey, appKey } = requireKeys(args);
70
+ const type = String(args.type ?? "metric alert");
71
+ const query = String(args.query ?? "").trim();
72
+ const name = String(args.name ?? "").trim();
73
+ if (!query)
74
+ throw new Error("query is required (monitor query expression).");
75
+ if (!name)
76
+ throw new Error("name is required.");
77
+ const body = { type, query, name };
78
+ if (args.message)
79
+ body.message = String(args.message);
80
+ if (args.tags)
81
+ body.tags = Array.isArray(args.tags) ? args.tags : [String(args.tags)];
82
+ if (args.priority)
83
+ body.priority = Number(args.priority);
84
+ if (args.options)
85
+ body.options = args.options;
86
+ return ddPost(apiKey, appKey, "/monitor", body);
87
+ }
88
+ export async function datadogListDashboards(args) {
89
+ const { apiKey, appKey } = requireKeys(args);
90
+ const params = {};
91
+ if (args.filter_shared !== undefined)
92
+ params.filter_shared = String(args.filter_shared);
93
+ const data = await ddGet(apiKey, appKey, "/dashboard", params);
94
+ return { count: data.dashboards?.length ?? 0, dashboards: data.dashboards ?? [] };
95
+ }
96
+ export async function datadogQueryMetrics(args) {
97
+ const { apiKey, appKey } = requireKeys(args);
98
+ const query = String(args.query ?? "").trim();
99
+ if (!query)
100
+ throw new Error("query is required (Datadog metric query e.g. avg:system.cpu.user{*}).");
101
+ const now = Math.floor(Date.now() / 1000);
102
+ const from = Number(args.from ?? (now - 3600));
103
+ const to = Number(args.to ?? now);
104
+ return ddGet(apiKey, appKey, "/query", { query, from: String(from), to: String(to) });
105
+ }
106
+ export async function datadogListEvents(args) {
107
+ const { apiKey, appKey } = requireKeys(args);
108
+ const now = Math.floor(Date.now() / 1000);
109
+ const start = Number(args.start ?? (now - 3600));
110
+ const end = Number(args.end ?? now);
111
+ const params = { start: String(start), end: String(end) };
112
+ if (args.priority)
113
+ params.priority = String(args.priority);
114
+ if (args.sources)
115
+ params.sources = String(args.sources);
116
+ if (args.tags)
117
+ params.tags = String(args.tags);
118
+ const data = await ddGet(apiKey, appKey, "/events", params);
119
+ return { count: data.events?.length ?? 0, events: data.events ?? [] };
120
+ }
121
+ //# sourceMappingURL=datadog-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datadog-tool.js","sourceRoot":"","sources":["../src/datadog-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function deeplTranslateText(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function deeplGetUsage(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function deeplListLanguages(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function deeplTranslateDocument(args: Record<string, unknown>): Promise<unknown>;
5
+ //# sourceMappingURL=deepl-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepl-tool.d.ts","sourceRoot":"","sources":["../src/deepl-tool.ts"],"names":[],"mappings":"AAkDA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCxF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CASxF;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiC5F"}