@agentkey/mcp 0.0.7 → 0.0.10
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/dynamic.d.ts +1 -1
- package/dist/dynamic.js +120 -21
- package/dist/dynamic.js.map +1 -1
- package/dist/index.js +265 -256
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/dynamic.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
9
|
export interface ToolParam {
|
|
10
10
|
name: string;
|
|
11
|
-
type: "string" | "number" | "boolean" | "array";
|
|
11
|
+
type: "string" | "number" | "boolean" | "array" | "object";
|
|
12
12
|
description: string;
|
|
13
13
|
required?: boolean;
|
|
14
14
|
enum?: string[];
|
package/dist/dynamic.js
CHANGED
|
@@ -30,6 +30,12 @@ function buildParamSchema(param) {
|
|
|
30
30
|
case "array":
|
|
31
31
|
schema = zod_1.z.array(zod_1.z.string());
|
|
32
32
|
break;
|
|
33
|
+
case "object":
|
|
34
|
+
// Accept either a real object or a JSON-encoded string (some clients
|
|
35
|
+
// marshal nested objects as strings). The handler unwraps before
|
|
36
|
+
// forwarding to AgentKey.
|
|
37
|
+
schema = zod_1.z.union([zod_1.z.record(zod_1.z.unknown()), zod_1.z.string()]);
|
|
38
|
+
break;
|
|
33
39
|
case "string":
|
|
34
40
|
default:
|
|
35
41
|
if (param.enum && param.enum.length > 0) {
|
|
@@ -53,13 +59,29 @@ function buildToolSchema(params) {
|
|
|
53
59
|
return shape;
|
|
54
60
|
}
|
|
55
61
|
/** Create the tool handler callback for a given endpoint. */
|
|
56
|
-
function makeToolHandler(endpoint, schema, callAPI) {
|
|
62
|
+
function makeToolHandler(endpoint, schema, callAPI, params) {
|
|
63
|
+
// Names of params declared as type=object — used to unwrap JSON-string variants.
|
|
64
|
+
const objectParams = new Set(params.filter((p) => p.type === "object").map((p) => p.name));
|
|
57
65
|
return async (args) => {
|
|
58
66
|
const body = {};
|
|
59
67
|
for (const [key, value] of Object.entries(args)) {
|
|
60
|
-
if (value
|
|
61
|
-
|
|
68
|
+
if (value === undefined || value === null)
|
|
69
|
+
continue;
|
|
70
|
+
// Unwrap JSON-string forms of object params (some clients marshal
|
|
71
|
+
// nested objects as strings even when the schema accepts both).
|
|
72
|
+
if (objectParams.has(key) && typeof value === "string") {
|
|
73
|
+
if (value.trim() === "")
|
|
74
|
+
continue;
|
|
75
|
+
try {
|
|
76
|
+
body[key] = JSON.parse(value);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Forward as-is and let the server return a clearer error.
|
|
80
|
+
body[key] = value;
|
|
81
|
+
}
|
|
82
|
+
continue;
|
|
62
83
|
}
|
|
84
|
+
body[key] = value;
|
|
63
85
|
}
|
|
64
86
|
if ("provider" in schema && !body.provider) {
|
|
65
87
|
body.provider = "auto";
|
|
@@ -72,30 +94,45 @@ function makeToolHandler(endpoint, schema, callAPI) {
|
|
|
72
94
|
isError: true,
|
|
73
95
|
};
|
|
74
96
|
}
|
|
75
|
-
// Compact: strip nulls/empty/zero
|
|
97
|
+
// Compact: strip nulls/empty/zero so the LLM doesn't burn tokens on noise.
|
|
76
98
|
const compact = JSON.parse(JSON.stringify(data, (_, v) => v === null || v === "" || v === 0 || (Array.isArray(v) && v.length === 0) ? undefined : v));
|
|
77
|
-
//
|
|
78
|
-
const results = data.results;
|
|
79
|
-
const resultCount = results?.length ?? 0;
|
|
80
|
-
let hint = "";
|
|
81
|
-
if (resultCount > 0) {
|
|
82
|
-
hint = `\n\n[${resultCount} results returned. Analyze these and answer the user. Only make a follow-up call if the results are clearly insufficient.]`;
|
|
83
|
-
}
|
|
84
|
-
else if (results !== undefined) {
|
|
85
|
-
hint = `\n\n[No results. Try broader keywords or different parameters. Do NOT retry the same query.]`;
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
hint = `\n\n[Data returned. Present the results to the user.]`;
|
|
89
|
-
}
|
|
90
|
-
// Truncate long content (scrape)
|
|
99
|
+
// Truncate long scrape content explicitly (per-field, before generic shrink).
|
|
91
100
|
const content = data.content;
|
|
92
101
|
if (content && content.length > 15000) {
|
|
93
102
|
compact.content =
|
|
94
103
|
content.slice(0, 15000) +
|
|
95
104
|
`\n\n[... truncated at 15000 chars. Total: ${content.length} chars.]`;
|
|
96
105
|
}
|
|
106
|
+
// Generic size cap. Some TikHub endpoints return 200K+ char blobs that
|
|
107
|
+
// overflow the model's tool-result token budget. Progressively shrink
|
|
108
|
+
// arrays inside the response until we fit, falling back to a hard
|
|
109
|
+
// truncation marker if we can't.
|
|
110
|
+
const { text: jsonText, truncated, originalBytes } = serializeWithBudget(compact, MAX_TOOL_RESULT_BYTES);
|
|
111
|
+
// Result count hint — pulled from the (post-shrink) response.
|
|
112
|
+
const results = compact.results;
|
|
113
|
+
const resultCount = results?.length ?? 0;
|
|
114
|
+
let hint;
|
|
115
|
+
if (truncated) {
|
|
116
|
+
hint = `[Response was ${originalBytes} bytes — truncated to fit the tool-result budget. Arrays in the JSON above have been shortened (look for "__truncated__" markers). For full data, request a smaller page (e.g. lower count/limit, narrower query, or use pagination).]`;
|
|
117
|
+
}
|
|
118
|
+
else if (resultCount > 0) {
|
|
119
|
+
hint = `[${resultCount} results returned. Analyze these and answer the user. Only make a follow-up call if the results are clearly insufficient.]`;
|
|
120
|
+
}
|
|
121
|
+
else if (results !== undefined) {
|
|
122
|
+
hint = `[No results. Try broader keywords or different parameters. Do NOT retry the same query.]`;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
hint = `[Data returned. Present the results to the user.]`;
|
|
126
|
+
}
|
|
127
|
+
// IMPORTANT: return JSON and hint as SEPARATE content blocks so the
|
|
128
|
+
// first item is pure JSON and callers can JSON.parse it directly.
|
|
129
|
+
// Concatenating "JSON + hint" into one string makes the field
|
|
130
|
+
// unparseable as JSON (you get "Extra data" past the closing brace).
|
|
97
131
|
return {
|
|
98
|
-
content: [
|
|
132
|
+
content: [
|
|
133
|
+
{ type: "text", text: jsonText },
|
|
134
|
+
{ type: "text", text: hint },
|
|
135
|
+
],
|
|
99
136
|
};
|
|
100
137
|
}
|
|
101
138
|
catch (err) {
|
|
@@ -106,6 +143,68 @@ function makeToolHandler(endpoint, schema, callAPI) {
|
|
|
106
143
|
}
|
|
107
144
|
};
|
|
108
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Maximum size of one tool-result content item. ~30K chars ≈ 7.5K tokens,
|
|
148
|
+
* comfortably under every common model's tool-result cap. Tunable via env.
|
|
149
|
+
*/
|
|
150
|
+
const MAX_TOOL_RESULT_BYTES = parseInt(process.env.AGENTKEY_MAX_RESULT_BYTES || "30000", 10);
|
|
151
|
+
/**
|
|
152
|
+
* Serialize `data` as JSON, shrinking embedded arrays if the result exceeds
|
|
153
|
+
* `maxBytes`. Returns the final JSON text plus whether truncation occurred
|
|
154
|
+
* and the original (pre-shrink) byte count.
|
|
155
|
+
*
|
|
156
|
+
* Strategy: try the full payload, then progressively cap every array in the
|
|
157
|
+
* tree at smaller and smaller limits (50 → 20 → 10 → 5 → 2 → 1). If even a
|
|
158
|
+
* single-element trim doesn't fit, fall back to a hard string slice with a
|
|
159
|
+
* truncation marker so the response never blows past the budget.
|
|
160
|
+
*/
|
|
161
|
+
function serializeWithBudget(data, maxBytes) {
|
|
162
|
+
const full = JSON.stringify(data) ?? "";
|
|
163
|
+
if (full.length <= maxBytes) {
|
|
164
|
+
return { text: full, truncated: false, originalBytes: full.length };
|
|
165
|
+
}
|
|
166
|
+
for (const cap of [50, 20, 10, 5, 2, 1]) {
|
|
167
|
+
const trimmed = capArrays(data, cap);
|
|
168
|
+
const text = JSON.stringify(trimmed) ?? "";
|
|
169
|
+
if (text.length <= maxBytes) {
|
|
170
|
+
return { text, truncated: true, originalBytes: full.length };
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Last resort — even capping every array to 1 didn't fit (deeply nested
|
|
174
|
+
// huge objects). Hard slice the original; mark it explicitly so the LLM
|
|
175
|
+
// knows the JSON above this point is incomplete.
|
|
176
|
+
return {
|
|
177
|
+
text: full.slice(0, maxBytes - 200) + `\n\n/* TRUNCATED — original ${full.length} bytes, hard-cut at ${maxBytes - 200}. JSON above this line is incomplete and may not parse. Use a more specific query. */`,
|
|
178
|
+
truncated: true,
|
|
179
|
+
originalBytes: full.length,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Recursively walks `value` and returns a deep copy where every array longer
|
|
184
|
+
* than `cap` is sliced to `cap` items, with a sibling-key `__truncated__`
|
|
185
|
+
* stamp on the parent so the LLM can see *that* truncation happened and
|
|
186
|
+
* (roughly) by how much.
|
|
187
|
+
*/
|
|
188
|
+
function capArrays(value, cap) {
|
|
189
|
+
if (Array.isArray(value)) {
|
|
190
|
+
const out = value.slice(0, cap).map((v) => capArrays(v, cap));
|
|
191
|
+
if (value.length > cap) {
|
|
192
|
+
// Mark as truncated by appending a sentinel string element. We can't
|
|
193
|
+
// attach a sibling key to a JSON array, so a sentinel element is the
|
|
194
|
+
// most portable hint.
|
|
195
|
+
out.push(`__truncated__: ${value.length - cap} of ${value.length} items omitted`);
|
|
196
|
+
}
|
|
197
|
+
return out;
|
|
198
|
+
}
|
|
199
|
+
if (value && typeof value === "object") {
|
|
200
|
+
const out = {};
|
|
201
|
+
for (const [k, v] of Object.entries(value)) {
|
|
202
|
+
out[k] = capArrays(v, cap);
|
|
203
|
+
}
|
|
204
|
+
return out;
|
|
205
|
+
}
|
|
206
|
+
return value;
|
|
207
|
+
}
|
|
109
208
|
/** Fingerprint a tool definition for change detection. */
|
|
110
209
|
function toolFingerprint(tool) {
|
|
111
210
|
return JSON.stringify({
|
|
@@ -198,7 +297,7 @@ class DynamicToolManager {
|
|
|
198
297
|
existing.handle.update({
|
|
199
298
|
description: tool.description,
|
|
200
299
|
paramsSchema: schema,
|
|
201
|
-
callback: makeToolHandler(tool.endpoint, schema, this.callAPI),
|
|
300
|
+
callback: makeToolHandler(tool.endpoint, schema, this.callAPI, tool.params),
|
|
202
301
|
});
|
|
203
302
|
existing.fingerprint = fp;
|
|
204
303
|
console.error(`[dynamic] Updated tool: ${tool.name}`);
|
|
@@ -215,7 +314,7 @@ class DynamicToolManager {
|
|
|
215
314
|
/** Register a single tool and track it. */
|
|
216
315
|
registerTool(tool) {
|
|
217
316
|
const schema = buildToolSchema(tool.params);
|
|
218
|
-
const handle = this.server.tool(tool.name, tool.description, schema, makeToolHandler(tool.endpoint, schema, this.callAPI));
|
|
317
|
+
const handle = this.server.tool(tool.name, tool.description, schema, makeToolHandler(tool.endpoint, schema, this.callAPI, tool.params));
|
|
219
318
|
this.registered.set(tool.name, {
|
|
220
319
|
handle,
|
|
221
320
|
fingerprint: toolFingerprint(tool),
|
package/dist/dynamic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -47,17 +47,23 @@ const AGENTKEY_BASE_URL = process.env.AGENTKEY_BASE_URL || "https://api.agentkey
|
|
|
47
47
|
const AGENTKEY_API_KEY = process.env.AGENTKEY_API_KEY || "";
|
|
48
48
|
// --- CLI: --list-tools ---
|
|
49
49
|
if (process.argv.includes("--list-tools")) {
|
|
50
|
-
console.log(`AgentKey MCP Server v0.0.
|
|
50
|
+
console.log(`AgentKey MCP Server v0.0.10
|
|
51
51
|
|
|
52
52
|
Tools:
|
|
53
53
|
agentkey_search Search the web, news, images, videos, or places
|
|
54
54
|
Providers: Serper, Tavily, Brave, Perplexity
|
|
55
55
|
agentkey_scrape Scrape a webpage and extract content as markdown/html/text
|
|
56
56
|
Providers: Firecrawl, Jina Reader, ScrapeNinja
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
agentkey_social_catalog
|
|
58
|
+
Search the TikHub-mirror catalog by platform + keyword.
|
|
59
|
+
Call this BEFORE agentkey_social when you don't know the path.
|
|
60
|
+
agentkey_social Dispatcher over the TikHub mirror (~46 platforms / ~990 endpoints).
|
|
61
|
+
Pass {path, params}. Covers TikTok, Douyin, Xiaohongshu,
|
|
62
|
+
Instagram, Twitter/X, Reddit, Weibo, Bilibili, YouTube, Zhihu,
|
|
63
|
+
LinkedIn, Threads, Kuaishou, Lemon8, WeChat Channels, Toutiao,
|
|
64
|
+
Xigua, Sora2 and more.
|
|
59
65
|
agentkey_crypto Query blockchain & crypto data (prices, NFTs, balances, txs, ENS)
|
|
60
|
-
|
|
66
|
+
Providers: Chainbase, CoinMarketCap (spot + DEX), Tops
|
|
61
67
|
|
|
62
68
|
Environment:
|
|
63
69
|
AGENTKEY_BASE_URL API base URL (default: https://api.agentkey.app)
|
|
@@ -296,21 +302,90 @@ else {
|
|
|
296
302
|
};
|
|
297
303
|
}
|
|
298
304
|
/**
|
|
299
|
-
*
|
|
300
|
-
*
|
|
305
|
+
* Maximum size of one tool-result content item. ~30K chars ≈ 7.5K tokens,
|
|
306
|
+
* comfortably under every common model's tool-result cap. Tunable via env.
|
|
301
307
|
*/
|
|
302
|
-
|
|
308
|
+
const MAX_TOOL_RESULT_BYTES = parseInt(process.env.AGENTKEY_MAX_RESULT_BYTES || "30000", 10);
|
|
309
|
+
/**
|
|
310
|
+
* Compact a tool result for the LLM:
|
|
311
|
+
* 1. Strip null/empty/zero fields to save tokens.
|
|
312
|
+
* 2. If the serialized JSON exceeds MAX_TOOL_RESULT_BYTES, progressively
|
|
313
|
+
* cap embedded arrays until it fits, then mark as truncated.
|
|
314
|
+
* 3. Return JSON and the truncation/result hint as SEPARATE content blocks
|
|
315
|
+
* so the first item is pure JSON parseable by callers (concatenating
|
|
316
|
+
* "JSON + hint" into one text field breaks JSON.parse).
|
|
317
|
+
*
|
|
318
|
+
* If `hintFn` is supplied it gets the (possibly shrunk) compact data plus
|
|
319
|
+
* a `truncated` flag and produces a closing instruction for the LLM.
|
|
320
|
+
*/
|
|
321
|
+
function compactResult(data, hintFn) {
|
|
303
322
|
const compact = JSON.parse(JSON.stringify(data, (_, v) => v === null || v === "" || v === 0 || (Array.isArray(v) && v.length === 0) ? undefined : v));
|
|
323
|
+
const { text, truncated, originalBytes } = serializeWithBudget(compact, MAX_TOOL_RESULT_BYTES);
|
|
324
|
+
const content = [
|
|
325
|
+
{ type: "text", text },
|
|
326
|
+
];
|
|
327
|
+
if (hintFn) {
|
|
328
|
+
content.push({ type: "text", text: hintFn(compact, truncated, originalBytes) });
|
|
329
|
+
}
|
|
330
|
+
else if (truncated) {
|
|
331
|
+
content.push({
|
|
332
|
+
type: "text",
|
|
333
|
+
text: `[Response was ${originalBytes} bytes — truncated to fit the tool-result budget. Arrays in the JSON above have been shortened (look for "__truncated__" markers). For full data, request a smaller page (lower count/limit, narrower query, or use pagination).]`,
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
return { content };
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Serialize `data` as JSON, shrinking embedded arrays if the result exceeds
|
|
340
|
+
* `maxBytes`. Strategy: try the full payload, then progressively cap every
|
|
341
|
+
* array in the tree at smaller and smaller limits (50 → 20 → 10 → 5 → 2 → 1).
|
|
342
|
+
* If even a single-element trim doesn't fit, hard-slice the original with a
|
|
343
|
+
* truncation marker so the response never blows past the budget.
|
|
344
|
+
*/
|
|
345
|
+
function serializeWithBudget(data, maxBytes) {
|
|
346
|
+
const full = JSON.stringify(data) ?? "";
|
|
347
|
+
if (full.length <= maxBytes) {
|
|
348
|
+
return { text: full, truncated: false, originalBytes: full.length };
|
|
349
|
+
}
|
|
350
|
+
for (const cap of [50, 20, 10, 5, 2, 1]) {
|
|
351
|
+
const trimmed = capArrays(data, cap);
|
|
352
|
+
const text = JSON.stringify(trimmed) ?? "";
|
|
353
|
+
if (text.length <= maxBytes) {
|
|
354
|
+
return { text, truncated: true, originalBytes: full.length };
|
|
355
|
+
}
|
|
356
|
+
}
|
|
304
357
|
return {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
358
|
+
text: full.slice(0, maxBytes - 200) + `\n\n/* TRUNCATED — original ${full.length} bytes, hard-cut at ${maxBytes - 200}. JSON above this line is incomplete and may not parse. Use a more specific query. */`,
|
|
359
|
+
truncated: true,
|
|
360
|
+
originalBytes: full.length,
|
|
308
361
|
};
|
|
309
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* Recursively walk `value` and return a deep copy where every array longer
|
|
365
|
+
* than `cap` is sliced to `cap` items, with a sentinel string element
|
|
366
|
+
* appended so the LLM can see *that* truncation happened.
|
|
367
|
+
*/
|
|
368
|
+
function capArrays(value, cap) {
|
|
369
|
+
if (Array.isArray(value)) {
|
|
370
|
+
const out = value.slice(0, cap).map((v) => capArrays(v, cap));
|
|
371
|
+
if (value.length > cap) {
|
|
372
|
+
out.push(`__truncated__: ${value.length - cap} of ${value.length} items omitted`);
|
|
373
|
+
}
|
|
374
|
+
return out;
|
|
375
|
+
}
|
|
376
|
+
if (value && typeof value === "object") {
|
|
377
|
+
const out = {};
|
|
378
|
+
for (const [k, v] of Object.entries(value)) {
|
|
379
|
+
out[k] = capArrays(v, cap);
|
|
380
|
+
}
|
|
381
|
+
return out;
|
|
382
|
+
}
|
|
383
|
+
return value;
|
|
384
|
+
}
|
|
310
385
|
// --- MCP Server ---
|
|
311
386
|
const server = new mcp_js_1.McpServer({
|
|
312
387
|
name: "AgentKey",
|
|
313
|
-
version: "0.0.
|
|
388
|
+
version: "0.0.10",
|
|
314
389
|
description: `AgentKey provides 4 tools: search, scrape, social, crypto.
|
|
315
390
|
|
|
316
391
|
MOST IMPORTANT RULE — USE YOUR OWN KNOWLEDGE FIRST:
|
|
@@ -321,7 +396,7 @@ MOST IMPORTANT RULE — USE YOUR OWN KNOWLEDGE FIRST:
|
|
|
321
396
|
|
|
322
397
|
DECISION TREE (only when a tool IS needed):
|
|
323
398
|
1. Crypto prices, on-chain data, wallets, NFTs → agentkey_crypto
|
|
324
|
-
2. Social media content (Twitter,
|
|
399
|
+
2. Social media content (Twitter/X, TikTok, Douyin, Xiaohongshu, Instagram, Reddit, Weibo, Bilibili, YouTube, Zhihu, LinkedIn, Threads, Kuaishou, Lemon8, WeChat Channels, Toutiao, …) → agentkey_social
|
|
325
400
|
3. Full content of a specific URL → agentkey_scrape
|
|
326
401
|
4. Web search, news, general real-time info → agentkey_search
|
|
327
402
|
|
|
@@ -437,14 +512,13 @@ Preferences:
|
|
|
437
512
|
if (!ok) {
|
|
438
513
|
return errorResult(`Search failed: ${data.error || JSON.stringify(data)}`);
|
|
439
514
|
}
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
return compact;
|
|
515
|
+
return compactResult(data, (compact) => {
|
|
516
|
+
const results = compact?.results;
|
|
517
|
+
const count = results?.length ?? 0;
|
|
518
|
+
return count > 0
|
|
519
|
+
? `[${count} results returned. Analyze these before making additional searches. Use agentkey_scrape only if you need the full content of a specific URL above.]`
|
|
520
|
+
: `[No results. Try broader keywords or a different type/time_range. Do NOT retry the same query.]`;
|
|
521
|
+
});
|
|
448
522
|
}
|
|
449
523
|
catch (err) {
|
|
450
524
|
return errorResult(`Failed to connect to AgentKey server at ${AGENTKEY_BASE_URL}: ${err}`);
|
|
@@ -551,262 +625,200 @@ Preferences:
|
|
|
551
625
|
return errorResult(`Failed to connect to AgentKey server at ${AGENTKEY_BASE_URL}: ${err}`);
|
|
552
626
|
}
|
|
553
627
|
});
|
|
554
|
-
// Social
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
REQUIRED — the "platform" parameter is REQUIRED on every call. Always infer it from the user's request before calling; never omit it. There is no default.
|
|
560
|
-
|
|
561
|
-
THINK BEFORE CALLING — use your own knowledge first:
|
|
562
|
-
- For general knowledge about platforms, creators, or public figures, answer from your training data.
|
|
563
|
-
- Only call when the user needs REAL-TIME social media content: recent posts, live discussions, current trends, or specific post details.
|
|
564
|
-
- Examples that do NOT need this tool: "who is Elon Musk on Twitter", "what is Reddit", "how does TikTok algorithm work".
|
|
565
|
-
- Examples that NEED this tool: "what is @elonmusk tweeting about today", "trending topics on Weibo now", "latest posts in r/cryptocurrency".
|
|
566
|
-
|
|
567
|
-
USE THIS TOOL (instead of agentkey_search) when the user asks about real-time social media content.
|
|
628
|
+
// Social catalog discovery tool — search the ~990 mirrored TikHub
|
|
629
|
+
// endpoints by platform + keyword. The model is supposed to call this
|
|
630
|
+
// BEFORE agentkey_social when it doesn't already know the right path.
|
|
631
|
+
server.tool("agentkey_social_catalog", `Search the AgentKey social-endpoint catalog (~990 TikHub-mirrored endpoints across ~46 platforms / surfaces). Use this BEFORE calling agentkey_social when you don't already know the exact endpoint path.
|
|
568
632
|
|
|
569
|
-
|
|
633
|
+
WORKFLOW:
|
|
634
|
+
1. Call agentkey_social_catalog with platform + q to find candidate paths
|
|
635
|
+
2. Read the candidates' summaries and required params
|
|
636
|
+
3. Call agentkey_social with the chosen path and the right params
|
|
570
637
|
|
|
571
|
-
|
|
638
|
+
WHEN TO CALL:
|
|
639
|
+
- You don't know the exact TikHub path for a task → call this first.
|
|
640
|
+
- The user asked something like "what's trending on weibo" / "find recent reddit posts about X" / "look up this tiktok video" — search by platform + keyword.
|
|
641
|
+
- A previous agentkey_social call returned 404 with suggestions — those suggestions are usually right; you don't need to call this again.
|
|
572
642
|
|
|
573
|
-
|
|
643
|
+
PARAMETERS:
|
|
644
|
+
- platform: TikHub platform prefix (tiktok / douyin / weibo / twitter / instagram / xiaohongshu / reddit / bilibili / youtube / zhihu / linkedin / threads / kuaishou / …). Optional but strongly recommended — narrows results hugely.
|
|
645
|
+
- q: case-insensitive substring matched against endpoint path AND summary. Use ONE keyword (e.g. "trending", "search", "comment", "user", "post", "detail", "feed", "hot"). Multiple words usually return zero results.
|
|
646
|
+
- limit: max results (default 20, max 100).
|
|
574
647
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
detail/comments post_id
|
|
580
|
-
replies/media username
|
|
581
|
-
followers/following username
|
|
582
|
-
highlights user_id
|
|
583
|
-
retweets post_id
|
|
584
|
-
trending (country optional)
|
|
648
|
+
RESPONSE — { count, total, endpoints: [{ path, method, summary, params, has_body }, ...] }
|
|
649
|
+
- "path" is what you pass to agentkey_social.
|
|
650
|
+
- "params" lists each query parameter, including which are Required.
|
|
651
|
+
- "has_body" = true means it's a POST endpoint and "params" becomes the JSON body.
|
|
585
652
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
653
|
+
EXAMPLES:
|
|
654
|
+
- platform="tiktok", q="trending" → tiktok/web/fetch_trending_post, tiktok/web/fetch_trending_searchwords, …
|
|
655
|
+
- platform="weibo", q="hot" → weibo/web_v2/fetch_hot_search, weibo/app/fetch_hot_search_list, …
|
|
656
|
+
- platform="reddit", q="search" → reddit/app/fetch_search_posts, reddit/app/fetch_search_users, …
|
|
657
|
+
- platform="linkedin", q="job" → linkedin/web/search_jobs, linkedin/web/get_job_detail, …
|
|
591
658
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
659
|
+
STRICT RULES:
|
|
660
|
+
- ONE call per turn; analyze the candidates before doing anything else.
|
|
661
|
+
- This tool is read-only and cheap; using it before agentkey_social is the right default.`, {
|
|
662
|
+
platform: zod_1.z
|
|
663
|
+
.string()
|
|
664
|
+
.optional()
|
|
665
|
+
.describe("Platform prefix to filter by, e.g. 'tiktok', 'weibo'. Optional but strongly recommended. Matches the first segment of the endpoint path."),
|
|
666
|
+
q: zod_1.z
|
|
667
|
+
.string()
|
|
668
|
+
.optional()
|
|
669
|
+
.describe("Case-insensitive substring matched against endpoint path AND summary. Use ONE keyword for best results."),
|
|
670
|
+
limit: zod_1.z
|
|
671
|
+
.coerce.number()
|
|
672
|
+
.min(1)
|
|
673
|
+
.max(100)
|
|
674
|
+
.optional()
|
|
675
|
+
.describe("Max results to return. Default 20, max 100."),
|
|
676
|
+
}, async ({ platform, q, limit }) => {
|
|
677
|
+
const body = {};
|
|
678
|
+
if (platform)
|
|
679
|
+
body.platform = platform;
|
|
680
|
+
if (q)
|
|
681
|
+
body.q = q;
|
|
682
|
+
if (limit)
|
|
683
|
+
body.limit = limit;
|
|
684
|
+
try {
|
|
685
|
+
const { ok, data } = await callAPI("/v1/social/catalog", body);
|
|
686
|
+
if (!ok) {
|
|
687
|
+
return errorResult(`Catalog search failed: ${data.error || JSON.stringify(data)}`);
|
|
688
|
+
}
|
|
689
|
+
return compactResult(data, (compact) => {
|
|
690
|
+
const c = compact;
|
|
691
|
+
const count = c.count ?? 0;
|
|
692
|
+
const total = c.total ?? 0;
|
|
693
|
+
return count > 0
|
|
694
|
+
? `[${count} of ${total} endpoints matched. Pick the one whose summary best fits the user's intent and call agentkey_social with its "path".]`
|
|
695
|
+
: `[No endpoints matched. Try a different platform or a single broader keyword (e.g. "search", "hot", "trending"). Do NOT retry the same query.]`;
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
catch (err) {
|
|
699
|
+
return errorResult(`Failed to connect to AgentKey server at ${AGENTKEY_BASE_URL}: ${err}`);
|
|
700
|
+
}
|
|
701
|
+
});
|
|
702
|
+
// Social media tool — dispatcher over the TikHub mirror.
|
|
703
|
+
//
|
|
704
|
+
// AgentKey mirrors the full TikHub OpenAPI surface (~46 platform/surface
|
|
705
|
+
// packages, ~990 endpoints). Rather than enumerate every endpoint as its own
|
|
706
|
+
// MCP tool — which would blow past most clients' tool-list limits — we expose
|
|
707
|
+
// a single dispatcher tool. The LLM passes a TikHub-style path plus a JSON
|
|
708
|
+
// params object; the AgentKey server forwards verbatim. The catalog of
|
|
709
|
+
// available paths is served from GET /v1/social/_catalog (no auth).
|
|
710
|
+
server.tool("agentkey_social", `Browse social media content across the TikHub mirror (~46 platforms / ~990 endpoints).
|
|
612
711
|
|
|
613
|
-
|
|
614
|
-
search/topics query
|
|
615
|
-
articles query OR user_url_token
|
|
616
|
-
videos query OR user_url_token
|
|
617
|
-
columns query OR column_id
|
|
618
|
-
answers question_id
|
|
619
|
-
user/posts user_url_token
|
|
620
|
-
hot_list (no extra)
|
|
712
|
+
DISPATCH MODEL — this tool is a thin pass-through to TikHub's REST API. You pick the upstream endpoint by setting "path" (e.g. "tiktok/web/fetch_post_detail"), and the parameters in "params". The AgentKey server forwards verbatim.
|
|
621
713
|
|
|
622
|
-
|
|
623
|
-
search/search_users/search_hashtags query
|
|
624
|
-
user sec_user_id OR unique_id
|
|
625
|
-
posts/liked sec_user_id
|
|
626
|
-
detail/comments aweme_id
|
|
627
|
-
hashtag_detail/hashtag_videos ch_id OR hashtag
|
|
628
|
-
music_detail/music_videos music_id
|
|
629
|
-
home_feed (no extra)
|
|
630
|
-
NOTE: tiktok search.sort accepts only "relevance" or "most_liked".
|
|
631
|
-
NOTE: tiktok search.time accepts "day"/"week"/"month"/"quarter"/"halfyear".
|
|
714
|
+
DISCOVERY — call agentkey_social_catalog FIRST when you don't know the exact path. It searches the ~990 endpoints by platform + keyword and returns matching entries with their summaries and required params. Don't guess paths; the catalog is cheap and precise.
|
|
632
715
|
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
716
|
+
PATH NAMING — paths mirror TikHub's structure exactly: "{platform}/{surface}/{action}", for example:
|
|
717
|
+
twitter/web/fetch_tweet_detail
|
|
718
|
+
tiktok/web/fetch_post_detail
|
|
719
|
+
tiktok/app/v3/fetch_one_video
|
|
720
|
+
xiaohongshu/web_v2/get_note_info
|
|
721
|
+
instagram/v3/fetch_user_posts_v2
|
|
722
|
+
weibo/web_v2/fetch_user_info
|
|
723
|
+
bilibili/web/fetch_video_data
|
|
724
|
+
youtube/web/get_video_info_v2
|
|
725
|
+
linkedin/web/fetch_linkedin_profile_by_username
|
|
726
|
+
Trust the catalog over guesses — many platforms have multiple surfaces (web/app/v2/v3) with different endpoints.
|
|
638
727
|
|
|
639
|
-
|
|
640
|
-
search query (sort: totalrank/click/pubdate/dm/stow)
|
|
641
|
-
search_by_type query AND search_type (video/bangumi/pgc/live/article/user)
|
|
642
|
-
sort enum: 0=综合 / 1=最新 / 2=播放 / 3=弹幕
|
|
643
|
-
detail/comments bv_id OR av_id
|
|
644
|
-
user/posts user_id
|
|
645
|
-
popular (no extra)
|
|
728
|
+
Platforms covered: TikTok (web + app + ads + analytics + creator + shop), Douyin (web + app + search + billboard + xingtu + creator), Xiaohongshu (小红书, multiple web/app surfaces), Instagram (v1/v2/v3), Twitter/X, Reddit, Weibo (微博, multiple surfaces), Bilibili (B站), YouTube (web + v2), Zhihu (知乎), LinkedIn, Threads, Kuaishou (快手), Lemon8, Pipixia, WeChat Channels & Media Platform, Toutiao (今日头条), Xigua (西瓜视频), Sora2.
|
|
646
729
|
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
hot_search (no extra)
|
|
730
|
+
THINK BEFORE CALLING — use your own knowledge first:
|
|
731
|
+
- For static facts about platforms, creators, or public figures, answer from your training data.
|
|
732
|
+
- Only call when the user needs REAL-TIME content: recent posts, current trends, live discussions, specific post details.
|
|
733
|
+
- Examples that do NOT need this tool: "who is Elon Musk on Twitter", "what is Reddit", "how does TikTok algorithm work".
|
|
734
|
+
- Examples that NEED this tool: "what is @elonmusk tweeting about today", "trending topics on Weibo now", "latest posts in r/cryptocurrency".
|
|
653
735
|
|
|
654
|
-
|
|
655
|
-
search/search_top/search_recent query
|
|
656
|
-
user username
|
|
657
|
-
posts username OR user_id
|
|
658
|
-
detail/comments post_id
|
|
736
|
+
USE THIS TOOL (instead of agentkey_search) when the user asks about real-time social media content.
|
|
659
737
|
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
channel_videos/channel_shorts channel_id
|
|
738
|
+
STRICT RULES:
|
|
739
|
+
- ONE CALL PER TURN. Wait for results before deciding the next step.
|
|
740
|
+
- If the upstream returns 404 or "not found", the resource genuinely does not exist — tell the user, do NOT retry the same path with a guessed id, do NOT switch to a sibling endpoint with the same id, do NOT guess a different username.
|
|
741
|
+
- If you do not know the right path, prefer asking the user over guessing — wrong paths waste credits.
|
|
665
742
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
company_people/company_posts/company_jobs/company_job_count
|
|
672
|
-
company_id (call type=company first to resolve company_id)
|
|
673
|
-
search_jobs query (optional: date_posted, experience_level, job_type, remote)
|
|
674
|
-
search_people query OR title OR company_name OR school (at least one)
|
|
675
|
-
job_detail job_id
|
|
743
|
+
PARAMS — pass exactly the field names TikHub expects (camelCase or snake_case as documented per endpoint). The catalog tells you which parameters are required and what type. Common patterns:
|
|
744
|
+
- video / post detail endpoints take an id field (itemId, aweme_id, note_id, video_id, status_id, …)
|
|
745
|
+
- user-profile endpoints take a username, sec_user_id, user_id, or url_token depending on the surface
|
|
746
|
+
- search endpoints take a keyword/query plus pagination (offset, page, cursor)
|
|
747
|
+
- list endpoints often paginate with cursor (twitter, instagram, threads) or page (xiaohongshu, bilibili search)
|
|
676
748
|
|
|
677
|
-
|
|
749
|
+
Stable IDs > usernames — when a stable id is available (user_id / urn / sec_user_id / aweme_id / bv_id) prefer it; usernames are only entry points and may be unstable.
|
|
678
750
|
|
|
679
751
|
Stable IDs > usernames — when a stable id is available (user_id / urn / sec_user_id / aweme_id / bv_id) prefer it; usernames are only entry points and may be unstable.`, {
|
|
680
|
-
|
|
681
|
-
.
|
|
682
|
-
.describe("REQUIRED.
|
|
683
|
-
|
|
684
|
-
.
|
|
685
|
-
"search", "posts", "comments", "user", "detail", "followers", "following", "highlights",
|
|
686
|
-
"latest_comments", "replies", "media", "retweets", "trending",
|
|
687
|
-
"faved", "search_users", "search_images", "search_products", "search_groups",
|
|
688
|
-
"product_detail", "product_review_overview", "product_reviews", "product_recs",
|
|
689
|
-
"topic_info", "topic_feed", "creator_feed", "creator_hot_feed",
|
|
690
|
-
"search_hashtags", "general_search", "user_brief", "user_about", "tagged", "reels",
|
|
691
|
-
"stories", "highlight_stories", "comment_replies", "explore", "recommended_reels",
|
|
692
|
-
"location_info", "location_posts", "hashtag_posts",
|
|
693
|
-
"articles", "answers", "hot_list", "columns", "topics", "videos",
|
|
694
|
-
"hashtag_detail", "hashtag_videos", "music_detail", "music_videos", "liked", "home_feed",
|
|
695
|
-
"hot_search", "mix_detail", "mix_videos", "series_detail", "series_videos",
|
|
696
|
-
"popular", "search_by_type",
|
|
697
|
-
"ai_search", "timeline", "reposts", "likes", "album", "super_topics",
|
|
698
|
-
"search_top", "search_recent",
|
|
699
|
-
"channel_videos", "channel_shorts", "related", "captions", "search_shorts", "search_channels",
|
|
700
|
-
// LinkedIn
|
|
701
|
-
"company", "company_people", "company_posts", "company_jobs", "company_job_count",
|
|
702
|
-
"search_jobs", "search_people", "job_detail",
|
|
703
|
-
"experience", "skills", "educations", "certifications", "publications", "honors",
|
|
704
|
-
"recommendations", "contact", "interests_groups", "interests_companies",
|
|
705
|
-
"user_images", "user_videos", "about",
|
|
706
|
-
])
|
|
752
|
+
path: zod_1.z
|
|
753
|
+
.string()
|
|
754
|
+
.describe("REQUIRED. TikHub-style endpoint path WITHOUT the /v1/social/ prefix, e.g. 'tiktok/web/fetch_post_detail' or 'twitter/web/fetch_tweet_detail'. See GET /v1/social/_catalog for the full list."),
|
|
755
|
+
params: zod_1.z
|
|
756
|
+
.union([zod_1.z.record(zod_1.z.unknown()), zod_1.z.string()])
|
|
707
757
|
.optional()
|
|
708
|
-
.describe("
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
user_id: zod_1.z.string().optional().describe("Stable user ID. Prefer over username when known."),
|
|
713
|
-
post_id: zod_1.z.string().optional().describe("Post/tweet/note/video ID for detail/comments/reposts/etc."),
|
|
714
|
-
comment_id: zod_1.z.string().optional().describe("Comment ID."),
|
|
715
|
-
cursor: zod_1.z.string().optional().describe("Pagination cursor — pass back the next_cursor from the previous response."),
|
|
716
|
-
// --- xiaohongshu ---
|
|
717
|
-
note_id: zod_1.z.string().optional().describe("Xiaohongshu note ID."),
|
|
718
|
-
share_text: zod_1.z.string().optional().describe("Xiaohongshu sharing link / text."),
|
|
719
|
-
sku_id: zod_1.z.string().optional().describe("Xiaohongshu product SKU ID."),
|
|
720
|
-
topic_id: zod_1.z.string().optional().describe("Xiaohongshu topic page ID."),
|
|
721
|
-
// --- instagram ---
|
|
722
|
-
shortcode: zod_1.z.string().optional().describe("Instagram post shortcode (the bit after /p/ in a URL)."),
|
|
723
|
-
media_id: zod_1.z.string().optional().describe("Instagram media ID."),
|
|
724
|
-
hashtag: zod_1.z.string().optional().describe("Hashtag without # prefix."),
|
|
725
|
-
location_id: zod_1.z.string().optional().describe("Instagram location ID."),
|
|
726
|
-
highlight_id: zod_1.z.string().optional().describe("Instagram highlight ID."),
|
|
727
|
-
// --- reddit ---
|
|
728
|
-
subreddit: zod_1.z.string().optional().describe("Subreddit name without r/ prefix."),
|
|
729
|
-
// --- zhihu ---
|
|
730
|
-
user_url_token: zod_1.z.string().optional().describe("Zhihu user URL token (the part after zhihu.com/people/)."),
|
|
731
|
-
question_id: zod_1.z.string().optional().describe("Zhihu question ID."),
|
|
732
|
-
article_id: zod_1.z.string().optional().describe("Zhihu article ID."),
|
|
733
|
-
column_id: zod_1.z.string().optional().describe("Zhihu column ID."),
|
|
734
|
-
answer_id: zod_1.z.string().optional().describe("Zhihu answer ID."),
|
|
735
|
-
// --- tiktok / douyin ---
|
|
736
|
-
sec_user_id: zod_1.z.string().optional().describe("TikTok / Douyin sec_user_id (stable user ID)."),
|
|
737
|
-
unique_id: zod_1.z.string().optional().describe("TikTok username (unique_id)."),
|
|
738
|
-
aweme_id: zod_1.z.string().optional().describe("TikTok / Douyin video ID."),
|
|
739
|
-
music_id: zod_1.z.string().optional().describe("Music / audio ID."),
|
|
740
|
-
ch_id: zod_1.z.string().optional().describe("Hashtag / challenge ID."),
|
|
741
|
-
share_url: zod_1.z.string().optional().describe("Share URL."),
|
|
742
|
-
mix_id: zod_1.z.string().optional().describe("Douyin mix / collection ID."),
|
|
743
|
-
series_id: zod_1.z.string().optional().describe("Douyin series ID."),
|
|
744
|
-
// --- bilibili ---
|
|
745
|
-
av_id: zod_1.z.string().optional().describe("Bilibili AV ID."),
|
|
746
|
-
bv_id: zod_1.z.string().optional().describe("Bilibili BV ID."),
|
|
747
|
-
search_type: zod_1.z.enum(["video", "bangumi", "pgc", "live", "article", "user"]).optional().describe("Bilibili search_by_type filter."),
|
|
748
|
-
// --- weibo ---
|
|
749
|
-
uid: zod_1.z.string().optional().describe("Weibo user ID."),
|
|
750
|
-
status_id: zod_1.z.string().optional().describe("Weibo status/post ID."),
|
|
751
|
-
// --- youtube ---
|
|
752
|
-
video_id: zod_1.z.string().optional().describe("YouTube video ID."),
|
|
753
|
-
channel_id: zod_1.z.string().optional().describe("YouTube channel ID."),
|
|
754
|
-
channel_url: zod_1.z.string().optional().describe("YouTube channel URL."),
|
|
755
|
-
// --- linkedin ---
|
|
756
|
-
urn: zod_1.z.string().optional().describe("LinkedIn user URN. Required for most user-detail types; obtain by calling type=user with a username first."),
|
|
757
|
-
company_id: zod_1.z.string().optional().describe("LinkedIn company ID. Required for company_people/company_posts/company_jobs/company_job_count; obtain by calling type=company first."),
|
|
758
|
-
company_name: zod_1.z.string().optional().describe("LinkedIn company name or slug. Used by type=company and search_people."),
|
|
759
|
-
job_id: zod_1.z.string().optional().describe("LinkedIn job ID for type=job_detail."),
|
|
760
|
-
title: zod_1.z.string().optional().describe("LinkedIn job title filter for search_people."),
|
|
761
|
-
school: zod_1.z.string().optional().describe("LinkedIn school filter for search_people."),
|
|
762
|
-
date_posted: zod_1.z.string().optional().describe("LinkedIn search_jobs date filter."),
|
|
763
|
-
experience_level: zod_1.z.string().optional().describe("LinkedIn search_jobs experience level filter."),
|
|
764
|
-
job_type: zod_1.z.string().optional().describe("LinkedIn search_jobs job type filter."),
|
|
765
|
-
remote: zod_1.z.string().optional().describe("LinkedIn search_jobs remote filter."),
|
|
766
|
-
// --- common modifiers ---
|
|
767
|
-
sort: zod_1.z.string().optional().describe("Sort order. Values vary per platform — see the platform guide. Examples: relevance/hot/top/new/latest/comments (most), most_liked (tiktok), totalrank/click/pubdate (bilibili search)."),
|
|
768
|
-
time: zod_1.z.string().optional().describe("Time window. Values vary per platform — see the platform guide. Examples: hour/day/week/month/year/all (most), day/week/month/quarter/halfyear (tiktok)."),
|
|
769
|
-
category: zod_1.z.string().optional().describe("Category filter."),
|
|
770
|
-
country: zod_1.z.string().optional().describe("Country code (e.g. for Twitter trending)."),
|
|
771
|
-
num: zod_1.z.coerce.number().int().min(1).max(100).optional().describe("Number of results to return (1–100, default 10). Soft cap — server truncates."),
|
|
772
|
-
page: zod_1.z.coerce.number().int().min(1).optional().describe("Page number for page-based pagination (xiaohongshu / bilibili search). Use 'cursor' for cursor-based platforms instead."),
|
|
773
|
-
}, async (params) => {
|
|
774
|
-
const body = {};
|
|
775
|
-
for (const [k, v] of Object.entries(params)) {
|
|
776
|
-
if (v !== undefined && v !== null)
|
|
777
|
-
body[k] = v;
|
|
758
|
+
.describe("Parameters to forward to the upstream endpoint. Pass an OBJECT with the field names TikHub documents (camelCase or snake_case). For GET endpoints they become a query string; for POST endpoints they become the JSON body. Example: {\"itemId\":\"7339393672959757570\"}. Empty object {} is allowed."),
|
|
759
|
+
}, async ({ path, params }) => {
|
|
760
|
+
if (!path) {
|
|
761
|
+
return errorResult(`"path" is required. GET /v1/social/_catalog for the full list of TikHub endpoints.`);
|
|
778
762
|
}
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
if (!ok || errType) {
|
|
787
|
-
const errMsg = data.error || JSON.stringify(data);
|
|
788
|
-
if (errType === "not_found") {
|
|
789
|
-
return errorResult(`${errMsg}\n\n[The username/id/post_id you asked for does not exist on this platform. Tell the user the resource was not found. Do NOT retry, do NOT guess a different id, do NOT switch types.]`);
|
|
763
|
+
// Accept params as either an object or a JSON-encoded string (some
|
|
764
|
+
// clients/tool schemas marshal nested objects as strings).
|
|
765
|
+
let paramsObj = {};
|
|
766
|
+
if (typeof params === "string") {
|
|
767
|
+
if (params.trim() !== "") {
|
|
768
|
+
try {
|
|
769
|
+
paramsObj = JSON.parse(params);
|
|
790
770
|
}
|
|
791
|
-
|
|
792
|
-
return errorResult(
|
|
771
|
+
catch (err) {
|
|
772
|
+
return errorResult(`"params" was a string but not valid JSON: ${err}. Pass an object instead.`);
|
|
793
773
|
}
|
|
794
|
-
|
|
795
|
-
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
else if (params && typeof params === "object") {
|
|
777
|
+
paramsObj = params;
|
|
778
|
+
}
|
|
779
|
+
try {
|
|
780
|
+
const { ok, status, data } = await callAPI("/v1/social/dispatch", {
|
|
781
|
+
path,
|
|
782
|
+
params: paramsObj,
|
|
783
|
+
});
|
|
784
|
+
if (!ok) {
|
|
785
|
+
const errMsg = data.error || JSON.stringify(data);
|
|
786
|
+
if (status === 404) {
|
|
787
|
+
// The server's 404 response includes a "suggestions" array of
|
|
788
|
+
// catalog entries that share tokens with the unknown path. Pull
|
|
789
|
+
// them out so the LLM can pick one and retry without a separate
|
|
790
|
+
// catalog round-trip.
|
|
791
|
+
const suggestions = data.suggestions;
|
|
792
|
+
let suggestionText = "";
|
|
793
|
+
if (suggestions && suggestions.length > 0) {
|
|
794
|
+
suggestionText =
|
|
795
|
+
"\n\nDid you mean one of these?\n" +
|
|
796
|
+
suggestions
|
|
797
|
+
.map((s) => ` - ${s.path}${s.summary ? " — " + s.summary : ""}`)
|
|
798
|
+
.join("\n");
|
|
799
|
+
}
|
|
800
|
+
return errorResult(`${errMsg}${suggestionText}\n\n[Unknown endpoint path. If a suggestion above looks right, retry once with that path. Otherwise call agentkey_social_catalog to search. Do NOT retry the same path.]`);
|
|
796
801
|
}
|
|
797
|
-
if (
|
|
798
|
-
return errorResult(`${errMsg}\n\n[
|
|
802
|
+
if (status === 400) {
|
|
803
|
+
return errorResult(`${errMsg}\n\n[Bad request — usually a missing required parameter. Check the catalog entry for this endpoint to see which fields are required.]`);
|
|
799
804
|
}
|
|
800
|
-
return errorResult(`Social
|
|
805
|
+
return errorResult(`Social call failed (HTTP ${status}): ${errMsg}`);
|
|
806
|
+
}
|
|
807
|
+
// Detect upstream "not found" semantics — TikHub usually returns
|
|
808
|
+
// 200 with an error code in the body, so we can't rely on HTTP status
|
|
809
|
+
// alone. Surface a clear hint to the LLM not to retry blindly.
|
|
810
|
+
const code = data.code;
|
|
811
|
+
if (typeof code === "number" && code !== 0 && code !== 200) {
|
|
812
|
+
const upstreamMsg = data.message || JSON.stringify(data);
|
|
813
|
+
return errorResult(`Upstream returned code ${code}: ${upstreamMsg}\n\n[The upstream signaled an error (not a network failure). Likely the user/post/id does not exist or a parameter is wrong. Tell the user; do NOT retry the same call.]`);
|
|
801
814
|
}
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
return compact;
|
|
815
|
+
return compactResult(data, (_compact, truncated, originalBytes) => {
|
|
816
|
+
const base = `[Data returned from ${path}. Present the results to the user. Only make a follow-up call if the user asks for more details.]`;
|
|
817
|
+
if (truncated) {
|
|
818
|
+
return `${base}\n[Response was ${originalBytes} bytes — truncated to fit. Arrays in the JSON above have been shortened (look for "__truncated__" markers). For full data, request a smaller page (lower count/limit, narrower query, or use pagination).]`;
|
|
819
|
+
}
|
|
820
|
+
return base;
|
|
821
|
+
});
|
|
810
822
|
}
|
|
811
823
|
catch (err) {
|
|
812
824
|
return errorResult(`Failed to connect to AgentKey server at ${AGENTKEY_BASE_URL}: ${err}`);
|
|
@@ -1150,10 +1162,7 @@ Preferences:
|
|
|
1150
1162
|
if (!ok) {
|
|
1151
1163
|
return errorResult(`Crypto query failed: ${data.error || JSON.stringify(data)}`);
|
|
1152
1164
|
}
|
|
1153
|
-
|
|
1154
|
-
compact.content[0].text +=
|
|
1155
|
-
`\n\n[Data returned. Present the results to the user. Do NOT make follow-up crypto calls unless the user asks for additional data.]`;
|
|
1156
|
-
return compact;
|
|
1165
|
+
return compactResult(data, () => `[Data returned. Present the results to the user. Do NOT make follow-up crypto calls unless the user asks for additional data.]`);
|
|
1157
1166
|
}
|
|
1158
1167
|
catch (err) {
|
|
1159
1168
|
return errorResult(`Failed to connect to AgentKey server at ${AGENTKEY_BASE_URL}: ${err}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|