@tool-bridge/server 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/airtable-V6446SVY.js +792 -0
- package/dist/alt_text_generator_ai-HV7JZPDT.js +72 -0
- package/dist/amap-TTTVB6WS.js +755 -0
- package/dist/anthropic-JH3RA363.js +224 -0
- package/dist/apify-ETNN7ITU.js +262 -0
- package/dist/brave_search-3DDR2MMB.js +322 -0
- package/dist/chunk-CSJEZHQO.js +252 -0
- package/dist/chunk-JLTYA2B3.js +20121 -0
- package/dist/chunk-K7FVSFUX.js +333 -0
- package/dist/{chunk-6SMIQ6QU.js → chunk-KGYJEEBI.js} +2770 -21574
- package/dist/circleci-MX3TX3HC.js +409 -0
- package/dist/clerk-MRPORVF4.js +1036 -0
- package/dist/cloudflare_dns-OWP7DD7L.js +605 -0
- package/dist/cohere-GPECP66S.js +197 -0
- package/dist/confluence-BN7LZ6BC.js +436 -0
- package/dist/convertapi-SBEOFOFQ.js +161 -0
- package/dist/currencyapi-P2YY7Y7P.js +306 -0
- package/dist/deepseek-MWB3NYIN.js +205 -0
- package/dist/docker_hub-3JSCIGQ3.js +946 -0
- package/dist/dropbox-RFIBDAXO.js +1308 -0
- package/dist/dub-YVP57ELQ.js +706 -0
- package/dist/e2b-NFSUHTZR.js +305 -0
- package/dist/exa-KTDY6IV3.js +360 -0
- package/dist/fal_ai-OCUENLNQ.js +405 -0
- package/dist/feishu-5CWBQ7E5.js +225 -0
- package/dist/feishu_custom_bot-ZJR22OK6.js +240 -0
- package/dist/figma-YULGANSA.js +798 -0
- package/dist/firehydrant-2V6YSYAP.js +573 -0
- package/dist/fixer-LTCDB3CJ.js +171 -0
- package/dist/fly-IXPKMAML.js +478 -0
- package/dist/front-KRFB4M5X.js +379 -0
- package/dist/geocodio-VVURKYHQ.js +236 -0
- package/dist/ghost-6J2RIOUB.js +341 -0
- package/dist/github-5Z6KQRYH.js +5410 -0
- package/dist/gmail-KU4NZ7VA.js +1894 -0
- package/dist/googlecalendar-X44DFFXG.js +2539 -0
- package/dist/googledocs-WSGLPKSF.js +1322 -0
- package/dist/grafana-4PKSSDXY.js +817 -0
- package/dist/graphhopper-DF65ZNGK.js +336 -0
- package/dist/index.d.ts +181 -2
- package/dist/index.js +2 -1
- package/dist/ip2proxy-UCAQ5P2J.js +118 -0
- package/dist/ipgeolocation_io-UX6FCA2S.js +333 -0
- package/dist/ipqualityscore-MKTRXIZJ.js +287 -0
- package/dist/jina_ai-MRHPCSV5.js +119 -0
- package/dist/jira-EG7ZPOIW.js +627 -0
- package/dist/langsmith-FNO3RCOZ.js +597 -0
- package/dist/lemlist-SN6BJHSG.js +298 -0
- package/dist/linear-H3VU4PSD.js +2163 -0
- package/dist/logsnag-OY2JJT2H.js +167 -0
- package/dist/main.js +246 -2
- package/dist/mattermost-C5SQ7PGD.js +320 -0
- package/dist/mem0-LMLE5BFC.js +567 -0
- package/dist/memos-UWFAMBZC.js +781 -0
- package/dist/metabase-SRYDSDJ6.js +365 -0
- package/dist/mistral_ai-YNIJ7VDM.js +1195 -0
- package/dist/mother_duck-CPGOFEXE.js +322 -0
- package/dist/ngrok-CDJFBSOM.js +375 -0
- package/dist/notes-DIVFH3P3.js +109 -0
- package/dist/notion-HGDKS4HK.js +945 -0
- package/dist/open_exchange_rates-COHHYJDD.js +216 -0
- package/dist/openai-4TRT66GW.js +795 -0
- package/dist/opengraph_io-YKVW4PXI.js +377 -0
- package/dist/openrouter-6CV7B7V5.js +444 -0
- package/dist/outline-YWDUK5F7.js +604 -0
- package/dist/paddle-MEU7HWDZ.js +464 -0
- package/dist/perplexity-MRQUDBIC.js +238 -0
- package/dist/pinecone-JI7X2TAF.js +599 -0
- package/dist/pipedrive-6JQPAW23.js +453 -0
- package/dist/polar-7BF56CMC.js +400 -0
- package/dist/posthog-YPU5ADEN.js +3462 -0
- package/dist/postmark-BEU5OFKU.js +441 -0
- package/dist/prerender-UT5GOOZH.js +180 -0
- package/dist/pubmed-3SGOE24Q.js +1052 -0
- package/dist/railway-CEK4GLRQ.js +452 -0
- package/dist/readwise-DXQUQU67.js +482 -0
- package/dist/render-7TGAU5AW.js +473 -0
- package/dist/replicate-VICFSQ5A.js +347 -0
- package/dist/resend-3E76WK3O.js +100 -0
- package/dist/rootly-36GY46BY.js +345 -0
- package/dist/scrapfly-VDVUYAHX.js +289 -0
- package/dist/scrapingbee-3KTPMAVY.js +247 -0
- package/dist/screenshot_fyi-LKG62C3J.js +116 -0
- package/dist/semantic_scholar-4WREECYO.js +626 -0
- package/dist/sentry-HUQTGXOV.js +1139 -0
- package/dist/shodan-SGRKU4KS.js +303 -0
- package/dist/shopify-YCZ4L5HT.js +620 -0
- package/dist/stripe-OEBKMELB.js +583 -0
- package/dist/supabase-I3DBY7L4.js +937 -0
- package/dist/tavily-B2YHCNRD.js +349 -0
- package/dist/telegram-2VYJELZX.js +1773 -0
- package/dist/telnyx-HHXD3CXL.js +237 -0
- package/dist/todoist-PHFDEEIS.js +672 -0
- package/dist/trello-WUSAK6YN.js +1091 -0
- package/dist/turso-FW56U2B3.js +432 -0
- package/dist/twilio-M5JI7XHA.js +321 -0
- package/dist/umami-HAYODRC4.js +411 -0
- package/dist/unsplash-EDPTNEHJ.js +364 -0
- package/dist/upstash_redis-GC2CLIWD.js +299 -0
- package/dist/uptimerobot-XMSNYLIT.js +481 -0
- package/dist/v2ex-KU4ECD65.js +672 -0
- package/dist/vercel-THPCEFHW.js +1096 -0
- package/dist/wolfram_alpha_api-WHHTH4GU.js +212 -0
- package/dist/wordpress-O6TQEQNF.js +822 -0
- package/dist/workos-A3VHHWI3.js +681 -0
- package/dist/zhihu-BJAI64YJ.js +273 -0
- package/package.json +5 -4
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createProviderPlugin,
|
|
3
|
+
guardedFetch,
|
|
4
|
+
requireApiKey,
|
|
5
|
+
upstreamError
|
|
6
|
+
} from "./chunk-CSJEZHQO.js";
|
|
7
|
+
import "./chunk-K7FVSFUX.js";
|
|
8
|
+
import {
|
|
9
|
+
external_exports
|
|
10
|
+
} from "./chunk-JLTYA2B3.js";
|
|
11
|
+
import "./chunk-MLKGABMK.js";
|
|
12
|
+
|
|
13
|
+
// ../plugins/src/logsnag/api.ts
|
|
14
|
+
var SERVICE = "logsnag";
|
|
15
|
+
var API_BASE = "https://api.logsnag.com/v1";
|
|
16
|
+
async function readPayload(response) {
|
|
17
|
+
const text2 = await response.text().catch(() => "");
|
|
18
|
+
if (text2 === "") return void 0;
|
|
19
|
+
if (response.headers.get("content-type")?.includes("json") !== true) return text2;
|
|
20
|
+
try {
|
|
21
|
+
return JSON.parse(text2);
|
|
22
|
+
} catch {
|
|
23
|
+
return text2;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function text(value) {
|
|
27
|
+
if (typeof value !== "string") return void 0;
|
|
28
|
+
return value.trim() || void 0;
|
|
29
|
+
}
|
|
30
|
+
function errorMessage(payload, status) {
|
|
31
|
+
const direct = text(payload);
|
|
32
|
+
if (direct !== void 0) return direct;
|
|
33
|
+
if (typeof payload === "object" && payload !== null && !Array.isArray(payload)) {
|
|
34
|
+
const record = payload;
|
|
35
|
+
for (const key of ["message", "error", "detail"]) {
|
|
36
|
+
const value = text(record[key]);
|
|
37
|
+
if (value !== void 0) return value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return `LogSnag request failed with ${status}`;
|
|
41
|
+
}
|
|
42
|
+
async function request(path, method, body, ctx) {
|
|
43
|
+
const response = await guardedFetch(`${API_BASE}/${path}`, {
|
|
44
|
+
method,
|
|
45
|
+
headers: {
|
|
46
|
+
"accept": "application/json",
|
|
47
|
+
"authorization": `Bearer ${requireApiKey(ctx, SERVICE)}`,
|
|
48
|
+
"content-type": "application/json"
|
|
49
|
+
},
|
|
50
|
+
body: JSON.stringify(body)
|
|
51
|
+
});
|
|
52
|
+
const payload = await readPayload(response);
|
|
53
|
+
if (!response.ok) {
|
|
54
|
+
throw upstreamError(response.status, errorMessage(payload, response.status));
|
|
55
|
+
}
|
|
56
|
+
return { ok: true, status: response.status, ...payload === void 0 ? {} : { payload } };
|
|
57
|
+
}
|
|
58
|
+
async function publishEvent(input, ctx) {
|
|
59
|
+
return request("log", "POST", input, ctx);
|
|
60
|
+
}
|
|
61
|
+
async function identifyUser(input, ctx) {
|
|
62
|
+
return request("identify", "POST", input, ctx);
|
|
63
|
+
}
|
|
64
|
+
async function publishInsight(input, ctx) {
|
|
65
|
+
return request("insight", "POST", input, ctx);
|
|
66
|
+
}
|
|
67
|
+
async function mutateInsight(input, ctx) {
|
|
68
|
+
return request("insight", "PATCH", input, ctx);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ../plugins/src/logsnag/schema.ts
|
|
72
|
+
var publishEventInput = external_exports.strictObject({
|
|
73
|
+
project: external_exports.string().min(1).describe("The LogSnag project name."),
|
|
74
|
+
channel: external_exports.string().min(1).describe("The LogSnag channel name."),
|
|
75
|
+
event: external_exports.string().min(1).describe("The event name."),
|
|
76
|
+
description: external_exports.string().describe("The optional event description.").optional(),
|
|
77
|
+
icon: external_exports.string().describe("The optional emoji or emoji shortcode shown with the event.").optional(),
|
|
78
|
+
notify: external_exports.boolean().describe("Whether LogSnag should send a push notification.").optional(),
|
|
79
|
+
tags: external_exports.record(external_exports.string(), external_exports.union([external_exports.string().describe("A string value."), external_exports.number().describe("A numeric value."), external_exports.boolean().describe("A boolean value.")]).describe("A string, number, or boolean value accepted by LogSnag.")).describe("A LogSnag key-value object.").optional(),
|
|
80
|
+
parser: external_exports.enum(["markdown", "text"]).describe("The parser LogSnag should apply to the description.").optional(),
|
|
81
|
+
user_id: external_exports.string().describe("The optional user identifier associated with the event.").optional(),
|
|
82
|
+
timestamp: external_exports.number().describe("The optional Unix timestamp in seconds for historical events.").optional()
|
|
83
|
+
}).describe("The payload for publishing a LogSnag event.");
|
|
84
|
+
var publishEventOutput = external_exports.strictObject({
|
|
85
|
+
ok: external_exports.boolean().describe("Whether LogSnag accepted the request."),
|
|
86
|
+
status: external_exports.int().describe("The upstream HTTP status code returned by LogSnag."),
|
|
87
|
+
payload: external_exports.unknown().describe("The parsed JSON response body returned by LogSnag, when present.").optional()
|
|
88
|
+
}).describe("The result returned after LogSnag accepts the request.");
|
|
89
|
+
var identifyUserInput = external_exports.strictObject({
|
|
90
|
+
project: external_exports.string().min(1).describe("The LogSnag project name."),
|
|
91
|
+
user_id: external_exports.string().min(1).describe("The user identifier to update."),
|
|
92
|
+
properties: external_exports.record(external_exports.string(), external_exports.union([external_exports.string().describe("A string value."), external_exports.number().describe("A numeric value."), external_exports.boolean().describe("A boolean value.")]).describe("A string, number, or boolean value accepted by LogSnag.")).describe("A LogSnag key-value object.")
|
|
93
|
+
}).describe("The payload for updating a LogSnag user profile.");
|
|
94
|
+
var identifyUserOutput = external_exports.strictObject({
|
|
95
|
+
ok: external_exports.boolean().describe("Whether LogSnag accepted the request."),
|
|
96
|
+
status: external_exports.int().describe("The upstream HTTP status code returned by LogSnag."),
|
|
97
|
+
payload: external_exports.unknown().describe("The parsed JSON response body returned by LogSnag, when present.").optional()
|
|
98
|
+
}).describe("The result returned after LogSnag accepts the request.");
|
|
99
|
+
var publishInsightInput = external_exports.strictObject({
|
|
100
|
+
project: external_exports.string().min(1).describe("The LogSnag project name."),
|
|
101
|
+
title: external_exports.string().min(1).describe("The insight title."),
|
|
102
|
+
value: external_exports.union([external_exports.string().describe("A string insight value."), external_exports.number().describe("A numeric insight value.")]).describe("The insight value."),
|
|
103
|
+
icon: external_exports.string().describe("The optional emoji or emoji shortcode shown with the insight.").optional()
|
|
104
|
+
}).describe("The payload for publishing a LogSnag insight value.");
|
|
105
|
+
var publishInsightOutput = external_exports.strictObject({
|
|
106
|
+
ok: external_exports.boolean().describe("Whether LogSnag accepted the request."),
|
|
107
|
+
status: external_exports.int().describe("The upstream HTTP status code returned by LogSnag."),
|
|
108
|
+
payload: external_exports.unknown().describe("The parsed JSON response body returned by LogSnag, when present.").optional()
|
|
109
|
+
}).describe("The result returned after LogSnag accepts the request.");
|
|
110
|
+
var mutateInsightInput = external_exports.strictObject({
|
|
111
|
+
project: external_exports.string().min(1).describe("The LogSnag project name."),
|
|
112
|
+
title: external_exports.string().min(1).describe("The insight title."),
|
|
113
|
+
value: external_exports.strictObject({
|
|
114
|
+
$inc: external_exports.number().describe("The numeric amount to increment or decrement the insight value by.")
|
|
115
|
+
}).describe("The LogSnag mutation object."),
|
|
116
|
+
icon: external_exports.string().describe("The optional emoji or emoji shortcode shown with the insight.").optional()
|
|
117
|
+
}).describe("The payload for mutating a numeric LogSnag insight.");
|
|
118
|
+
var mutateInsightOutput = external_exports.strictObject({
|
|
119
|
+
ok: external_exports.boolean().describe("Whether LogSnag accepted the request."),
|
|
120
|
+
status: external_exports.int().describe("The upstream HTTP status code returned by LogSnag."),
|
|
121
|
+
payload: external_exports.unknown().describe("The parsed JSON response body returned by LogSnag, when present.").optional()
|
|
122
|
+
}).describe("The result returned after LogSnag accepts the request.");
|
|
123
|
+
var logsnagActions = {
|
|
124
|
+
publish_event: {
|
|
125
|
+
description: "Publish an event to a LogSnag project channel.",
|
|
126
|
+
effect: "write",
|
|
127
|
+
inputSchema: publishEventInput,
|
|
128
|
+
outputSchema: external_exports.toJSONSchema(publishEventOutput, { io: "output", unrepresentable: "any" })
|
|
129
|
+
},
|
|
130
|
+
identify_user: {
|
|
131
|
+
description: "Add or update key-value properties on a LogSnag user profile.",
|
|
132
|
+
effect: "read",
|
|
133
|
+
inputSchema: identifyUserInput,
|
|
134
|
+
outputSchema: external_exports.toJSONSchema(identifyUserOutput, { io: "output", unrepresentable: "any" })
|
|
135
|
+
},
|
|
136
|
+
publish_insight: {
|
|
137
|
+
description: "Publish the latest value for a LogSnag real-time insight.",
|
|
138
|
+
effect: "write",
|
|
139
|
+
inputSchema: publishInsightInput,
|
|
140
|
+
outputSchema: external_exports.toJSONSchema(publishInsightOutput, { io: "output", unrepresentable: "any" })
|
|
141
|
+
},
|
|
142
|
+
mutate_insight: {
|
|
143
|
+
description: "Increment or decrement an existing numeric LogSnag insight.",
|
|
144
|
+
effect: "write",
|
|
145
|
+
inputSchema: mutateInsightInput,
|
|
146
|
+
outputSchema: external_exports.toJSONSchema(mutateInsightOutput, { io: "output", unrepresentable: "any" })
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// ../plugins/src/logsnag/index.ts
|
|
151
|
+
function createLogsnagPlugin() {
|
|
152
|
+
return createProviderPlugin({
|
|
153
|
+
description: "LogSnag",
|
|
154
|
+
actions: logsnagActions,
|
|
155
|
+
handlers: {
|
|
156
|
+
publish_event: publishEvent,
|
|
157
|
+
identify_user: identifyUser,
|
|
158
|
+
publish_insight: publishInsight,
|
|
159
|
+
mutate_insight: mutateInsight
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
var logsnag_default = createLogsnagPlugin();
|
|
164
|
+
export {
|
|
165
|
+
createLogsnagPlugin,
|
|
166
|
+
logsnag_default as default
|
|
167
|
+
};
|
package/dist/main.js
CHANGED
|
@@ -2,12 +2,256 @@
|
|
|
2
2
|
import {
|
|
3
3
|
configFromEnv,
|
|
4
4
|
createTbServer
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KGYJEEBI.js";
|
|
6
|
+
import "./chunk-JLTYA2B3.js";
|
|
6
7
|
import "./chunk-MLKGABMK.js";
|
|
7
8
|
|
|
9
|
+
// ../plugins/src/registry.generated.ts
|
|
10
|
+
var BUILTIN_PLUGIN_LOADERS = {
|
|
11
|
+
airtable: () => import("./airtable-V6446SVY.js"),
|
|
12
|
+
alt_text_generator_ai: () => import("./alt_text_generator_ai-HV7JZPDT.js"),
|
|
13
|
+
amap: () => import("./amap-TTTVB6WS.js"),
|
|
14
|
+
anthropic: () => import("./anthropic-JH3RA363.js"),
|
|
15
|
+
apify: () => import("./apify-ETNN7ITU.js"),
|
|
16
|
+
brave_search: () => import("./brave_search-3DDR2MMB.js"),
|
|
17
|
+
circleci: () => import("./circleci-MX3TX3HC.js"),
|
|
18
|
+
clerk: () => import("./clerk-MRPORVF4.js"),
|
|
19
|
+
cloudflare_dns: () => import("./cloudflare_dns-OWP7DD7L.js"),
|
|
20
|
+
cohere: () => import("./cohere-GPECP66S.js"),
|
|
21
|
+
confluence: () => import("./confluence-BN7LZ6BC.js"),
|
|
22
|
+
convertapi: () => import("./convertapi-SBEOFOFQ.js"),
|
|
23
|
+
currencyapi: () => import("./currencyapi-P2YY7Y7P.js"),
|
|
24
|
+
deepseek: () => import("./deepseek-MWB3NYIN.js"),
|
|
25
|
+
docker_hub: () => import("./docker_hub-3JSCIGQ3.js"),
|
|
26
|
+
dropbox: () => import("./dropbox-RFIBDAXO.js"),
|
|
27
|
+
dub: () => import("./dub-YVP57ELQ.js"),
|
|
28
|
+
e2b: () => import("./e2b-NFSUHTZR.js"),
|
|
29
|
+
exa: () => import("./exa-KTDY6IV3.js"),
|
|
30
|
+
fal_ai: () => import("./fal_ai-OCUENLNQ.js"),
|
|
31
|
+
feishu: () => import("./feishu-5CWBQ7E5.js"),
|
|
32
|
+
feishu_custom_bot: () => import("./feishu_custom_bot-ZJR22OK6.js"),
|
|
33
|
+
figma: () => import("./figma-YULGANSA.js"),
|
|
34
|
+
firehydrant: () => import("./firehydrant-2V6YSYAP.js"),
|
|
35
|
+
fixer: () => import("./fixer-LTCDB3CJ.js"),
|
|
36
|
+
fly: () => import("./fly-IXPKMAML.js"),
|
|
37
|
+
front: () => import("./front-KRFB4M5X.js"),
|
|
38
|
+
geocodio: () => import("./geocodio-VVURKYHQ.js"),
|
|
39
|
+
ghost: () => import("./ghost-6J2RIOUB.js"),
|
|
40
|
+
github: () => import("./github-5Z6KQRYH.js"),
|
|
41
|
+
gmail: () => import("./gmail-KU4NZ7VA.js"),
|
|
42
|
+
googlecalendar: () => import("./googlecalendar-X44DFFXG.js"),
|
|
43
|
+
googledocs: () => import("./googledocs-WSGLPKSF.js"),
|
|
44
|
+
grafana: () => import("./grafana-4PKSSDXY.js"),
|
|
45
|
+
graphhopper: () => import("./graphhopper-DF65ZNGK.js"),
|
|
46
|
+
ip2proxy: () => import("./ip2proxy-UCAQ5P2J.js"),
|
|
47
|
+
ipgeolocation_io: () => import("./ipgeolocation_io-UX6FCA2S.js"),
|
|
48
|
+
ipqualityscore: () => import("./ipqualityscore-MKTRXIZJ.js"),
|
|
49
|
+
jina_ai: () => import("./jina_ai-MRHPCSV5.js"),
|
|
50
|
+
jira: () => import("./jira-EG7ZPOIW.js"),
|
|
51
|
+
langsmith: () => import("./langsmith-FNO3RCOZ.js"),
|
|
52
|
+
lemlist: () => import("./lemlist-SN6BJHSG.js"),
|
|
53
|
+
linear: () => import("./linear-H3VU4PSD.js"),
|
|
54
|
+
logsnag: () => import("./logsnag-OY2JJT2H.js"),
|
|
55
|
+
mattermost: () => import("./mattermost-C5SQ7PGD.js"),
|
|
56
|
+
mem0: () => import("./mem0-LMLE5BFC.js"),
|
|
57
|
+
memos: () => import("./memos-UWFAMBZC.js"),
|
|
58
|
+
metabase: () => import("./metabase-SRYDSDJ6.js"),
|
|
59
|
+
mistral_ai: () => import("./mistral_ai-YNIJ7VDM.js"),
|
|
60
|
+
mother_duck: () => import("./mother_duck-CPGOFEXE.js"),
|
|
61
|
+
ngrok: () => import("./ngrok-CDJFBSOM.js"),
|
|
62
|
+
notes: () => import("./notes-DIVFH3P3.js"),
|
|
63
|
+
notion: () => import("./notion-HGDKS4HK.js"),
|
|
64
|
+
open_exchange_rates: () => import("./open_exchange_rates-COHHYJDD.js"),
|
|
65
|
+
openai: () => import("./openai-4TRT66GW.js"),
|
|
66
|
+
opengraph_io: () => import("./opengraph_io-YKVW4PXI.js"),
|
|
67
|
+
openrouter: () => import("./openrouter-6CV7B7V5.js"),
|
|
68
|
+
outline: () => import("./outline-YWDUK5F7.js"),
|
|
69
|
+
paddle: () => import("./paddle-MEU7HWDZ.js"),
|
|
70
|
+
perplexity: () => import("./perplexity-MRQUDBIC.js"),
|
|
71
|
+
pinecone: () => import("./pinecone-JI7X2TAF.js"),
|
|
72
|
+
pipedrive: () => import("./pipedrive-6JQPAW23.js"),
|
|
73
|
+
polar: () => import("./polar-7BF56CMC.js"),
|
|
74
|
+
posthog: () => import("./posthog-YPU5ADEN.js"),
|
|
75
|
+
postmark: () => import("./postmark-BEU5OFKU.js"),
|
|
76
|
+
prerender: () => import("./prerender-UT5GOOZH.js"),
|
|
77
|
+
pubmed: () => import("./pubmed-3SGOE24Q.js"),
|
|
78
|
+
railway: () => import("./railway-CEK4GLRQ.js"),
|
|
79
|
+
readwise: () => import("./readwise-DXQUQU67.js"),
|
|
80
|
+
render: () => import("./render-7TGAU5AW.js"),
|
|
81
|
+
replicate: () => import("./replicate-VICFSQ5A.js"),
|
|
82
|
+
resend: () => import("./resend-3E76WK3O.js"),
|
|
83
|
+
rootly: () => import("./rootly-36GY46BY.js"),
|
|
84
|
+
scrapfly: () => import("./scrapfly-VDVUYAHX.js"),
|
|
85
|
+
scrapingbee: () => import("./scrapingbee-3KTPMAVY.js"),
|
|
86
|
+
screenshot_fyi: () => import("./screenshot_fyi-LKG62C3J.js"),
|
|
87
|
+
semantic_scholar: () => import("./semantic_scholar-4WREECYO.js"),
|
|
88
|
+
sentry: () => import("./sentry-HUQTGXOV.js"),
|
|
89
|
+
shodan: () => import("./shodan-SGRKU4KS.js"),
|
|
90
|
+
shopify: () => import("./shopify-YCZ4L5HT.js"),
|
|
91
|
+
stripe: () => import("./stripe-OEBKMELB.js"),
|
|
92
|
+
supabase: () => import("./supabase-I3DBY7L4.js"),
|
|
93
|
+
tavily: () => import("./tavily-B2YHCNRD.js"),
|
|
94
|
+
telegram: () => import("./telegram-2VYJELZX.js"),
|
|
95
|
+
telnyx: () => import("./telnyx-HHXD3CXL.js"),
|
|
96
|
+
todoist: () => import("./todoist-PHFDEEIS.js"),
|
|
97
|
+
trello: () => import("./trello-WUSAK6YN.js"),
|
|
98
|
+
turso: () => import("./turso-FW56U2B3.js"),
|
|
99
|
+
twilio: () => import("./twilio-M5JI7XHA.js"),
|
|
100
|
+
umami: () => import("./umami-HAYODRC4.js"),
|
|
101
|
+
unsplash: () => import("./unsplash-EDPTNEHJ.js"),
|
|
102
|
+
upstash_redis: () => import("./upstash_redis-GC2CLIWD.js"),
|
|
103
|
+
uptimerobot: () => import("./uptimerobot-XMSNYLIT.js"),
|
|
104
|
+
v2ex: () => import("./v2ex-KU4ECD65.js"),
|
|
105
|
+
vercel: () => import("./vercel-THPCEFHW.js"),
|
|
106
|
+
wolfram_alpha_api: () => import("./wolfram_alpha_api-WHHTH4GU.js"),
|
|
107
|
+
wordpress: () => import("./wordpress-O6TQEQNF.js"),
|
|
108
|
+
workos: () => import("./workos-A3VHHWI3.js"),
|
|
109
|
+
zhihu: () => import("./zhihu-BJAI64YJ.js")
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// ../plugins/src/catalog.generated.ts
|
|
113
|
+
var BUILTIN_CATALOG = {
|
|
114
|
+
"airtable": { "id": "airtable", "kind": "builtin", "endpoint": "binding:airtable", "digest": "55dde28a8a836ba5a952d48d42a8541fe57fe108f9b044dea9ec50992f43d9e5", "describe": { "exports": [{ "credentialProbe": "list_bases", "description": "Airtable", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
115
|
+
"alt_text_generator_ai": { "id": "alt_text_generator_ai", "kind": "builtin", "endpoint": "binding:alt_text_generator_ai", "digest": "44fa0a30617ec84b2122e9d360ab1efaa6f31c0d5aa9d07f758175926ea278f8", "describe": { "exports": [{ "description": "Alt Text Generator AI", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
116
|
+
"amap": { "id": "amap", "kind": "builtin", "endpoint": "binding:amap", "digest": "c87c698154ace50c00dc93f400fc9352d7dabf83aba187a330cfbcc6f243c4d2", "describe": { "exports": [{ "description": "AMap (\u9AD8\u5FB7\u5730\u56FE)", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
117
|
+
"anthropic": { "id": "anthropic", "kind": "builtin", "endpoint": "binding:anthropic", "digest": "cf931f433d600f9bf6ab17d06d01c7987c893dab2564fc93805d4b042ee9ab90", "describe": { "exports": [{ "credentialProbe": "list_models", "description": "Anthropic", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
118
|
+
"apify": { "id": "apify", "kind": "builtin", "endpoint": "binding:apify", "digest": "941b505e2d69be784fd06e98797e0e37e5cb9839682ac25ee99370da86baf26b", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Apify", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
119
|
+
"brave_search": { "id": "brave_search", "kind": "builtin", "endpoint": "binding:brave_search", "digest": "4e571223a027a0be6e9b3afe395fe240b658607c1a9e8fa97307e41789aa35e9", "describe": { "exports": [{ "description": "Brave Search", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
120
|
+
"circleci": { "id": "circleci", "kind": "builtin", "endpoint": "binding:circleci", "digest": "77592389fef2439dc20c2a2848ed4f18d4b07df81521b1d01c9e051ca6d5d639", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "CircleCI", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
121
|
+
"clerk": { "id": "clerk", "kind": "builtin", "endpoint": "binding:clerk", "digest": "e04fa186f1ccc57d98f4055c3c1d69ad0700549504a8c279ba86c5d647114b19", "describe": { "exports": [{ "credentialProbe": "count_users", "description": "Clerk", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
122
|
+
"cloudflare_dns": { "id": "cloudflare_dns", "kind": "builtin", "endpoint": "binding:cloudflare_dns", "digest": "b1eed3211ff5fa70fd5b1d5f76e98b318568991eb14533eb0b4979294c53b8e6", "describe": { "exports": [{ "credentialProbe": "list_zones", "description": "Cloudflare DNS", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
123
|
+
"cohere": { "id": "cohere", "kind": "builtin", "endpoint": "binding:cohere", "digest": "25b4fbb872cc20aa8f97266e5eed94fe84fdaa381dad20eba3dc8c7d01c7b614", "describe": { "exports": [{ "description": "Cohere", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
124
|
+
"confluence": { "id": "confluence", "kind": "builtin", "endpoint": "binding:confluence", "digest": "6841794f6d3632b5b7ab969ccfb627e583e53f0f4efcc9dadb1940e4880b2b17", "describe": { "exports": [{ "credentialFields": [{ "description": "Atlassian API token,\u5F53 Basic \u8BA4\u8BC1\u7684\u5BC6\u7801;\u5728 https://id.atlassian.com/manage-profile/security/api-tokens \u521B\u5EFA", "key": "apiKey", "label": "API Token", "required": true, "secret": true }, { "description": "Atlassian \u8D26\u53F7\u90AE\u7BB1,\u5F53 Basic \u8BA4\u8BC1\u7684\u7528\u6237\u540D", "key": "email", "label": "Atlassian Email", "required": true, "secret": false }, { "description": "Confluence Cloud \u7AD9\u70B9\u5730\u5740(https://<site>.atlassian.net);\u53EA\u63A5\u53D7 https \u7684 atlassian.net \u7AD9\u70B9", "key": "siteUrl", "label": "Confluence Site URL", "required": true, "secret": false }], "credentialProbe": "list_spaces", "description": "Confluence", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
125
|
+
"convertapi": { "id": "convertapi", "kind": "builtin", "endpoint": "binding:convertapi", "digest": "657eff21d99b9395d3a98ddbda4b7f67d117d8cb15342f20395dee3c5c6e926b", "describe": { "exports": [{ "description": "ConvertAPI", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
126
|
+
"currencyapi": { "id": "currencyapi", "kind": "builtin", "endpoint": "binding:currencyapi", "digest": "ac2a19c78ea7dd8d4cc8bb691a6b08caef56cf6bfcd8ab27dadb3f0cb117341f", "describe": { "exports": [{ "credentialProbe": "get_api_status", "description": "currencyapi", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
127
|
+
"deepseek": { "id": "deepseek", "kind": "builtin", "endpoint": "binding:deepseek", "digest": "cd1e17b0bb3e53720016b8276385e80c10bf7bb7e6a5dc6827e78efa96affcb0", "describe": { "exports": [{ "credentialProbe": "list_models", "description": "DeepSeek", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
128
|
+
"docker_hub": { "id": "docker_hub", "kind": "builtin", "endpoint": "binding:docker_hub", "digest": "13e2146591cf17ebec1cc91ffb140afe0cfb70c1f034a513ec9c23ddd2da7f73", "describe": { "exports": [{ "description": "Docker Hub", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
129
|
+
"dropbox": { "id": "dropbox", "kind": "builtin", "endpoint": "binding:dropbox", "digest": "72dd800cc8b896ed8b5c8f006aa6eeac1f7dd174f825a082718c5da3a6bf55fc", "describe": { "exports": [{ "description": "Dropbox", "id": "actions", "oauth": { "authorizationParams": { "token_access_type": "offline" }, "authorizationUrl": "https://www.dropbox.com/oauth2/authorize", "clientAuth": "client_secret_post", "scopes": ["account_info.read", "files.metadata.read", "files.content.read", "files.content.write", "sharing.read", "sharing.write"], "tokenUrl": "https://api.dropboxapi.com/oauth2/token" }, "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
130
|
+
"dub": { "id": "dub", "kind": "builtin", "endpoint": "binding:dub", "digest": "74fe0a636fd62a306fe321aa52bdfc74f8e68783dc86a29812a7db2edd2e02bd", "describe": { "exports": [{ "credentialProbe": "count_links", "description": "Dub", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
131
|
+
"e2b": { "id": "e2b", "kind": "builtin", "endpoint": "binding:e2b", "digest": "19a92b811982474088e8693ea726246110778a985357dfa074b4b3bac0d6773c", "describe": { "exports": [{ "credentialProbe": "list_sandboxes", "description": "E2B", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
132
|
+
"exa": { "id": "exa", "kind": "builtin", "endpoint": "binding:exa", "digest": "2e290f840f9eeb7ac65e006e6603e885767d0130baadb00a93d3406321d86db1", "describe": { "exports": [{ "description": "Exa", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
133
|
+
"fal_ai": { "id": "fal_ai", "kind": "builtin", "endpoint": "binding:fal_ai", "digest": "c840c74b1047ef4e42870e024263a5fc89ab60b73b4fa8d0aa807ba3beb12984", "describe": { "exports": [{ "credentialProbe": "get_models", "description": "fal.ai", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
134
|
+
"feishu": { "id": "feishu", "kind": "builtin", "endpoint": "binding:feishu", "digest": "224a0a5487c8d19d8883d6beb4df06c1443c13803b9e9779bcceb8ecc70d25db", "describe": { "exports": [{ "credentialFields": [{ "description": "\u98DE\u4E66\u81EA\u5EFA\u5E94\u7528\u7684 app_id(\u5F00\u653E\u5E73\u53F0\u300C\u51ED\u8BC1\u4E0E\u57FA\u7840\u4FE1\u606F\u300D\u9875)", "key": "app_id", "label": "App ID", "required": true }, { "description": "\u98DE\u4E66\u81EA\u5EFA\u5E94\u7528\u7684 app_secret,\u7528\u4E8E\u6362\u53D1 tenant_access_token", "key": "app_secret", "label": "App Secret", "required": true, "secret": true }], "description": "Feishu actions (docs, wiki, messaging) via the official MCP upstream", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
135
|
+
"feishu_custom_bot": { "id": "feishu_custom_bot", "kind": "builtin", "endpoint": "binding:feishu_custom_bot", "digest": "dc3d222f176e7f818463873ddb1f7c9246f45b801cd9550bc22235c7f84fb5e8", "describe": { "exports": [{ "credentialFields": [{ "description": "\u7FA4\u673A\u5668\u4EBA\u7684 webhook \u5730\u5740(https://open.feishu.cn/open-apis/bot/v2/hook/<token>)\u6216\u5176 token", "key": "webhook", "label": "Webhook", "required": true, "secret": true }, { "description": "\u7FA4\u673A\u5668\u4EBA\u5F00\u542F\u300C\u7B7E\u540D\u6821\u9A8C\u300D\u65F6\u7684\u5BC6\u94A5;\u672A\u5F00\u542F\u5219\u7559\u7A7A", "key": "signingSecret", "label": "Signing Secret", "required": false, "secret": true }], "description": "Feishu Custom Bot", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
136
|
+
"figma": { "id": "figma", "kind": "builtin", "endpoint": "binding:figma", "digest": "2718603bcf636397c66c8025a4ed0b74be15008f2c2c8ea791e439bc89d0a0b5", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Figma", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
137
|
+
"firehydrant": { "id": "firehydrant", "kind": "builtin", "endpoint": "binding:firehydrant", "digest": "16a992990f55521745e14e70b6097f3c21c44781ec617016f9667820f9505779", "describe": { "exports": [{ "credentialProbe": "list_incidents", "description": "FireHydrant", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
138
|
+
"fixer": { "id": "fixer", "kind": "builtin", "endpoint": "binding:fixer", "digest": "e8f27149dcd14d63f1b0924c98f7d46cfda6e290e7980ef8b6c5efdf93315a3a", "describe": { "exports": [{ "credentialProbe": "get_supported_symbols", "description": "Fixer", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
139
|
+
"fly": { "id": "fly", "kind": "builtin", "endpoint": "binding:fly", "digest": "fc3e627d7c7a12840fc60a0101d79a3b98a62e428abc121205f745f3923bb884", "describe": { "exports": [{ "description": "Fly.io", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
140
|
+
"front": { "id": "front", "kind": "builtin", "endpoint": "binding:front", "digest": "d89d5501fffb41d01c84d91c92ee6e685de3fa07929b80b568c516e9b45187b3", "describe": { "exports": [{ "credentialProbe": "list_teammates", "description": "Front", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
141
|
+
"geocodio": { "id": "geocodio", "kind": "builtin", "endpoint": "binding:geocodio", "digest": "1d8923be9c25e774c8d9b2d84fbecba9a3bbb2750022fbdeea021a14c658ac24", "describe": { "exports": [{ "description": "Geocodio", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
142
|
+
"ghost": { "id": "ghost", "kind": "builtin", "endpoint": "binding:ghost", "digest": "66da97186043b03ebb1f9efd95f43c30c5b6bb3e745243ea0de5e7c457ec3f88", "describe": { "exports": [{ "credentialFields": [{ "description": "Ghost Content API key,\u4F5C\u4E3A key query \u53C2\u6570\u53D1\u9001;\u5728 Ghost Admin \u7684 Settings > Advanced > Integrations \u91CC\u521B\u5EFA\u6216\u67E5\u770B", "key": "apiKey", "label": "Content API Key", "required": true, "secret": true }, { "description": "Ghost \u7AD9\u70B9\u7684\u516C\u5F00\u5730\u5740(https://example.ghost.io),\u4E0D\u8981\u5E26 API \u8DEF\u5F84;\u5FC5\u987B\u662F\u516C\u7F51\u53EF\u8FBE\u5730\u5740,\u79C1\u6709\u7F51\u6BB5\u4F1A\u88AB\u51FA\u7AD9\u7B56\u7565\u62E6\u4E0B", "key": "siteUrl", "label": "Site URL", "required": true, "secret": false }], "credentialProbe": "read_settings", "description": "Ghost (Content API)", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
143
|
+
"github": { "id": "github", "kind": "builtin", "endpoint": "binding:github", "digest": "7a7e5d1434557dd158fd6c79ed31266e794a4ecbc418ad78d3d1f35f6e48b662", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "GitHub", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
144
|
+
"gmail": { "id": "gmail", "kind": "builtin", "endpoint": "binding:gmail", "digest": "214cef1630ea8689786a396c5c3b3c46b3d12c5e678e348eba4c84279e8b3aa5", "describe": { "exports": [{ "description": "Gmail", "id": "actions", "oauth": { "authorizationParams": { "access_type": "offline", "prompt": "consent" }, "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "clientAuth": "client_secret_post", "scopes": ["https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.modify", "https://www.googleapis.com/auth/gmail.compose", "https://www.googleapis.com/auth/gmail.send", "https://www.googleapis.com/auth/gmail.labels", "https://www.googleapis.com/auth/gmail.settings.basic"], "tokenUrl": "https://oauth2.googleapis.com/token" }, "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
145
|
+
"googlecalendar": { "id": "googlecalendar", "kind": "builtin", "endpoint": "binding:googlecalendar", "digest": "b81f98cb6a856f5898414769ae362f35c2149cee41f945516516bf39df108149", "describe": { "exports": [{ "description": "Google Calendar", "id": "actions", "oauth": { "authorizationParams": { "access_type": "offline", "prompt": "consent" }, "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "clientAuth": "client_secret_post", "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly", "https://www.googleapis.com/auth/calendar.events", "https://www.googleapis.com/auth/calendar.calendars", "https://www.googleapis.com/auth/calendar.calendarlist", "https://www.googleapis.com/auth/calendar.settings.readonly", "https://www.googleapis.com/auth/calendar.acls", "https://www.googleapis.com/auth/calendar.acls.readonly"], "tokenUrl": "https://oauth2.googleapis.com/token" }, "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
146
|
+
"googledocs": { "id": "googledocs", "kind": "builtin", "endpoint": "binding:googledocs", "digest": "339e51f24366682b6d9c284c995083479f1d798e3059bef067c03582c4be515b", "describe": { "exports": [{ "description": "Google Docs", "id": "actions", "oauth": { "authorizationParams": { "access_type": "offline", "prompt": "consent" }, "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth", "clientAuth": "client_secret_post", "scopes": ["https://www.googleapis.com/auth/documents.readonly", "https://www.googleapis.com/auth/documents", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/spreadsheets.readonly"], "tokenUrl": "https://oauth2.googleapis.com/token" }, "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
147
|
+
"grafana": { "id": "grafana", "kind": "builtin", "endpoint": "binding:grafana", "digest": "3949cc1e19171d65d8059fdda1556f8ebf47ca28e7c784f682fc5b974a83170a", "describe": { "exports": [{ "credentialProbe": "search_dashboards", "description": "Grafana", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
148
|
+
"graphhopper": { "id": "graphhopper", "kind": "builtin", "endpoint": "binding:graphhopper", "digest": "bb280b358c703f549e3c498012fbf0c54c299170bc67c4ce2e796a846ab661ee", "describe": { "exports": [{ "credentialProbe": "list_profiles", "description": "GraphHopper", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
149
|
+
"ip2proxy": { "id": "ip2proxy", "kind": "builtin", "endpoint": "binding:ip2proxy", "digest": "6c870ea70463c1d576981d099a088fd9e78eebb51326e38d640d6e3552018203", "describe": { "exports": [{ "description": "IP2Proxy", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
150
|
+
"ipgeolocation_io": { "id": "ipgeolocation_io", "kind": "builtin", "endpoint": "binding:ipgeolocation_io", "digest": "021b410b250bd9cbb80e13ae4b8d56b1253eabc5d6b8e1a19e9cacc660ed9c69", "describe": { "exports": [{ "credentialProbe": "get_timezone", "description": "IPGeolocation.io", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
151
|
+
"ipqualityscore": { "id": "ipqualityscore", "kind": "builtin", "endpoint": "binding:ipqualityscore", "digest": "9ce1833afa48198db91b9d105d6473b7c7a7351c75629dab0c4ee3e587939447", "describe": { "exports": [{ "description": "IPQualityScore", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
152
|
+
"jina_ai": { "id": "jina_ai", "kind": "builtin", "endpoint": "binding:jina_ai", "digest": "f05a2eb979ec4686bbb0613b95d51021740e0d4d3afe1eea9777fcac9d52bfa5", "describe": { "exports": [{ "description": "Jina AI", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
153
|
+
"jira": { "id": "jira", "kind": "builtin", "endpoint": "binding:jira", "digest": "6f47c22d5ec5746bad0ea75b2e3782c69955654410045d7fd6bbc3bfb102f377", "describe": { "exports": [{ "credentialFields": [{ "description": "Jira Data Center / Server \u5B9E\u4F8B\u7684\u6839\u5730\u5740(https://jira.example.com,\u5E26\u90E8\u7F72\u4E0A\u4E0B\u6587\u8DEF\u5F84\u4E5F\u53EF\u4EE5),\u4E0D\u8981\u5E26 API \u8DEF\u5F84;\u5FC5\u987B\u662F\u516C\u7F51\u53EF\u8FBE\u5730\u5740,\u79C1\u6709\u7F51\u6BB5\u4F1A\u88AB\u51FA\u7AD9\u7B56\u7565\u62E6\u4E0B", "key": "baseUrl", "label": "Instance URL", "required": true, "secret": false }, { "description": "Jira Data Center / Server \u7684\u4E2A\u4EBA\u8BBF\u95EE\u4EE4\u724C,\u4EE5 Bearer \u53D1\u9001", "key": "personalAccessToken", "label": "Personal access token", "required": true, "secret": true }], "credentialProbe": "list_projects", "description": "Jira (Data Center / Server)", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
154
|
+
"langsmith": { "id": "langsmith", "kind": "builtin", "endpoint": "binding:langsmith", "digest": "e6b94ce0097f490ff412e7662d5c9eb0e3db0161f64c8c9fa4ef3594c7cae366", "describe": { "exports": [{ "credentialProbe": "list_workspaces", "description": "LangSmith", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
155
|
+
"lemlist": { "id": "lemlist", "kind": "builtin", "endpoint": "binding:lemlist", "digest": "5f4c6855c435ca7b79c6877f8bae9059062ad848d587bf557ea2a82926ee65dc", "describe": { "exports": [{ "credentialProbe": "get_team", "description": "lemlist", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
156
|
+
"linear": { "id": "linear", "kind": "builtin", "endpoint": "binding:linear", "digest": "9896f80dc7f1a15ae2fd61e91cd0b1cecf97e7406d757f2b86141a0537e363e7", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Linear", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
157
|
+
"logsnag": { "id": "logsnag", "kind": "builtin", "endpoint": "binding:logsnag", "digest": "ae051bc0ee93580da16de0c98c3941a57a71e79e9bdd48a472a1f999134f156a", "describe": { "exports": [{ "description": "LogSnag", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
158
|
+
"mattermost": { "id": "mattermost", "kind": "builtin", "endpoint": "binding:mattermost", "digest": "9dd2d1f677f4be7effa67da9c6714a1c3738d831325b10de40c6eb117ec385c1", "describe": { "exports": [{ "credentialFields": [{ "description": "Mattermost \u4E2A\u4EBA\u8BBF\u95EE\u4EE4\u724C,\u4EE5 Bearer \u53D1\u9001;\u5728\u8D26\u53F7\u8BBE\u7F6E\u7684 Security \u2192 Personal Access Tokens \u91CC\u521B\u5EFA", "key": "apiKey", "label": "Personal access token", "required": true, "secret": true }, { "description": "Mattermost \u5B9E\u4F8B\u7684\u6839\u5730\u5740(https://mattermost.example.com,\u5E26 /api/v4 \u540E\u7F00\u4E5F\u80FD\u8BC6\u522B);\u5FC5\u987B\u662F https \u7684\u516C\u7F51\u53EF\u8FBE\u5730\u5740,\u79C1\u6709\u7F51\u6BB5\u4F1A\u88AB\u51FA\u7AD9\u7B56\u7565\u62E6\u4E0B", "key": "instanceUrl", "label": "Instance URL", "required": true, "secret": false }], "credentialProbe": "get_current_user", "description": "Mattermost", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
159
|
+
"mem0": { "id": "mem0", "kind": "builtin", "endpoint": "binding:mem0", "digest": "a38488f8820ed1e1b1ae24f1633d240f5a29d91ea75bb43c2f2d8ffc3947f237", "describe": { "exports": [{ "credentialProbe": "get_events", "description": "Mem0", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
160
|
+
"memos": { "id": "memos", "kind": "builtin", "endpoint": "binding:memos", "digest": "4135becb22008db14e5e2af8f6f86c63a15e63a8c657a5015cdbf1b0f4ec3124", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Memos", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
161
|
+
"metabase": { "id": "metabase", "kind": "builtin", "endpoint": "binding:metabase", "digest": "23431975d31cf71ce67984a8263649f9670a1a123878f6bb07fa2160be379591", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Metabase", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
162
|
+
"mistral_ai": { "id": "mistral_ai", "kind": "builtin", "endpoint": "binding:mistral_ai", "digest": "0e1fad496c4ea8f643d97a23dc52f78c0c5e4e6dde04d5c83f7c45aa02da5959", "describe": { "exports": [{ "credentialProbe": "list_models", "description": "Mistral AI", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
163
|
+
"mother_duck": { "id": "mother_duck", "kind": "builtin", "endpoint": "binding:mother_duck", "digest": "ed6931c20ae3406e01a314e1013dbac3b8b5a5398acdc2805bd62c10e8539166", "describe": { "exports": [{ "credentialProbe": "list_active_accounts", "description": "MotherDuck", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
164
|
+
"ngrok": { "id": "ngrok", "kind": "builtin", "endpoint": "binding:ngrok", "digest": "e2c5a6352a55059653438bb7f006c8b110d98e831449046a54827058d263a8dc", "describe": { "exports": [{ "credentialProbe": "list_endpoints", "description": "ngrok", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
165
|
+
"notes": { "id": "notes", "kind": "builtin", "endpoint": "binding:notes", "digest": "86b3b5025869e5f5a3cdf5707d8df7e3410c08693fd51b126fec534a83e4469a", "describe": { "exports": [{ "description": "\u8BB0\u4E8B\u672C\u52A8\u4F5C", "id": "actions", "profile": "tools/v1" }, { "capabilities": ["search"], "description": "\u7B14\u8BB0\u5185\u5BB9\u9762(append-only:\u53EF\u8BFB\u53EF\u5199,\u4E0D\u53EF\u6539\u4E0D\u53EF\u5220)", "id": "notes", "methods": ["List", "Get", "Write", "Search"], "profile": "context/v1" }], "protocolVersion": "plugin/v2" } },
|
|
166
|
+
"notion": { "id": "notion", "kind": "builtin", "endpoint": "binding:notion", "digest": "df784c86b2a0f016cb68ce66d5ce416b9be0551bf0da70e544bbb9642ca2063f", "describe": { "exports": [{ "description": "Notion", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
167
|
+
"open_exchange_rates": { "id": "open_exchange_rates", "kind": "builtin", "endpoint": "binding:open_exchange_rates", "digest": "ec3b8756430cf9f6e7343a6ce730abae4a369b2d35d94aef2c578ea01f47b9b3", "describe": { "exports": [{ "credentialProbe": "get_latest_rates", "description": "Open Exchange Rates", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
168
|
+
"openai": { "id": "openai", "kind": "builtin", "endpoint": "binding:openai", "digest": "d435cf7762a75b440f999175bef7476db053816989cc19ba1792183c370984ce", "describe": { "exports": [{ "credentialProbe": "list_models", "description": "OpenAI", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
169
|
+
"opengraph_io": { "id": "opengraph_io", "kind": "builtin", "endpoint": "binding:opengraph_io", "digest": "040027173714e40019731b9bfd251de9c619685e3298c66e5627b76a49d3cf29", "describe": { "exports": [{ "description": "OpenGraph.io", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
170
|
+
"openrouter": { "id": "openrouter", "kind": "builtin", "endpoint": "binding:openrouter", "digest": "4bfc0a4751ee288b3c1914ee6f754a9d0b122466bbb1ed7123962867ba49f096", "describe": { "exports": [{ "credentialProbe": "get_current_key", "description": "OpenRouter", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
171
|
+
"outline": { "id": "outline", "kind": "builtin", "endpoint": "binding:outline", "digest": "45365d2a3ec1120318cde60b79dfe23a3d8eb847e6e2333d4d46a25f524687d2", "describe": { "exports": [{ "credentialProbe": "list_collections", "description": "Outline", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
172
|
+
"paddle": { "id": "paddle", "kind": "builtin", "endpoint": "binding:paddle", "digest": "24e2708854dcdddcec0458c3c2b07e88f49e5ced743349d5cefb39d49b7debde", "describe": { "exports": [{ "credentialProbe": "list_products", "description": "Paddle", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
173
|
+
"perplexity": { "id": "perplexity", "kind": "builtin", "endpoint": "binding:perplexity", "digest": "34f21e6981e4f542837c81571761f2ccee6ee500311fe80bf1944bb876a36b6c", "describe": { "exports": [{ "credentialProbe": "list_models", "description": "Perplexity", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
174
|
+
"pinecone": { "id": "pinecone", "kind": "builtin", "endpoint": "binding:pinecone", "digest": "6e281e83bd7d6acd9179f0b9f765ad13dae2ae895998b7f02b63f9ee25fdeaa1", "describe": { "exports": [{ "credentialProbe": "list_indexes", "description": "Pinecone", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
175
|
+
"pipedrive": { "id": "pipedrive", "kind": "builtin", "endpoint": "binding:pipedrive", "digest": "31145a9c4fc00c10b035561ae9b15596bde6942b84f0e1b8c9bb2b3dc018d0a2", "describe": { "exports": [{ "credentialProbe": "list_pipelines", "description": "Pipedrive", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
176
|
+
"polar": { "id": "polar", "kind": "builtin", "endpoint": "binding:polar", "digest": "f83804d54763a2dc21e270c5dd8959380f5aa0822b9dd04c838a2a82a35febc3", "describe": { "exports": [{ "credentialProbe": "list_organizations", "description": "Polar", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
177
|
+
"posthog": { "id": "posthog", "kind": "builtin", "endpoint": "binding:posthog", "digest": "9b8d6cea92999d083d9431b63c84bb4bb6b3e544b35ad2981da26a47295769ad", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "PostHog", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
178
|
+
"postmark": { "id": "postmark", "kind": "builtin", "endpoint": "binding:postmark", "digest": "25e1a0b1c5c8a1c18ff74de2df9ade984f27b5c090ee0bd6cbc4d16a55b4e3a0", "describe": { "exports": [{ "credentialProbe": "get_server", "description": "Postmark", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
179
|
+
"prerender": { "id": "prerender", "kind": "builtin", "endpoint": "binding:prerender", "digest": "e85fccd8b1046a643157b153f8dfcb0f5be7e21b7909124e65f5401042cd05d6", "describe": { "exports": [{ "credentialProbe": "get_cache_clear_status", "description": "Prerender", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
180
|
+
"pubmed": { "id": "pubmed", "kind": "builtin", "endpoint": "binding:pubmed", "digest": "a8d1c09315b64d5cb2e63ebef6ddbca1b8cdda469b2b6347c2a9a70adb5f173c", "describe": { "exports": [{ "description": "PubMed", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
181
|
+
"railway": { "id": "railway", "kind": "builtin", "endpoint": "binding:railway", "digest": "7c391995e83bdf715b2a51bf7ab0aa43ed2c2bfa192c123de30b7e2b0c2466ae", "describe": { "exports": [{ "credentialProbe": "list_projects", "description": "Railway", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
182
|
+
"readwise": { "id": "readwise", "kind": "builtin", "endpoint": "binding:readwise", "digest": "1538d82e227bde667b12de77cb81db4ec2d1eb13dba5a588952b0a94c792fa4d", "describe": { "exports": [{ "credentialProbe": "list_books", "description": "Readwise", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
183
|
+
"render": { "id": "render", "kind": "builtin", "endpoint": "binding:render", "digest": "1eb0d2fe3d40d3cebc10c4451b82db65a9dddbe15445b7df613e54e935087334", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Render", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
184
|
+
"replicate": { "id": "replicate", "kind": "builtin", "endpoint": "binding:replicate", "digest": "f560280b488abd574afac28276d5a97e565ac389ad9583fefedf2dde5cabf4f1", "describe": { "exports": [{ "credentialProbe": "get_account", "description": "Replicate", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
185
|
+
"resend": { "id": "resend", "kind": "builtin", "endpoint": "binding:resend", "digest": "0780c42e9d78f98de05a9a8112a3166a23e1669838659d9de52c695fbbd66c0e", "describe": { "exports": [{ "description": "Resend", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
186
|
+
"rootly": { "id": "rootly", "kind": "builtin", "endpoint": "binding:rootly", "digest": "a06c91de913de5fc7cc84d9afa91084126568aecbb01ea8dc38dccc6f2df624d", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Rootly", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
187
|
+
"scrapfly": { "id": "scrapfly", "kind": "builtin", "endpoint": "binding:scrapfly", "digest": "3971ee1d735cfbde624a01487e109897426a2ce28ec957760c89516844ec8f53", "describe": { "exports": [{ "description": "Scrapfly", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
188
|
+
"scrapingbee": { "id": "scrapingbee", "kind": "builtin", "endpoint": "binding:scrapingbee", "digest": "5331ffd7c94366e14c13ab54ecdb5e68ccd0aac28a0c765bdd06f907eab32b75", "describe": { "exports": [{ "credentialProbe": "get_usage_stats", "description": "ScrapingBee", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
189
|
+
"screenshot_fyi": { "id": "screenshot_fyi", "kind": "builtin", "endpoint": "binding:screenshot_fyi", "digest": "7b9a252ae2c1367f7da4219b22a994adc1026fa749500644824c925ea24d924b", "describe": { "exports": [{ "description": "screenshot.fyi", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
190
|
+
"semantic_scholar": { "id": "semantic_scholar", "kind": "builtin", "endpoint": "binding:semantic_scholar", "digest": "e0c816926db664360c30ed8bbc22d57f505ab15b21c5523fa6733d73489efd03", "describe": { "exports": [{ "description": "Semantic Scholar", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
191
|
+
"sentry": { "id": "sentry", "kind": "builtin", "endpoint": "binding:sentry", "digest": "823829cd31fe447ac0f69939034775177988290484541fb19412190adabacf0d", "describe": { "exports": [{ "description": "Sentry", "id": "actions", "oauth": { "authorizationUrl": "https://sentry.io/oauth/authorize/", "scopes": ["org:read", "project:read", "project:releases", "event:read", "event:write"], "tokenUrl": "https://sentry.io/oauth/token/" }, "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
192
|
+
"shodan": { "id": "shodan", "kind": "builtin", "endpoint": "binding:shodan", "digest": "c2e34f597dae5c7f0ea234c86b2ad0384106749f782e4eb4f313e2bca499dc64", "describe": { "exports": [{ "credentialProbe": "get_api_info", "description": "Shodan", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
193
|
+
"shopify": { "id": "shopify", "kind": "builtin", "endpoint": "binding:shopify", "digest": "0aa27eb0883dcef053bfc7531bb06da3dc7836c90fa986b8ca5639ff9941d5b4", "describe": { "exports": [{ "credentialFields": [{ "description": "Shopify Admin API access token(shpat_...),\u8D70 X-Shopify-Access-Token \u5934;\u5728\u81EA\u5EFA\u5E94\u7528\u7684 API \u51ED\u636E\u9875\u83B7\u53D6", "key": "apiKey", "label": "Admin API access token", "required": true, "secret": true }, { "description": "\u5E97\u94FA\u7684 myshopify.com \u57DF\u540D(\u5982 acme.myshopify.com);\u540E\u53F0\u5730\u5740\u4E5F\u63A5\u53D7,\u4F1A\u53D6\u5176\u4E3B\u673A\u540D", "key": "shopDomain", "label": "Shop domain", "required": true, "secret": false }], "credentialProbe": "get_shop", "description": "Shopify REST Admin (Legacy)", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
194
|
+
"stripe": { "id": "stripe", "kind": "builtin", "endpoint": "binding:stripe", "digest": "c3d4dfe0706f3763e25e886bb13ac1a1a06d267e556e28e7e70941278fbdd2cc", "describe": { "exports": [{ "description": "Stripe", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
195
|
+
"supabase": { "id": "supabase", "kind": "builtin", "endpoint": "binding:supabase", "digest": "0201d4fddc2c91cb90395f78eb5f64f7e96bf25e935b74548fe5f73eda314277", "describe": { "exports": [{ "credentialProbe": "list_organizations", "description": "Supabase (Management API)", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
196
|
+
"tavily": { "id": "tavily", "kind": "builtin", "endpoint": "binding:tavily", "digest": "8fc85babaa76a19f2ce38ff79d9dac8257311118fcca7ce71bb791f7d10567ec", "describe": { "exports": [{ "credentialProbe": "get_usage", "description": "Tavily", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
197
|
+
"telegram": { "id": "telegram", "kind": "builtin", "endpoint": "binding:telegram", "digest": "93e0d987df64f63e69e9f3e997211ea6bb0fa9673c8d8cc28a844540c5d9f4f7", "describe": { "exports": [{ "credentialProbe": "get_me", "description": "Telegram Bot", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
198
|
+
"telnyx": { "id": "telnyx", "kind": "builtin", "endpoint": "binding:telnyx", "digest": "961fe579ab62a536ccff885dc431bd1fc499f57cece0c019ebc87d011edd815f", "describe": { "exports": [{ "description": "Telnyx", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
199
|
+
"todoist": { "id": "todoist", "kind": "builtin", "endpoint": "binding:todoist", "digest": "9c8c53f48a9bed0d8f0e310e13fd85bc79b2515f2237968b170196d610f4125b", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Todoist", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
200
|
+
"trello": { "id": "trello", "kind": "builtin", "endpoint": "binding:trello", "digest": "676b6dff40210538a1820d3550c94b6665f4243de319fddad8f23d727fb61e52", "describe": { "exports": [{ "credentialFields": [{ "description": "https://trello.com/power-ups/admin \u4E0A Key \u4E00\u680F\u7684\u503C(\u4E0D\u662F API Secret,\u4E5F\u4E0D\u662F Atlassian API token)", "key": "apiKey", "label": "API Key", "required": true, "secret": true }, { "description": "\u5728\u540C\u4E00\u9875\u9762 API Key \u65C1\u8FB9\u7684 Token \u94FE\u63A5\u91CC\u751F\u6210(\u4E0E API Secret \u4E0D\u662F\u4E00\u56DE\u4E8B)", "key": "apiToken", "label": "API Token", "required": true, "secret": true }], "credentialProbe": "get_member", "description": "Trello", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
201
|
+
"turso": { "id": "turso", "kind": "builtin", "endpoint": "binding:turso", "digest": "73bdb348e9152d34fe699f467ab842b2737b8db1278f2966b8bee6da651f83fa", "describe": { "exports": [{ "credentialProbe": "list_organizations", "description": "Turso", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
202
|
+
"twilio": { "id": "twilio", "kind": "builtin", "endpoint": "binding:twilio", "digest": "4051deed82c9c9370b6f68f7c79b65b1f2908188c44a2a6fca2480143a97acfe", "describe": { "exports": [{ "credentialFields": [{ "description": "Twilio Account SID(AC \u5F00\u5934),\u4F5C\u4E3A\u8D26\u6237\u6807\u8BC6\u62FC\u8FDB API \u8DEF\u5F84;\u89C1 https://www.twilio.com/console \u7684 Account Info", "key": "accountSid", "label": "Account SID", "required": true, "secret": false }, { "description": "Twilio Auth Token,\u4E0E accountSid \u4E00\u8D77\u4EE5 HTTP Basic \u53D1\u9001(\u4E0D\u662F Bearer);\u53EF\u5728 https://www.twilio.com/console \u67E5\u770B\u6216\u8F6E\u6362", "key": "authToken", "label": "Auth Token", "required": true, "secret": true }], "credentialProbe": "get_account", "description": "Twilio", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
203
|
+
"umami": { "id": "umami", "kind": "builtin", "endpoint": "binding:umami", "digest": "4529a6e6b36b4e226a1982a48376dab5c18776d1968096d28a6dd5d58b0f1acf", "describe": { "exports": [{ "credentialProbe": "get_current_user", "description": "Umami", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
204
|
+
"unsplash": { "id": "unsplash", "kind": "builtin", "endpoint": "binding:unsplash", "digest": "db94c054aaebf980b77f665f990dda9472b1755e7be86431e18fb810b032308a", "describe": { "exports": [{ "credentialProbe": "list_photos", "description": "Unsplash", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
205
|
+
"upstash_redis": { "id": "upstash_redis", "kind": "builtin", "endpoint": "binding:upstash_redis", "digest": "366629557a6a9833fb47a72efddb27840f02ee13c26ee262ede25dcc978ba915", "describe": { "exports": [{ "credentialFields": [{ "description": "Upstash \u63A7\u5236\u53F0\u91CC\u90A3\u4E2A\u6570\u636E\u5E93\u7684 HTTPS REST \u5730\u5740(https://<db>.upstash.io);\u53EA\u63A5\u53D7\u5B98\u65B9 upstash.io \u7AEF\u70B9", "key": "restUrl", "label": "REST URL", "required": true, "secret": false }, { "description": "\u4EE5 Bearer \u53D1\u9001\u7684 Upstash REST \u4EE4\u724C\u3002\u53EA\u8BFB\u4EE4\u724C\u80FD\u8DD1 get/exists/ttl,\u4F46 scan \u4E0E\u6240\u6709\u5199\u64CD\u4F5C\u8981\u6807\u51C6\u4EE4\u724C", "key": "restToken", "label": "REST Token", "required": true, "secret": true }], "description": "Upstash Redis", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
206
|
+
"uptimerobot": { "id": "uptimerobot", "kind": "builtin", "endpoint": "binding:uptimerobot", "digest": "9376352d04bb2ca536806512030b1fa92aaf331d9ba0ac15ab0a25aea73d747c", "describe": { "exports": [{ "credentialProbe": "get_account_details", "description": "UptimeRobot", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
207
|
+
"v2ex": { "id": "v2ex", "kind": "builtin", "endpoint": "binding:v2ex", "digest": "df209d6b85ba0443f8707207e24066385fd3a4ffeefcd4577472385c54926222", "describe": { "exports": [{ "credentialProbe": "get_current_member", "description": "V2EX", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
208
|
+
"vercel": { "id": "vercel", "kind": "builtin", "endpoint": "binding:vercel", "digest": "d6f8119397267536265922ac743ad8bc6c9bc4ddeb9e2f5c933410678cc8af17", "describe": { "exports": [{ "credentialProbe": "get_auth_user", "description": "Vercel", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
209
|
+
"wolfram_alpha_api": { "id": "wolfram_alpha_api", "kind": "builtin", "endpoint": "binding:wolfram_alpha_api", "digest": "8383e84cd2201bbb28b6bc7308ac0b705ea3fcc960c612c501cea0a769a8f2b8", "describe": { "exports": [{ "description": "Wolfram|Alpha", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
210
|
+
"wordpress": { "id": "wordpress", "kind": "builtin", "endpoint": "binding:wordpress", "digest": "2827ca153cb20ad1c2c37dcb367e02dae41314bd6be779d25ccb988ae2b7eb15", "describe": { "exports": [{ "credentialFields": [{ "description": "WordPress \u5E94\u7528\u5BC6\u7801,\u4F5C\u4E3A HTTP Basic \u8BA4\u8BC1\u7684\u5BC6\u7801\u53D1\u9001;\u5728 WordPress \u540E\u53F0\u7684 Users > Profile > Application Passwords \u91CC\u521B\u5EFA", "key": "apiKey", "label": "Application Password", "required": true, "secret": true }, { "description": "WordPress \u7AD9\u70B9\u7684\u6839\u5730\u5740(https://example.com,\u5B50\u76EE\u5F55\u5B89\u88C5\u5199\u5230\u5B50\u76EE\u5F55);\u5E26 /wp-json \u6216 /wp-json/wp/v2 \u540E\u7F00\u4E5F\u8BA4\u3002\u5FC5\u987B\u662F https \u7684\u516C\u7F51\u5730\u5740,\u79C1\u6709\u7F51\u6BB5\u4F1A\u88AB\u51FA\u7AD9\u7B56\u7565\u62E6\u4E0B", "key": "siteUrl", "label": "Site URL", "required": true, "secret": false }, { "description": "\u4E0E\u5E94\u7528\u5BC6\u7801\u914D\u5BF9\u7684 WordPress \u7528\u6237\u540D,\u4F5C\u4E3A HTTP Basic \u8BA4\u8BC1\u7684\u7528\u6237\u540D\u53D1\u9001", "key": "username", "label": "Username", "required": true, "secret": false }], "credentialProbe": "get_current_user", "description": "WordPress (REST API v2)", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
211
|
+
"workos": { "id": "workos", "kind": "builtin", "endpoint": "binding:workos", "digest": "71690b4db286ad123033ddc4be98dfa94da97522a8671f4418953ae357456b65", "describe": { "exports": [{ "credentialProbe": "list_organizations", "description": "WorkOS", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } },
|
|
212
|
+
"zhihu": { "id": "zhihu", "kind": "builtin", "endpoint": "binding:zhihu", "digest": "611ce0bc468480e68f0f5f2b105729ea9ec289ddd1f3079f30a64adc5574157d", "describe": { "exports": [{ "description": "Zhihu", "id": "actions", "profile": "tools/v1" }], "protocolVersion": "plugin/v2" } }
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// ../plugins/src/registry.ts
|
|
216
|
+
var BUILTIN_PLUGIN_ENV_KEYS = [
|
|
217
|
+
// feishu:官方 MCP / 换发端点的 override(测试用)与工具白名单。
|
|
218
|
+
"FEISHU_ALLOWED_TOOLS",
|
|
219
|
+
"FEISHU_AUTH_URL",
|
|
220
|
+
"FEISHU_MCP_URL"
|
|
221
|
+
];
|
|
222
|
+
function narrowPluginEnv(env) {
|
|
223
|
+
const narrowed = {};
|
|
224
|
+
if (env.PLUGIN_TOKEN !== void 0) narrowed.PLUGIN_TOKEN = env.PLUGIN_TOKEN;
|
|
225
|
+
for (const key of BUILTIN_PLUGIN_ENV_KEYS) {
|
|
226
|
+
const value = env[key];
|
|
227
|
+
if (value !== void 0) narrowed[key] = value;
|
|
228
|
+
}
|
|
229
|
+
return narrowed;
|
|
230
|
+
}
|
|
231
|
+
function builtinPluginBindings(env, opts = {}) {
|
|
232
|
+
const names = opts.include ?? Object.keys(BUILTIN_PLUGIN_LOADERS);
|
|
233
|
+
const pluginEnv = { ...narrowPluginEnv(env), TB_PLUGIN_IN_PROCESS: true };
|
|
234
|
+
const bindings = /* @__PURE__ */ new Map();
|
|
235
|
+
for (const name of names) {
|
|
236
|
+
const loader = BUILTIN_PLUGIN_LOADERS[name];
|
|
237
|
+
if (loader === void 0) throw new Error(`unknown builtin plugin '${name}'`);
|
|
238
|
+
let loaded;
|
|
239
|
+
bindings.set(name, async (request) => {
|
|
240
|
+
loaded ??= loader();
|
|
241
|
+
const mod = await loaded;
|
|
242
|
+
return await mod.default.fetch(request, pluginEnv);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return bindings;
|
|
246
|
+
}
|
|
247
|
+
|
|
8
248
|
// src/main.ts
|
|
9
249
|
var config = configFromEnv(process.env);
|
|
10
|
-
var server = createTbServer(
|
|
250
|
+
var server = createTbServer({
|
|
251
|
+
...config,
|
|
252
|
+
pluginBindings: config.pluginBindings ?? builtinPluginBindings(process.env),
|
|
253
|
+
pluginCatalog: config.pluginCatalog ?? BUILTIN_CATALOG
|
|
254
|
+
});
|
|
11
255
|
var port;
|
|
12
256
|
try {
|
|
13
257
|
;
|