@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
|
@@ -34,6 +34,8 @@ import { redditConnector } from "./reddit.js";
|
|
|
34
34
|
import { slackConnector } from "./slack.js";
|
|
35
35
|
import { blueskyConnector } from "./bluesky.js";
|
|
36
36
|
import { mastodonConnector } from "./mastodon.js";
|
|
37
|
-
|
|
37
|
+
import { lineConnector } from "./line.js";
|
|
38
|
+
import { figmaConnector } from "./figma.js";
|
|
39
|
+
export { xeroConnector, shopifyConnector, telegramConnector, discordConnector, redditConnector, slackConnector, blueskyConnector, mastodonConnector, lineConnector, figmaConnector, };
|
|
38
40
|
export declare const CONNECTORS: Record<string, ConnectorConfig>;
|
|
39
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAO,EAAE,aAAa,EAAE,MAAU,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAQ,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAS,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAO,EAAE,aAAa,EAAE,MAAU,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAQ,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAS,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAU,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAS,YAAY,CAAC;AAE/C,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAWtD,CAAC"}
|
package/dist/connectors/index.js
CHANGED
|
@@ -9,7 +9,9 @@ import { redditConnector } from "./reddit.js";
|
|
|
9
9
|
import { slackConnector } from "./slack.js";
|
|
10
10
|
import { blueskyConnector } from "./bluesky.js";
|
|
11
11
|
import { mastodonConnector } from "./mastodon.js";
|
|
12
|
-
|
|
12
|
+
import { lineConnector } from "./line.js";
|
|
13
|
+
import { figmaConnector } from "./figma.js";
|
|
14
|
+
export { xeroConnector, shopifyConnector, telegramConnector, discordConnector, redditConnector, slackConnector, blueskyConnector, mastodonConnector, lineConnector, figmaConnector, };
|
|
13
15
|
export const CONNECTORS = {
|
|
14
16
|
xero: xeroConnector,
|
|
15
17
|
shopify: shopifyConnector,
|
|
@@ -19,5 +21,7 @@ export const CONNECTORS = {
|
|
|
19
21
|
slack: slackConnector,
|
|
20
22
|
bluesky: blueskyConnector,
|
|
21
23
|
mastodon: mastodonConnector,
|
|
24
|
+
line: lineConnector,
|
|
25
|
+
figma: figmaConnector,
|
|
22
26
|
};
|
|
23
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,oFAAoF;AACpF,+EAA+E;AAiC/E,OAAO,EAAE,aAAa,EAAE,MAAU,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAQ,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAS,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,oFAAoF;AACpF,+EAA+E;AAiC/E,OAAO,EAAE,aAAa,EAAE,MAAU,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAQ,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAS,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAO,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAU,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAS,YAAY,CAAC;AAE/C,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAoC;IACzD,IAAI,EAAM,aAAa;IACvB,OAAO,EAAG,gBAAgB;IAC1B,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAG,gBAAgB;IAC1B,MAAM,EAAI,eAAe;IACzB,KAAK,EAAK,cAAc;IACxB,OAAO,EAAG,gBAAgB;IAC1B,QAAQ,EAAE,iBAAiB;IAC3B,IAAI,EAAM,aAAa;IACvB,KAAK,EAAK,cAAc;CACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../src/connectors/line.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,aAAa,EAAE,eAgB3B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const lineConnector = {
|
|
2
|
+
name: "LINE",
|
|
3
|
+
slug: "line",
|
|
4
|
+
authType: "bot_token",
|
|
5
|
+
description: "LINE Messaging API. Send messages to users and groups, reply to webhook events, broadcast to followers, and retrieve user and group profiles via your LINE Official Account.",
|
|
6
|
+
credentialFields: [
|
|
7
|
+
{
|
|
8
|
+
key: "channel_access_token",
|
|
9
|
+
label: "Channel Access Token",
|
|
10
|
+
description: "Long-lived channel access token from your LINE Developers channel settings. Issue one under Messaging API β Channel access token.",
|
|
11
|
+
secret: true,
|
|
12
|
+
placeholder: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
13
|
+
findGuideUrl: "https://developers.line.biz/en/docs/messaging-api/channel-access-tokens/",
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
docsUrl: "https://developers.line.biz/en/docs/messaging-api/",
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/connectors/line.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,8KAA8K;IAC3L,gBAAgB,EAAE;QAChB;YACE,GAAG,EAAU,sBAAsB;YACnC,KAAK,EAAQ,sBAAsB;YACnC,WAAW,EAAE,mIAAmI;YAChJ,MAAM,EAAO,IAAI;YACjB,WAAW,EAAE,kDAAkD;YAC/D,YAAY,EAAE,0EAA0E;SACzF;KACF;IACD,OAAO,EAAE,oDAAoD;CAC9D,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function ebaySearch(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function ebayGetItem(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function ebayGetItemByLegacyId(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function ebayGetCategories(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
//# sourceMappingURL=ebay-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ebay-tool.d.ts","sourceRoot":"","sources":["../src/ebay-tool.ts"],"names":[],"mappings":"AAyGA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBhF;AAID,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAYjF;AAID,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAe3F;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCvF"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// βββ eBay Browse API Tool ββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
2
|
+
// Covers item search, item details, categories, and legacy item lookup.
|
|
3
|
+
// Auth: OAuth 2.0 client credentials (client_id + client_secret).
|
|
4
|
+
// Token is fetched automatically and cached for the request lifetime.
|
|
5
|
+
// API: https://api.ebay.com/buy/browse/v1
|
|
6
|
+
// No external dependencies - native fetch only.
|
|
7
|
+
const EBAY_TOKEN_URL = "https://api.ebay.com/identity/v1/oauth2/token";
|
|
8
|
+
const EBAY_BROWSE_URL = "https://api.ebay.com/buy/browse/v1";
|
|
9
|
+
// βββ Helpers ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
10
|
+
function requireConfig(args) {
|
|
11
|
+
const client_id = String(args.client_id ?? "").trim();
|
|
12
|
+
const client_secret = String(args.client_secret ?? "").trim();
|
|
13
|
+
if (!client_id)
|
|
14
|
+
return { error: "client_id is required (eBay application Client ID)." };
|
|
15
|
+
if (!client_secret)
|
|
16
|
+
return { error: "client_secret is required (eBay application Client Secret)." };
|
|
17
|
+
return {
|
|
18
|
+
client_id,
|
|
19
|
+
client_secret,
|
|
20
|
+
marketplace: args.marketplace ? String(args.marketplace) : "EBAY_US",
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function getEbayToken(cfg) {
|
|
24
|
+
const credentials = Buffer.from(`${cfg.client_id}:${cfg.client_secret}`).toString("base64");
|
|
25
|
+
let response;
|
|
26
|
+
try {
|
|
27
|
+
response = await fetch(EBAY_TOKEN_URL, {
|
|
28
|
+
method: "POST",
|
|
29
|
+
headers: {
|
|
30
|
+
Authorization: `Basic ${credentials}`,
|
|
31
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
32
|
+
},
|
|
33
|
+
body: "grant_type=client_credentials&scope=https%3A%2F%2Fapi.ebay.com%2Foauth%2Fapi_scope",
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return { error: `Network error fetching eBay token: ${err instanceof Error ? err.message : String(err)}` };
|
|
38
|
+
}
|
|
39
|
+
let data;
|
|
40
|
+
try {
|
|
41
|
+
data = await response.json();
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return { error: "Non-JSON response from eBay token endpoint." };
|
|
45
|
+
}
|
|
46
|
+
if (!response.ok) {
|
|
47
|
+
const d = data;
|
|
48
|
+
return { error: `eBay auth failed (${response.status}): ${d["error_description"] ?? d["error"] ?? "unknown"}` };
|
|
49
|
+
}
|
|
50
|
+
return String(data["access_token"] ?? "");
|
|
51
|
+
}
|
|
52
|
+
async function ebayFetch(cfg, path, query) {
|
|
53
|
+
const tokenResult = await getEbayToken(cfg);
|
|
54
|
+
if (typeof tokenResult === "object" && "error" in tokenResult)
|
|
55
|
+
return tokenResult;
|
|
56
|
+
const url = new URL(`${EBAY_BROWSE_URL}${path}`);
|
|
57
|
+
if (query) {
|
|
58
|
+
for (const [k, v] of Object.entries(query)) {
|
|
59
|
+
if (v !== undefined)
|
|
60
|
+
url.searchParams.set(k, String(v));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
let response;
|
|
64
|
+
try {
|
|
65
|
+
response = await fetch(url.toString(), {
|
|
66
|
+
headers: {
|
|
67
|
+
Authorization: `Bearer ${tokenResult}`,
|
|
68
|
+
"X-EBAY-C-MARKETPLACE-ID": cfg.marketplace ?? "EBAY_US",
|
|
69
|
+
"Content-Type": "application/json",
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
return { error: `Network error: ${err instanceof Error ? err.message : String(err)}` };
|
|
75
|
+
}
|
|
76
|
+
// eBay rate limit
|
|
77
|
+
if (response.status === 429) {
|
|
78
|
+
return { error: "eBay rate limit reached. Wait before retrying.", status: 429 };
|
|
79
|
+
}
|
|
80
|
+
let data;
|
|
81
|
+
try {
|
|
82
|
+
data = await response.json();
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return { error: `Non-JSON response (HTTP ${response.status})`, status: response.status };
|
|
86
|
+
}
|
|
87
|
+
if (!response.ok) {
|
|
88
|
+
const d = data;
|
|
89
|
+
return { error: d["errors"] ?? d["message"] ?? "eBay API error", status: response.status };
|
|
90
|
+
}
|
|
91
|
+
return data;
|
|
92
|
+
}
|
|
93
|
+
// βββ ebay_search ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
94
|
+
export async function ebaySearch(args) {
|
|
95
|
+
const cfg = requireConfig(args);
|
|
96
|
+
if ("error" in cfg)
|
|
97
|
+
return cfg;
|
|
98
|
+
const q = String(args.q ?? "").trim();
|
|
99
|
+
if (!q)
|
|
100
|
+
return { error: "q (search query) is required." };
|
|
101
|
+
const query = {
|
|
102
|
+
q,
|
|
103
|
+
limit: args.limit ? Number(args.limit) : 20,
|
|
104
|
+
offset: args.offset ? Number(args.offset) : undefined,
|
|
105
|
+
filter: args.filter ? String(args.filter) : undefined,
|
|
106
|
+
sort: args.sort ? String(args.sort) : undefined,
|
|
107
|
+
category_ids: args.category_ids ? String(args.category_ids) : undefined,
|
|
108
|
+
fieldgroups: args.fieldgroups ? String(args.fieldgroups) : undefined,
|
|
109
|
+
};
|
|
110
|
+
return ebayFetch(cfg, "/item_summary/search", query);
|
|
111
|
+
}
|
|
112
|
+
// βββ ebay_get_item ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
113
|
+
export async function ebayGetItem(args) {
|
|
114
|
+
const cfg = requireConfig(args);
|
|
115
|
+
if ("error" in cfg)
|
|
116
|
+
return cfg;
|
|
117
|
+
const item_id = String(args.item_id ?? "").trim();
|
|
118
|
+
if (!item_id)
|
|
119
|
+
return { error: "item_id is required." };
|
|
120
|
+
const query = {
|
|
121
|
+
fieldgroups: args.fieldgroups ? String(args.fieldgroups) : undefined,
|
|
122
|
+
};
|
|
123
|
+
return ebayFetch(cfg, `/item/${encodeURIComponent(item_id)}`, query);
|
|
124
|
+
}
|
|
125
|
+
// βββ ebay_get_item_by_legacy_id βββββββββββββββββββββββββββββββββββββββββββββββ
|
|
126
|
+
export async function ebayGetItemByLegacyId(args) {
|
|
127
|
+
const cfg = requireConfig(args);
|
|
128
|
+
if ("error" in cfg)
|
|
129
|
+
return cfg;
|
|
130
|
+
const legacy_item_id = String(args.legacy_item_id ?? "").trim();
|
|
131
|
+
if (!legacy_item_id)
|
|
132
|
+
return { error: "legacy_item_id is required." };
|
|
133
|
+
const query = {
|
|
134
|
+
legacy_item_id,
|
|
135
|
+
legacy_variation_id: args.legacy_variation_id ? String(args.legacy_variation_id) : undefined,
|
|
136
|
+
legacy_variation_sku: args.legacy_variation_sku ? String(args.legacy_variation_sku) : undefined,
|
|
137
|
+
fieldgroups: args.fieldgroups ? String(args.fieldgroups) : undefined,
|
|
138
|
+
};
|
|
139
|
+
return ebayFetch(cfg, "/item/get_item_by_legacy_id", query);
|
|
140
|
+
}
|
|
141
|
+
// βββ ebay_get_categories ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
142
|
+
export async function ebayGetCategories(args) {
|
|
143
|
+
const cfg = requireConfig(args);
|
|
144
|
+
if ("error" in cfg)
|
|
145
|
+
return cfg;
|
|
146
|
+
const category_tree_id = String(args.category_tree_id ?? "0");
|
|
147
|
+
const tokenResult = await getEbayToken(cfg);
|
|
148
|
+
if (typeof tokenResult === "object" && "error" in tokenResult)
|
|
149
|
+
return tokenResult;
|
|
150
|
+
const url = `https://api.ebay.com/commerce/taxonomy/v1/category_tree/${encodeURIComponent(category_tree_id)}`;
|
|
151
|
+
let response;
|
|
152
|
+
try {
|
|
153
|
+
response = await fetch(url, {
|
|
154
|
+
headers: {
|
|
155
|
+
Authorization: `Bearer ${tokenResult}`,
|
|
156
|
+
"X-EBAY-C-MARKETPLACE-ID": cfg.marketplace ?? "EBAY_US",
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
return { error: `Network error: ${err instanceof Error ? err.message : String(err)}` };
|
|
162
|
+
}
|
|
163
|
+
if (response.status === 429) {
|
|
164
|
+
return { error: "eBay rate limit reached. Wait before retrying.", status: 429 };
|
|
165
|
+
}
|
|
166
|
+
let data;
|
|
167
|
+
try {
|
|
168
|
+
data = await response.json();
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return { error: `Non-JSON response (HTTP ${response.status})`, status: response.status };
|
|
172
|
+
}
|
|
173
|
+
if (!response.ok) {
|
|
174
|
+
const d = data;
|
|
175
|
+
return { error: d["errors"] ?? d["message"] ?? "eBay API error", status: response.status };
|
|
176
|
+
}
|
|
177
|
+
return data;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=ebay-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ebay-tool.js","sourceRoot":"","sources":["../src/ebay-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function elevenlabsListVoices(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function elevenlabsGetVoice(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function elevenlabsTextToSpeech(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function elevenlabsGetModels(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function elevenlabsGetHistory(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
//# sourceMappingURL=elevenlabs-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevenlabs-tool.d.ts","sourceRoot":"","sources":["../src/elevenlabs-tool.ts"],"names":[],"mappings":"AAqGA,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAe1F;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBxF;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwC5F;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAezF;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6B1F"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// ElevenLabs API integration for the UnClick MCP server.
|
|
2
|
+
// Uses the ElevenLabs REST API via fetch - no external dependencies.
|
|
3
|
+
// Users must supply an API key from elevenlabs.io.
|
|
4
|
+
const EL_API_BASE = "https://api.elevenlabs.io/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 elevenlabs.io.");
|
|
10
|
+
return key;
|
|
11
|
+
}
|
|
12
|
+
// βββ API helpers ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
13
|
+
async function elGet(apiKey, path) {
|
|
14
|
+
const res = await fetch(`${EL_API_BASE}${path}`, {
|
|
15
|
+
headers: {
|
|
16
|
+
"xi-api-key": apiKey,
|
|
17
|
+
"Content-Type": "application/json",
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
const data = await res.json();
|
|
21
|
+
if (!res.ok) {
|
|
22
|
+
const detail = data.detail;
|
|
23
|
+
const msg = typeof detail === "object" ? (detail?.message ?? JSON.stringify(detail)) : detail;
|
|
24
|
+
throw new Error(`ElevenLabs error (${res.status}): ${msg ?? `HTTP ${res.status}`}`);
|
|
25
|
+
}
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
async function elPost(apiKey, path, body) {
|
|
29
|
+
const res = await fetch(`${EL_API_BASE}${path}`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: {
|
|
32
|
+
"xi-api-key": apiKey,
|
|
33
|
+
"Content-Type": "application/json",
|
|
34
|
+
},
|
|
35
|
+
body: JSON.stringify(body),
|
|
36
|
+
});
|
|
37
|
+
if (!res.ok) {
|
|
38
|
+
let msg = `HTTP ${res.status}`;
|
|
39
|
+
try {
|
|
40
|
+
const data = await res.json();
|
|
41
|
+
const detail = data.detail;
|
|
42
|
+
msg = typeof detail === "object" ? String(detail?.message ?? JSON.stringify(detail)) : (detail ?? msg);
|
|
43
|
+
}
|
|
44
|
+
catch { /* ignore parse errors */ }
|
|
45
|
+
throw new Error(`ElevenLabs error (${res.status}): ${msg}`);
|
|
46
|
+
}
|
|
47
|
+
// text-to-speech returns audio binary
|
|
48
|
+
return res;
|
|
49
|
+
}
|
|
50
|
+
// βββ Operations βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
51
|
+
export async function elevenlabsListVoices(args) {
|
|
52
|
+
const apiKey = requireKey(args);
|
|
53
|
+
const data = await elGet(apiKey, "/voices");
|
|
54
|
+
return {
|
|
55
|
+
count: data.voices.length,
|
|
56
|
+
voices: data.voices.map((v) => ({
|
|
57
|
+
voice_id: v.voice_id,
|
|
58
|
+
name: v.name,
|
|
59
|
+
category: v.category,
|
|
60
|
+
description: v.description ?? null,
|
|
61
|
+
labels: v.labels ?? {},
|
|
62
|
+
preview_url: v.preview_url ?? null,
|
|
63
|
+
})),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export async function elevenlabsGetVoice(args) {
|
|
67
|
+
const apiKey = requireKey(args);
|
|
68
|
+
const voiceId = String(args.voice_id ?? "").trim();
|
|
69
|
+
if (!voiceId)
|
|
70
|
+
throw new Error("voice_id is required.");
|
|
71
|
+
const withSettings = args.with_settings === true;
|
|
72
|
+
const path = `/voices/${encodeURIComponent(voiceId)}${withSettings ? "?with_settings=true" : ""}`;
|
|
73
|
+
const voice = await elGet(apiKey, path);
|
|
74
|
+
return {
|
|
75
|
+
voice_id: voice.voice_id,
|
|
76
|
+
name: voice.name,
|
|
77
|
+
category: voice.category,
|
|
78
|
+
description: voice.description ?? null,
|
|
79
|
+
labels: voice.labels ?? {},
|
|
80
|
+
preview_url: voice.preview_url ?? null,
|
|
81
|
+
settings: voice.settings ?? null,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export async function elevenlabsTextToSpeech(args) {
|
|
85
|
+
const apiKey = requireKey(args);
|
|
86
|
+
const voiceId = String(args.voice_id ?? "").trim();
|
|
87
|
+
const text = String(args.text ?? "").trim();
|
|
88
|
+
if (!voiceId)
|
|
89
|
+
throw new Error("voice_id is required.");
|
|
90
|
+
if (!text)
|
|
91
|
+
throw new Error("text is required.");
|
|
92
|
+
if (text.length > 5000)
|
|
93
|
+
throw new Error("text must be 5000 characters or fewer.");
|
|
94
|
+
const modelId = String(args.model_id ?? "eleven_monolingual_v1");
|
|
95
|
+
const outputFormat = String(args.output_format ?? "mp3_44100_128");
|
|
96
|
+
const voiceSettings = {
|
|
97
|
+
stability: Math.min(1, Math.max(0, Number(args.stability ?? 0.5))),
|
|
98
|
+
similarity_boost: Math.min(1, Math.max(0, Number(args.similarity_boost ?? 0.75))),
|
|
99
|
+
};
|
|
100
|
+
if (args.style !== undefined)
|
|
101
|
+
voiceSettings.style = Math.min(1, Math.max(0, Number(args.style)));
|
|
102
|
+
if (args.use_speaker_boost !== undefined)
|
|
103
|
+
voiceSettings.use_speaker_boost = Boolean(args.use_speaker_boost);
|
|
104
|
+
const path = `/text-to-speech/${encodeURIComponent(voiceId)}?output_format=${encodeURIComponent(outputFormat)}`;
|
|
105
|
+
const res = await elPost(apiKey, path, {
|
|
106
|
+
text,
|
|
107
|
+
model_id: modelId,
|
|
108
|
+
voice_settings: voiceSettings,
|
|
109
|
+
});
|
|
110
|
+
// Return audio as base64 for transport over JSON
|
|
111
|
+
const audioBuffer = await res.arrayBuffer();
|
|
112
|
+
const base64 = Buffer.from(audioBuffer).toString("base64");
|
|
113
|
+
const contentType = res.headers?.get("content-type") ?? "audio/mpeg";
|
|
114
|
+
return {
|
|
115
|
+
success: true,
|
|
116
|
+
voice_id: voiceId,
|
|
117
|
+
model_id: modelId,
|
|
118
|
+
output_format: outputFormat,
|
|
119
|
+
character_count: text.length,
|
|
120
|
+
content_type: contentType,
|
|
121
|
+
audio_base64: base64,
|
|
122
|
+
note: "Decode audio_base64 and write as binary to play the audio file.",
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export async function elevenlabsGetModels(args) {
|
|
126
|
+
const apiKey = requireKey(args);
|
|
127
|
+
const models = await elGet(apiKey, "/models");
|
|
128
|
+
return {
|
|
129
|
+
count: models.length,
|
|
130
|
+
models: models.map((m) => ({
|
|
131
|
+
model_id: m.model_id,
|
|
132
|
+
name: m.name,
|
|
133
|
+
description: m.description ?? null,
|
|
134
|
+
can_do_text_to_speech: m.can_do_text_to_speech,
|
|
135
|
+
can_do_voice_conversion: m.can_do_voice_conversion,
|
|
136
|
+
languages: m.languages.map((l) => ({ id: l.language_id, name: l.name })),
|
|
137
|
+
})),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export async function elevenlabsGetHistory(args) {
|
|
141
|
+
const apiKey = requireKey(args);
|
|
142
|
+
const pageSize = Math.min(1000, Math.max(1, Number(args.page_size ?? 30)));
|
|
143
|
+
const params = new URLSearchParams({ page_size: String(pageSize) });
|
|
144
|
+
if (args.start_after_history_item_id) {
|
|
145
|
+
params.set("start_after_history_item_id", String(args.start_after_history_item_id));
|
|
146
|
+
}
|
|
147
|
+
if (args.voice_id) {
|
|
148
|
+
params.set("voice_id", String(args.voice_id));
|
|
149
|
+
}
|
|
150
|
+
const data = await elGet(apiKey, `/history?${params.toString()}`);
|
|
151
|
+
return {
|
|
152
|
+
count: data.history.length,
|
|
153
|
+
has_more: data.has_more,
|
|
154
|
+
last_history_item_id: data.last_history_item_id ?? null,
|
|
155
|
+
items: data.history.map((h) => ({
|
|
156
|
+
history_item_id: h.history_item_id,
|
|
157
|
+
voice_id: h.voice_id,
|
|
158
|
+
voice_name: h.voice_name,
|
|
159
|
+
text: h.text,
|
|
160
|
+
date: new Date(h.date_unix * 1000).toISOString(),
|
|
161
|
+
character_count: h.character_count_change_to - h.character_count_change_from,
|
|
162
|
+
state: h.state,
|
|
163
|
+
})),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=elevenlabs-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevenlabs-tool.js","sourceRoot":"","sources":["../src/elevenlabs-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function etsySearchListings(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function etsyGetListing(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function etsyGetShop(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function etsyGetShopListings(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
export declare function etsySearchShops(args: Record<string, unknown>): Promise<unknown>;
|
|
6
|
+
//# sourceMappingURL=etsy-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"etsy-tool.d.ts","sourceRoot":"","sources":["../src/etsy-tool.ts"],"names":[],"mappings":"AAoEA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBxF;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAUpF;AAID,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAQjF;AAID,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAazF;AAID,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAYrF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// βββ Etsy Open API v3 Tool βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
2
|
+
// Covers listings, shops, and reviews via the Etsy Open API v3.
|
|
3
|
+
// Auth: API key (x-api-key header).
|
|
4
|
+
// Base URL: https://openapi.etsy.com/v3
|
|
5
|
+
// No external dependencies - native fetch only.
|
|
6
|
+
const ETSY_BASE = "https://openapi.etsy.com/v3";
|
|
7
|
+
// βββ Helpers ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
8
|
+
function requireConfig(args) {
|
|
9
|
+
const api_key = String(args.api_key ?? "").trim();
|
|
10
|
+
if (!api_key)
|
|
11
|
+
return { error: "api_key is required (Etsy API key)." };
|
|
12
|
+
return { api_key };
|
|
13
|
+
}
|
|
14
|
+
async function etsyFetch(cfg, path, query) {
|
|
15
|
+
const url = new URL(`${ETSY_BASE}${path}`);
|
|
16
|
+
if (query) {
|
|
17
|
+
for (const [k, v] of Object.entries(query)) {
|
|
18
|
+
if (v !== undefined)
|
|
19
|
+
url.searchParams.set(k, String(v));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
let response;
|
|
23
|
+
try {
|
|
24
|
+
response = await fetch(url.toString(), {
|
|
25
|
+
headers: {
|
|
26
|
+
"x-api-key": cfg.api_key,
|
|
27
|
+
"Accept": "application/json",
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
return { error: `Network error: ${err instanceof Error ? err.message : String(err)}` };
|
|
33
|
+
}
|
|
34
|
+
if (response.status === 429) {
|
|
35
|
+
const retryAfter = response.headers.get("Retry-After");
|
|
36
|
+
return { error: "Etsy rate limit reached.", retry_after: retryAfter ? Number(retryAfter) : 10, status: 429 };
|
|
37
|
+
}
|
|
38
|
+
if (response.status === 403) {
|
|
39
|
+
return { error: "Etsy auth failed: invalid or missing API key.", status: 403 };
|
|
40
|
+
}
|
|
41
|
+
let data;
|
|
42
|
+
try {
|
|
43
|
+
data = await response.json();
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return { error: `Non-JSON response (HTTP ${response.status})`, status: response.status };
|
|
47
|
+
}
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
const d = data;
|
|
50
|
+
return { error: d["error"] ?? d["message"] ?? "Etsy API error", status: response.status };
|
|
51
|
+
}
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
// βββ etsy_search_listings βββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
55
|
+
export async function etsySearchListings(args) {
|
|
56
|
+
const cfg = requireConfig(args);
|
|
57
|
+
if ("error" in cfg)
|
|
58
|
+
return cfg;
|
|
59
|
+
const keywords = String(args.keywords ?? "").trim();
|
|
60
|
+
if (!keywords)
|
|
61
|
+
return { error: "keywords is required for searching listings." };
|
|
62
|
+
return etsyFetch(cfg, "/application/listings/active", {
|
|
63
|
+
keywords,
|
|
64
|
+
limit: args.limit ? Number(args.limit) : 25,
|
|
65
|
+
offset: args.offset ? Number(args.offset) : undefined,
|
|
66
|
+
sort_on: args.sort_on ? String(args.sort_on) : undefined,
|
|
67
|
+
sort_order: args.sort_order ? String(args.sort_order) : undefined,
|
|
68
|
+
min_price: args.min_price ? Number(args.min_price) : undefined,
|
|
69
|
+
max_price: args.max_price ? Number(args.max_price) : undefined,
|
|
70
|
+
taxonomy_id: args.taxonomy_id ? Number(args.taxonomy_id) : undefined,
|
|
71
|
+
location: args.location ? String(args.location) : undefined,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// βββ etsy_get_listing βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
75
|
+
export async function etsyGetListing(args) {
|
|
76
|
+
const cfg = requireConfig(args);
|
|
77
|
+
if ("error" in cfg)
|
|
78
|
+
return cfg;
|
|
79
|
+
const listing_id = String(args.listing_id ?? "").trim();
|
|
80
|
+
if (!listing_id)
|
|
81
|
+
return { error: "listing_id is required." };
|
|
82
|
+
return etsyFetch(cfg, `/application/listings/${encodeURIComponent(listing_id)}`, {
|
|
83
|
+
includes: args.includes ? String(args.includes) : undefined,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// βββ etsy_get_shop ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
87
|
+
export async function etsyGetShop(args) {
|
|
88
|
+
const cfg = requireConfig(args);
|
|
89
|
+
if ("error" in cfg)
|
|
90
|
+
return cfg;
|
|
91
|
+
const shop_id = String(args.shop_id ?? "").trim();
|
|
92
|
+
if (!shop_id)
|
|
93
|
+
return { error: "shop_id is required." };
|
|
94
|
+
return etsyFetch(cfg, `/application/shops/${encodeURIComponent(shop_id)}`);
|
|
95
|
+
}
|
|
96
|
+
// βββ etsy_get_shop_listings βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
97
|
+
export async function etsyGetShopListings(args) {
|
|
98
|
+
const cfg = requireConfig(args);
|
|
99
|
+
if ("error" in cfg)
|
|
100
|
+
return cfg;
|
|
101
|
+
const shop_id = String(args.shop_id ?? "").trim();
|
|
102
|
+
if (!shop_id)
|
|
103
|
+
return { error: "shop_id is required." };
|
|
104
|
+
return etsyFetch(cfg, `/application/shops/${encodeURIComponent(shop_id)}/listings/active`, {
|
|
105
|
+
limit: args.limit ? Number(args.limit) : 25,
|
|
106
|
+
offset: args.offset ? Number(args.offset) : undefined,
|
|
107
|
+
sort_on: args.sort_on ? String(args.sort_on) : undefined,
|
|
108
|
+
sort_order: args.sort_order ? String(args.sort_order) : undefined,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// βββ etsy_search_shops ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
112
|
+
export async function etsySearchShops(args) {
|
|
113
|
+
const cfg = requireConfig(args);
|
|
114
|
+
if ("error" in cfg)
|
|
115
|
+
return cfg;
|
|
116
|
+
const shop_name = String(args.shop_name ?? "").trim();
|
|
117
|
+
if (!shop_name)
|
|
118
|
+
return { error: "shop_name is required." };
|
|
119
|
+
return etsyFetch(cfg, "/application/shops", {
|
|
120
|
+
shop_name,
|
|
121
|
+
limit: args.limit ? Number(args.limit) : 25,
|
|
122
|
+
offset: args.offset ? Number(args.offset) : undefined,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=etsy-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"etsy-tool.js","sourceRoot":"","sources":["../src/etsy-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function exchangerateLatest(args: Record<string, unknown>): Promise<unknown>;
|
|
2
|
+
export declare function exchangerateConvert(args: Record<string, unknown>): Promise<unknown>;
|
|
3
|
+
export declare function exchangerateHistorical(args: Record<string, unknown>): Promise<unknown>;
|
|
4
|
+
export declare function exchangerateCodes(args: Record<string, unknown>): Promise<unknown>;
|
|
5
|
+
//# sourceMappingURL=exchangerate-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exchangerate-tool.d.ts","sourceRoot":"","sources":["../src/exchangerate-tool.ts"],"names":[],"mappings":"AAgCA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBxF;AAGD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCzF;AAGD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB5F;AAGD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAevF"}
|