@unclick/mcp-server 0.2.3 → 0.2.4
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/README.md +139 -153
- package/dist/airtable-tool.d.ts +2 -0
- package/dist/airtable-tool.d.ts.map +1 -0
- package/dist/airtable-tool.js +154 -0
- package/dist/airtable-tool.js.map +1 -0
- package/dist/anthropic-tool.d.ts +3 -0
- package/dist/anthropic-tool.d.ts.map +1 -0
- package/dist/anthropic-tool.js +123 -0
- package/dist/anthropic-tool.js.map +1 -0
- package/dist/asana-tool.d.ts +8 -0
- package/dist/asana-tool.d.ts.map +1 -0
- package/dist/asana-tool.js +218 -0
- package/dist/asana-tool.js.map +1 -0
- package/dist/calendly-tool.d.ts +6 -0
- package/dist/calendly-tool.d.ts.map +1 -0
- package/dist/calendly-tool.js +182 -0
- package/dist/calendly-tool.js.map +1 -0
- package/dist/clickup-tool.d.ts +2 -0
- package/dist/clickup-tool.d.ts.map +1 -0
- package/dist/clickup-tool.js +153 -0
- package/dist/clickup-tool.js.map +1 -0
- package/dist/connectors/figma.d.ts +3 -0
- package/dist/connectors/figma.d.ts.map +1 -0
- package/dist/connectors/figma.js +18 -0
- package/dist/connectors/figma.js.map +1 -0
- package/dist/connectors/index.d.ts +3 -1
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +5 -1
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/line.d.ts +3 -0
- package/dist/connectors/line.d.ts.map +1 -0
- package/dist/connectors/line.js +18 -0
- package/dist/connectors/line.js.map +1 -0
- package/dist/ebay-tool.d.ts +5 -0
- package/dist/ebay-tool.d.ts.map +1 -0
- package/dist/ebay-tool.js +179 -0
- package/dist/ebay-tool.js.map +1 -0
- package/dist/elevenlabs-tool.d.ts +6 -0
- package/dist/elevenlabs-tool.d.ts.map +1 -0
- package/dist/elevenlabs-tool.js +166 -0
- package/dist/elevenlabs-tool.js.map +1 -0
- package/dist/etsy-tool.d.ts +6 -0
- package/dist/etsy-tool.d.ts.map +1 -0
- package/dist/etsy-tool.js +125 -0
- package/dist/etsy-tool.js.map +1 -0
- package/dist/exchangerate-tool.d.ts +5 -0
- package/dist/exchangerate-tool.d.ts.map +1 -0
- package/dist/exchangerate-tool.js +139 -0
- package/dist/exchangerate-tool.js.map +1 -0
- package/dist/figma-tool.d.ts +8 -0
- package/dist/figma-tool.d.ts.map +1 -0
- package/dist/figma-tool.js +231 -0
- package/dist/figma-tool.js.map +1 -0
- package/dist/gdelt-tool.d.ts +5 -0
- package/dist/gdelt-tool.d.ts.map +1 -0
- package/dist/gdelt-tool.js +177 -0
- package/dist/gdelt-tool.js.map +1 -0
- package/dist/github-tool.d.ts +2 -0
- package/dist/github-tool.d.ts.map +1 -0
- package/dist/github-tool.js +165 -0
- package/dist/github-tool.js.map +1 -0
- package/dist/gitlab-tool.d.ts +2 -0
- package/dist/gitlab-tool.d.ts.map +1 -0
- package/dist/gitlab-tool.js +127 -0
- package/dist/gitlab-tool.js.map +1 -0
- package/dist/igdb-tool.d.ts +6 -0
- package/dist/igdb-tool.d.ts.map +1 -0
- package/dist/igdb-tool.js +140 -0
- package/dist/igdb-tool.js.map +1 -0
- package/dist/line-tool.d.ts +7 -0
- package/dist/line-tool.d.ts.map +1 -0
- package/dist/line-tool.js +188 -0
- package/dist/line-tool.js.map +1 -0
- package/dist/linear-tool.d.ts +2 -0
- package/dist/linear-tool.d.ts.map +1 -0
- package/dist/linear-tool.js +186 -0
- package/dist/linear-tool.js.map +1 -0
- package/dist/monday-tool.d.ts +7 -0
- package/dist/monday-tool.d.ts.map +1 -0
- package/dist/monday-tool.js +206 -0
- package/dist/monday-tool.js.map +1 -0
- package/dist/openai-tool.d.ts +6 -0
- package/dist/openai-tool.d.ts.map +1 -0
- package/dist/openai-tool.js +227 -0
- package/dist/openai-tool.js.map +1 -0
- package/dist/paypal-tool.d.ts +3 -0
- package/dist/paypal-tool.d.ts.map +1 -0
- package/dist/paypal-tool.js +157 -0
- package/dist/paypal-tool.js.map +1 -0
- package/dist/pinterest-tool.d.ts +7 -0
- package/dist/pinterest-tool.d.ts.map +1 -0
- package/dist/pinterest-tool.js +219 -0
- package/dist/pinterest-tool.js.map +1 -0
- package/dist/plaid-tool.d.ts +6 -0
- package/dist/plaid-tool.d.ts.map +1 -0
- package/dist/plaid-tool.js +149 -0
- package/dist/plaid-tool.js.map +1 -0
- package/dist/postman-tool.d.ts +2 -0
- package/dist/postman-tool.d.ts.map +1 -0
- package/dist/postman-tool.js +92 -0
- package/dist/postman-tool.js.map +1 -0
- package/dist/pushover-tool.d.ts +6 -0
- package/dist/pushover-tool.d.ts.map +1 -0
- package/dist/pushover-tool.js +146 -0
- package/dist/pushover-tool.js.map +1 -0
- package/dist/quickbooks-tool.d.ts +5 -0
- package/dist/quickbooks-tool.d.ts.map +1 -0
- package/dist/quickbooks-tool.js +160 -0
- package/dist/quickbooks-tool.js.map +1 -0
- package/dist/replicate-tool.d.ts +7 -0
- package/dist/replicate-tool.d.ts.map +1 -0
- package/dist/replicate-tool.js +172 -0
- package/dist/replicate-tool.js.map +1 -0
- package/dist/sentry-tool.d.ts +2 -0
- package/dist/sentry-tool.d.ts.map +1 -0
- package/dist/sentry-tool.js +123 -0
- package/dist/sentry-tool.js.map +1 -0
- package/dist/speedrun-tool.d.ts +6 -0
- package/dist/speedrun-tool.d.ts.map +1 -0
- package/dist/speedrun-tool.js +192 -0
- package/dist/speedrun-tool.js.map +1 -0
- package/dist/spotify-tool.d.ts +8 -0
- package/dist/spotify-tool.d.ts.map +1 -0
- package/dist/spotify-tool.js +274 -0
- package/dist/spotify-tool.js.map +1 -0
- package/dist/square-tool.d.ts +5 -0
- package/dist/square-tool.d.ts.map +1 -0
- package/dist/square-tool.js +133 -0
- package/dist/square-tool.js.map +1 -0
- package/dist/stability-tool.d.ts +5 -0
- package/dist/stability-tool.d.ts.map +1 -0
- package/dist/stability-tool.js +190 -0
- package/dist/stability-tool.js.map +1 -0
- package/dist/steam-tool.d.ts +6 -0
- package/dist/steam-tool.d.ts.map +1 -0
- package/dist/steam-tool.js +222 -0
- package/dist/steam-tool.js.map +1 -0
- package/dist/stripe-tool.d.ts +7 -0
- package/dist/stripe-tool.d.ts.map +1 -0
- package/dist/stripe-tool.js +181 -0
- package/dist/stripe-tool.js.map +1 -0
- package/dist/tiktok-tool.d.ts +4 -0
- package/dist/tiktok-tool.d.ts.map +1 -0
- package/dist/tiktok-tool.js +129 -0
- package/dist/tiktok-tool.js.map +1 -0
- package/dist/toilets-tool.js +2 -2
- package/dist/tool-wiring.d.ts +4066 -18
- package/dist/tool-wiring.d.ts.map +1 -1
- package/dist/tool-wiring.js +2601 -18
- package/dist/tool-wiring.js.map +1 -1
- package/dist/trello-tool.d.ts +2 -0
- package/dist/trello-tool.d.ts.map +1 -0
- package/dist/trello-tool.js +166 -0
- package/dist/trello-tool.js.map +1 -0
- package/dist/twilio-tool.d.ts +8 -0
- package/dist/twilio-tool.d.ts.map +1 -0
- package/dist/twilio-tool.js +243 -0
- package/dist/twilio-tool.js.map +1 -0
- package/dist/whatsapp-tool.d.ts +6 -0
- package/dist/whatsapp-tool.d.ts.map +1 -0
- package/dist/whatsapp-tool.js +200 -0
- package/dist/whatsapp-tool.js.map +1 -0
- package/dist/woocommerce-tool.d.ts +4 -0
- package/dist/woocommerce-tool.d.ts.map +1 -0
- package/dist/woocommerce-tool.js +140 -0
- package/dist/woocommerce-tool.js.map +1 -0
- package/dist/youtube-tool.d.ts +7 -0
- package/dist/youtube-tool.d.ts.map +1 -0
- package/dist/youtube-tool.js +196 -0
- package/dist/youtube-tool.js.map +1 -0
- package/package.json +1 -1
- package/server.json +37 -37
- package/LICENSE +0 -216
- package/dist/cloudflare-worker.d.ts +0 -12
- package/dist/cloudflare-worker.d.ts.map +0 -1
- package/dist/cloudflare-worker.js +0 -50
- package/dist/cloudflare-worker.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trello-tool.d.ts","sourceRoot":"","sources":["../src/trello-tool.ts"],"names":[],"mappings":"AA8IA,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// ── Trello REST API tool ───────────────────────────────────────────────────
|
|
2
|
+
// Wraps the Trello REST API (https://api.trello.com/1) via fetch.
|
|
3
|
+
// Auth: api_key + token (both required for write operations).
|
|
4
|
+
// No external dependencies.
|
|
5
|
+
const TRELLO_API = "https://api.trello.com/1";
|
|
6
|
+
// ── Fetch helper ───────────────────────────────────────────────────────────────
|
|
7
|
+
async function trelloFetch(apiKey, token, method, path, body, query) {
|
|
8
|
+
const url = new URL(`${TRELLO_API}${path}`);
|
|
9
|
+
url.searchParams.set("key", apiKey);
|
|
10
|
+
url.searchParams.set("token", token);
|
|
11
|
+
if (query) {
|
|
12
|
+
for (const [k, v] of Object.entries(query)) {
|
|
13
|
+
if (v !== undefined && v !== "")
|
|
14
|
+
url.searchParams.set(k, String(v));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const headers = {
|
|
18
|
+
Accept: "application/json",
|
|
19
|
+
"User-Agent": "UnClick-MCP/1.0",
|
|
20
|
+
};
|
|
21
|
+
if (body !== undefined) {
|
|
22
|
+
headers["Content-Type"] = "application/json";
|
|
23
|
+
}
|
|
24
|
+
let response;
|
|
25
|
+
try {
|
|
26
|
+
response = await fetch(url.toString(), {
|
|
27
|
+
method,
|
|
28
|
+
headers,
|
|
29
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
return { error: `Network error reaching Trello API: ${err instanceof Error ? err.message : String(err)}` };
|
|
34
|
+
}
|
|
35
|
+
const text = await response.text();
|
|
36
|
+
let data;
|
|
37
|
+
try {
|
|
38
|
+
data = JSON.parse(text);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
data = text;
|
|
42
|
+
}
|
|
43
|
+
if (response.status === 401)
|
|
44
|
+
return { error: "Trello API key or token is invalid. Check api_key and token.", status: 401 };
|
|
45
|
+
if (response.status === 403)
|
|
46
|
+
return { error: "Insufficient permissions for this Trello resource.", status: 403 };
|
|
47
|
+
if (response.status === 404)
|
|
48
|
+
return { error: "Board, list, or card not found.", status: 404 };
|
|
49
|
+
if (response.status === 429)
|
|
50
|
+
return { error: "Trello rate limit exceeded. Please wait and retry.", status: 429 };
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
return { error: `Trello API error ${response.status}: ${typeof data === "string" ? data : JSON.stringify(data)}`, status: response.status };
|
|
53
|
+
}
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
// ── Action implementations ─────────────────────────────────────────────────────
|
|
57
|
+
async function getBoards(apiKey, token, args) {
|
|
58
|
+
const memberId = String(args.member_id ?? "me").trim();
|
|
59
|
+
return trelloFetch(apiKey, token, "GET", `/members/${encodeURIComponent(memberId)}/boards`, undefined, {
|
|
60
|
+
fields: "id,name,desc,url,closed,idOrganization",
|
|
61
|
+
filter: args.filter ? String(args.filter) : "open",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async function getLists(apiKey, token, args) {
|
|
65
|
+
const boardId = String(args.board_id ?? "").trim();
|
|
66
|
+
if (!boardId)
|
|
67
|
+
return { error: "board_id is required." };
|
|
68
|
+
return trelloFetch(apiKey, token, "GET", `/boards/${encodeURIComponent(boardId)}/lists`, undefined, {
|
|
69
|
+
filter: args.filter ? String(args.filter) : "open",
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async function getCards(apiKey, token, args) {
|
|
73
|
+
const listId = String(args.list_id ?? "").trim();
|
|
74
|
+
const boardId = String(args.board_id ?? "").trim();
|
|
75
|
+
if (listId) {
|
|
76
|
+
return trelloFetch(apiKey, token, "GET", `/lists/${encodeURIComponent(listId)}/cards`, undefined, {
|
|
77
|
+
fields: "id,name,desc,due,dueComplete,idList,idBoard,labels,url",
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (boardId) {
|
|
81
|
+
return trelloFetch(apiKey, token, "GET", `/boards/${encodeURIComponent(boardId)}/cards`, undefined, {
|
|
82
|
+
fields: "id,name,desc,due,dueComplete,idList,idBoard,labels,url",
|
|
83
|
+
filter: args.filter ? String(args.filter) : "open",
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return { error: "list_id or board_id is required." };
|
|
87
|
+
}
|
|
88
|
+
async function createCard(apiKey, token, args) {
|
|
89
|
+
const listId = String(args.list_id ?? "").trim();
|
|
90
|
+
const name = String(args.name ?? "").trim();
|
|
91
|
+
if (!listId)
|
|
92
|
+
return { error: "list_id is required." };
|
|
93
|
+
if (!name)
|
|
94
|
+
return { error: "name is required." };
|
|
95
|
+
const body = { idList: listId, name };
|
|
96
|
+
if (args.desc)
|
|
97
|
+
body.desc = String(args.desc);
|
|
98
|
+
if (args.due)
|
|
99
|
+
body.due = String(args.due);
|
|
100
|
+
if (args.pos)
|
|
101
|
+
body.pos = String(args.pos);
|
|
102
|
+
if (args.id_labels)
|
|
103
|
+
body.idLabels = args.id_labels;
|
|
104
|
+
return trelloFetch(apiKey, token, "POST", "/cards", body);
|
|
105
|
+
}
|
|
106
|
+
async function updateCard(apiKey, token, args) {
|
|
107
|
+
const cardId = String(args.card_id ?? "").trim();
|
|
108
|
+
if (!cardId)
|
|
109
|
+
return { error: "card_id is required." };
|
|
110
|
+
const body = {};
|
|
111
|
+
if (args.name !== undefined)
|
|
112
|
+
body.name = String(args.name);
|
|
113
|
+
if (args.desc !== undefined)
|
|
114
|
+
body.desc = String(args.desc);
|
|
115
|
+
if (args.due !== undefined)
|
|
116
|
+
body.due = String(args.due);
|
|
117
|
+
if (args.due_complete !== undefined)
|
|
118
|
+
body.dueComplete = Boolean(args.due_complete);
|
|
119
|
+
if (args.id_list !== undefined)
|
|
120
|
+
body.idList = String(args.id_list);
|
|
121
|
+
if (args.closed !== undefined)
|
|
122
|
+
body.closed = Boolean(args.closed);
|
|
123
|
+
if (args.pos !== undefined)
|
|
124
|
+
body.pos = String(args.pos);
|
|
125
|
+
return trelloFetch(apiKey, token, "PUT", `/cards/${encodeURIComponent(cardId)}`, body);
|
|
126
|
+
}
|
|
127
|
+
async function searchCards(apiKey, token, args) {
|
|
128
|
+
const query = String(args.query ?? "").trim();
|
|
129
|
+
if (!query)
|
|
130
|
+
return { error: "query is required." };
|
|
131
|
+
return trelloFetch(apiKey, token, "GET", "/search", undefined, {
|
|
132
|
+
query,
|
|
133
|
+
modelTypes: "cards",
|
|
134
|
+
card_fields: "id,name,desc,due,dueComplete,idList,idBoard,url",
|
|
135
|
+
cards_limit: args.limit ? Number(args.limit) : 20,
|
|
136
|
+
card_board: "true",
|
|
137
|
+
card_list: "true",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
// ── Public dispatcher ──────────────────────────────────────────────────────────
|
|
141
|
+
export async function trelloAction(action, args) {
|
|
142
|
+
const apiKey = String(args.api_key ?? "").trim();
|
|
143
|
+
const token = String(args.token ?? "").trim();
|
|
144
|
+
if (!apiKey)
|
|
145
|
+
return { error: "api_key is required." };
|
|
146
|
+
if (!token)
|
|
147
|
+
return { error: "token is required." };
|
|
148
|
+
try {
|
|
149
|
+
switch (action) {
|
|
150
|
+
case "get_boards": return getBoards(apiKey, token, args);
|
|
151
|
+
case "get_lists": return getLists(apiKey, token, args);
|
|
152
|
+
case "get_cards": return getCards(apiKey, token, args);
|
|
153
|
+
case "create_card": return createCard(apiKey, token, args);
|
|
154
|
+
case "update_card": return updateCard(apiKey, token, args);
|
|
155
|
+
case "search_cards": return searchCards(apiKey, token, args);
|
|
156
|
+
default:
|
|
157
|
+
return {
|
|
158
|
+
error: `Unknown Trello action: "${action}". Valid actions: get_boards, get_lists, get_cards, create_card, update_card, search_cards.`,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
return { error: err instanceof Error ? err.message : String(err) };
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=trello-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trello-tool.js","sourceRoot":"","sources":["../src/trello-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function twilioSendSms(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function twilioListMessages(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function twilioGetMessage(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function twilioMakeCall(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function twilioListCalls(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
export declare function twilioSendVerify(args: Record<string, unknown>): Promise<unknown>;
|
|
7
|
+
export declare function twilioCheckVerify(args: Record<string, unknown>): Promise<unknown>;
|
|
8
|
+
//# sourceMappingURL=twilio-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twilio-tool.d.ts","sourceRoot":"","sources":["../src/twilio-tool.ts"],"names":[],"mappings":"AAqJA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBnF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BxF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBtF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBpF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BrF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBtF;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBvF"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
// Twilio REST API integration for the UnClick MCP server.
|
|
2
|
+
// Uses the Twilio REST API via fetch - no external dependencies.
|
|
3
|
+
// Users must supply their Account SID and Auth Token from the Twilio Console.
|
|
4
|
+
const TWILIO_API_BASE = "https://api.twilio.com/2010-04-01";
|
|
5
|
+
// ─── Auth helper ──────────────────────────────────────────────────────────────
|
|
6
|
+
function requireAuth(args) {
|
|
7
|
+
const accountSid = String(args.account_sid ?? "").trim();
|
|
8
|
+
const authToken = String(args.auth_token ?? "").trim();
|
|
9
|
+
if (!accountSid)
|
|
10
|
+
throw new Error("account_sid is required. Find it at console.twilio.com.");
|
|
11
|
+
if (!authToken)
|
|
12
|
+
throw new Error("auth_token is required. Find it at console.twilio.com.");
|
|
13
|
+
return { accountSid, authToken };
|
|
14
|
+
}
|
|
15
|
+
function basicAuth(accountSid, authToken) {
|
|
16
|
+
return "Basic " + Buffer.from(`${accountSid}:${authToken}`).toString("base64");
|
|
17
|
+
}
|
|
18
|
+
// ─── API helpers ──────────────────────────────────────────────────────────────
|
|
19
|
+
async function twilioPost(accountSid, authToken, path, params) {
|
|
20
|
+
const url = `${TWILIO_API_BASE}/Accounts/${accountSid}${path}.json`;
|
|
21
|
+
const body = new URLSearchParams(params).toString();
|
|
22
|
+
const res = await fetch(url, {
|
|
23
|
+
method: "POST",
|
|
24
|
+
headers: {
|
|
25
|
+
Authorization: basicAuth(accountSid, authToken),
|
|
26
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
27
|
+
},
|
|
28
|
+
body,
|
|
29
|
+
});
|
|
30
|
+
const data = await res.json();
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
const code = data.code ? ` (code ${data.code})` : "";
|
|
33
|
+
throw new Error(`Twilio error${code}: ${data.message ?? `HTTP ${res.status}`}`);
|
|
34
|
+
}
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
async function twilioGet(accountSid, authToken, path, query = {}) {
|
|
38
|
+
const qs = new URLSearchParams(query).toString();
|
|
39
|
+
const url = `${TWILIO_API_BASE}/Accounts/${accountSid}${path}.json${qs ? `?${qs}` : ""}`;
|
|
40
|
+
const res = await fetch(url, {
|
|
41
|
+
headers: { Authorization: basicAuth(accountSid, authToken) },
|
|
42
|
+
});
|
|
43
|
+
const data = await res.json();
|
|
44
|
+
if (!res.ok) {
|
|
45
|
+
const code = data.code ? ` (code ${data.code})` : "";
|
|
46
|
+
throw new Error(`Twilio error${code}: ${data.message ?? `HTTP ${res.status}`}`);
|
|
47
|
+
}
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
async function twilioVerifyPost(accountSid, authToken, path, params) {
|
|
51
|
+
const url = `https://verify.twilio.com/v2${path}`;
|
|
52
|
+
const body = new URLSearchParams(params).toString();
|
|
53
|
+
const res = await fetch(url, {
|
|
54
|
+
method: "POST",
|
|
55
|
+
headers: {
|
|
56
|
+
Authorization: basicAuth(accountSid, authToken),
|
|
57
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
58
|
+
},
|
|
59
|
+
body,
|
|
60
|
+
});
|
|
61
|
+
const data = await res.json();
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
const code = data.code ? ` (code ${data.code})` : "";
|
|
64
|
+
throw new Error(`Twilio Verify error${code}: ${data.message ?? `HTTP ${res.status}`}`);
|
|
65
|
+
}
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
// ─── Operations ───────────────────────────────────────────────────────────────
|
|
69
|
+
export async function twilioSendSms(args) {
|
|
70
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
71
|
+
const to = String(args.to ?? "").trim();
|
|
72
|
+
const from = String(args.from ?? "").trim();
|
|
73
|
+
const body = String(args.body ?? "").trim();
|
|
74
|
+
if (!to)
|
|
75
|
+
throw new Error("to is required (E.164 phone number, e.g. +61400000000).");
|
|
76
|
+
if (!from)
|
|
77
|
+
throw new Error("from is required (your Twilio phone number or messaging service SID).");
|
|
78
|
+
if (!body)
|
|
79
|
+
throw new Error("body is required (message text).");
|
|
80
|
+
const params = { To: to, From: from, Body: body };
|
|
81
|
+
if (args.status_callback)
|
|
82
|
+
params.StatusCallback = String(args.status_callback);
|
|
83
|
+
const msg = await twilioPost(accountSid, authToken, "/Messages", params);
|
|
84
|
+
return {
|
|
85
|
+
success: true,
|
|
86
|
+
sid: msg.sid,
|
|
87
|
+
status: msg.status,
|
|
88
|
+
to: msg.to,
|
|
89
|
+
from: msg.from,
|
|
90
|
+
body: msg.body,
|
|
91
|
+
date_created: msg.date_created,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export async function twilioListMessages(args) {
|
|
95
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
96
|
+
const query = {};
|
|
97
|
+
if (args.to)
|
|
98
|
+
query.To = String(args.to);
|
|
99
|
+
if (args.from)
|
|
100
|
+
query.From = String(args.from);
|
|
101
|
+
if (args.date_sent)
|
|
102
|
+
query.DateSent = String(args.date_sent);
|
|
103
|
+
const pageSize = Math.min(100, Math.max(1, Number(args.page_size ?? 20)));
|
|
104
|
+
query.PageSize = String(pageSize);
|
|
105
|
+
const data = await twilioGet(accountSid, authToken, "/Messages", query);
|
|
106
|
+
const messages = data.messages ?? [];
|
|
107
|
+
return {
|
|
108
|
+
count: messages.length,
|
|
109
|
+
messages: messages.map((m) => ({
|
|
110
|
+
sid: m.sid,
|
|
111
|
+
status: m.status,
|
|
112
|
+
from: m.from,
|
|
113
|
+
to: m.to,
|
|
114
|
+
body: m.body,
|
|
115
|
+
direction: m.direction,
|
|
116
|
+
date_created: m.date_created,
|
|
117
|
+
date_sent: m.date_sent,
|
|
118
|
+
error_code: m.error_code,
|
|
119
|
+
})),
|
|
120
|
+
next_page_uri: data.next_page_uri ?? null,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
export async function twilioGetMessage(args) {
|
|
124
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
125
|
+
const messageSid = String(args.message_sid ?? "").trim();
|
|
126
|
+
if (!messageSid)
|
|
127
|
+
throw new Error("message_sid is required.");
|
|
128
|
+
const msg = await twilioGet(accountSid, authToken, `/Messages/${encodeURIComponent(messageSid)}`);
|
|
129
|
+
return {
|
|
130
|
+
sid: msg.sid,
|
|
131
|
+
status: msg.status,
|
|
132
|
+
from: msg.from,
|
|
133
|
+
to: msg.to,
|
|
134
|
+
body: msg.body,
|
|
135
|
+
direction: msg.direction,
|
|
136
|
+
date_created: msg.date_created,
|
|
137
|
+
date_sent: msg.date_sent,
|
|
138
|
+
error_code: msg.error_code,
|
|
139
|
+
error_message: msg.error_message,
|
|
140
|
+
price: msg.price,
|
|
141
|
+
price_unit: msg.price_unit,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
export async function twilioMakeCall(args) {
|
|
145
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
146
|
+
const to = String(args.to ?? "").trim();
|
|
147
|
+
const from = String(args.from ?? "").trim();
|
|
148
|
+
const twiml = String(args.twiml ?? "").trim();
|
|
149
|
+
const url = String(args.url ?? "").trim();
|
|
150
|
+
if (!to)
|
|
151
|
+
throw new Error("to is required (E.164 phone number).");
|
|
152
|
+
if (!from)
|
|
153
|
+
throw new Error("from is required (your Twilio phone number).");
|
|
154
|
+
if (!twiml && !url)
|
|
155
|
+
throw new Error("Either twiml or url is required to specify call instructions.");
|
|
156
|
+
const params = { To: to, From: from };
|
|
157
|
+
if (twiml)
|
|
158
|
+
params.Twiml = twiml;
|
|
159
|
+
if (url)
|
|
160
|
+
params.Url = url;
|
|
161
|
+
if (args.status_callback)
|
|
162
|
+
params.StatusCallback = String(args.status_callback);
|
|
163
|
+
const call = await twilioPost(accountSid, authToken, "/Calls", params);
|
|
164
|
+
return {
|
|
165
|
+
success: true,
|
|
166
|
+
sid: call.sid,
|
|
167
|
+
status: call.status,
|
|
168
|
+
to: call.to,
|
|
169
|
+
from: call.from,
|
|
170
|
+
direction: call.direction,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
export async function twilioListCalls(args) {
|
|
174
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
175
|
+
const query = {};
|
|
176
|
+
if (args.to)
|
|
177
|
+
query.To = String(args.to);
|
|
178
|
+
if (args.from)
|
|
179
|
+
query.From = String(args.from);
|
|
180
|
+
if (args.status)
|
|
181
|
+
query.Status = String(args.status);
|
|
182
|
+
const pageSize = Math.min(100, Math.max(1, Number(args.page_size ?? 20)));
|
|
183
|
+
query.PageSize = String(pageSize);
|
|
184
|
+
const data = await twilioGet(accountSid, authToken, "/Calls", query);
|
|
185
|
+
const calls = data.calls ?? [];
|
|
186
|
+
return {
|
|
187
|
+
count: calls.length,
|
|
188
|
+
calls: calls.map((c) => ({
|
|
189
|
+
sid: c.sid,
|
|
190
|
+
status: c.status,
|
|
191
|
+
from: c.from,
|
|
192
|
+
to: c.to,
|
|
193
|
+
direction: c.direction,
|
|
194
|
+
duration: c.duration,
|
|
195
|
+
start_time: c.start_time,
|
|
196
|
+
end_time: c.end_time,
|
|
197
|
+
price: c.price,
|
|
198
|
+
})),
|
|
199
|
+
next_page_uri: data.next_page_uri ?? null,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
export async function twilioSendVerify(args) {
|
|
203
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
204
|
+
const serviceSid = String(args.service_sid ?? "").trim();
|
|
205
|
+
const to = String(args.to ?? "").trim();
|
|
206
|
+
const channel = String(args.channel ?? "sms").toLowerCase();
|
|
207
|
+
if (!serviceSid)
|
|
208
|
+
throw new Error("service_sid is required (Twilio Verify Service SID).");
|
|
209
|
+
if (!to)
|
|
210
|
+
throw new Error("to is required (E.164 phone number).");
|
|
211
|
+
const validChannels = ["sms", "call", "email", "whatsapp"];
|
|
212
|
+
if (!validChannels.includes(channel)) {
|
|
213
|
+
throw new Error(`Invalid channel "${channel}". Valid: ${validChannels.join(", ")}.`);
|
|
214
|
+
}
|
|
215
|
+
const result = await twilioVerifyPost(accountSid, authToken, `/Services/${encodeURIComponent(serviceSid)}/Verifications`, { To: to, Channel: channel });
|
|
216
|
+
return {
|
|
217
|
+
success: true,
|
|
218
|
+
sid: result.sid,
|
|
219
|
+
to: result.to,
|
|
220
|
+
channel: result.channel,
|
|
221
|
+
status: result.status,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
export async function twilioCheckVerify(args) {
|
|
225
|
+
const { accountSid, authToken } = requireAuth(args);
|
|
226
|
+
const serviceSid = String(args.service_sid ?? "").trim();
|
|
227
|
+
const to = String(args.to ?? "").trim();
|
|
228
|
+
const code = String(args.code ?? "").trim();
|
|
229
|
+
if (!serviceSid)
|
|
230
|
+
throw new Error("service_sid is required.");
|
|
231
|
+
if (!to)
|
|
232
|
+
throw new Error("to is required (E.164 phone number).");
|
|
233
|
+
if (!code)
|
|
234
|
+
throw new Error("code is required (the OTP entered by the user).");
|
|
235
|
+
const result = await twilioVerifyPost(accountSid, authToken, `/Services/${encodeURIComponent(serviceSid)}/VerificationCheck`, { To: to, Code: code });
|
|
236
|
+
return {
|
|
237
|
+
valid: result.valid,
|
|
238
|
+
status: result.status,
|
|
239
|
+
to: result.to,
|
|
240
|
+
channel: result.channel,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=twilio-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twilio-tool.js","sourceRoot":"","sources":["../src/twilio-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function whatsappSendText(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function whatsappSendTemplate(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function whatsappSendMedia(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function whatsappGetMedia(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function whatsappUploadMedia(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
//# sourceMappingURL=whatsapp-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp-tool.d.ts","sourceRoot":"","sources":["../src/whatsapp-tool.ts"],"names":[],"mappings":"AAuEA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBtF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqC1F;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCvF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CActF;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCzF"}
|