@cyanheads/gdelt-mcp-server 0.1.4 → 0.1.6
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/CLAUDE.md +18 -38
- package/README.md +24 -1
- package/changelog/0.1.x/0.1.5.md +29 -0
- package/changelog/0.1.x/0.1.6.md +33 -0
- package/changelog/template.md +9 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.d.ts +9 -8
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.js +17 -14
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.d.ts +10 -8
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.js +16 -9
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.d.ts +5 -3
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.js +11 -7
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.d.ts +5 -4
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.js +11 -11
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.d.ts +5 -4
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.js +9 -9
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.d.ts +4 -3
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.js +10 -9
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/list-tv-stations.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/list-tv-stations.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts +6 -5
- package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-articles.tool.js +14 -17
- package/dist/mcp-server/tools/definitions/search-articles.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-tv.tool.d.ts +5 -3
- package/dist/mcp-server/tools/definitions/search-tv.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-tv.tool.js +10 -7
- package/dist/mcp-server/tools/definitions/search-tv.tool.js.map +1 -1
- package/dist/services/gdelt/gdelt-tv-service.js +1 -1
- package/dist/services/gdelt/gdelt-tv-service.js.map +1 -1
- package/package.json +9 -4
- package/server.json +9 -3
|
@@ -52,7 +52,6 @@ export const gdeltGetToneDistribution = tool('gdelt_get_tone_distribution', {
|
|
|
52
52
|
.describe('End datetime in GDELT format YYYYMMDDHHMMSS. Must pair with startDatetime.'),
|
|
53
53
|
}),
|
|
54
54
|
output: z.object({
|
|
55
|
-
query: z.string().describe('Echoed query string.'),
|
|
56
55
|
histogram: z
|
|
57
56
|
.array(z
|
|
58
57
|
.object({
|
|
@@ -82,11 +81,17 @@ export const gdeltGetToneDistribution = tool('gdelt_get_tone_distribution', {
|
|
|
82
81
|
.describe('Percentage of articles in the near-neutral range (bins -2 to +2).'),
|
|
83
82
|
})
|
|
84
83
|
.describe('Summary statistics derived from the histogram.'),
|
|
84
|
+
}),
|
|
85
|
+
// Agent-facing context — query echo and notice on empty results.
|
|
86
|
+
// Reaches structuredContent and content[] automatically; never in the domain return.
|
|
87
|
+
enrichment: {
|
|
88
|
+
effectiveQuery: z.string().describe('Echoed query string for use in follow-up calls.'),
|
|
89
|
+
totalCount: z.number().describe('Total number of articles across all histogram bins.'),
|
|
85
90
|
notice: z
|
|
86
91
|
.string()
|
|
87
92
|
.optional()
|
|
88
|
-
.describe('Recovery hint when no data was returned. Absent on successful responses.'),
|
|
89
|
-
}
|
|
93
|
+
.describe('Recovery hint when no tone data was returned. Absent on successful responses.'),
|
|
94
|
+
},
|
|
90
95
|
async handler(input, ctx) {
|
|
91
96
|
ctx.log.info('gdelt_get_tone_distribution', { query: input.query });
|
|
92
97
|
const svc = getGdeltDocService();
|
|
@@ -116,19 +121,18 @@ export const gdeltGetToneDistribution = tool('gdelt_get_tone_distribution', {
|
|
|
116
121
|
peakPositiveBin: peakPos.bin,
|
|
117
122
|
neutralPct: totalCount > 0 ? Math.round((neutralCount / totalCount) * 100) : 0,
|
|
118
123
|
};
|
|
124
|
+
ctx.enrich.echo(input.query);
|
|
125
|
+
ctx.enrich.total(totalCount);
|
|
119
126
|
ctx.log.info('gdelt_get_tone_distribution completed', { bins: bins.length, totalCount });
|
|
120
|
-
return {
|
|
127
|
+
return { histogram: bins, summary };
|
|
121
128
|
},
|
|
122
129
|
format: (result) => {
|
|
123
130
|
const lines = [
|
|
124
131
|
`## GDELT Tone Distribution`,
|
|
125
|
-
`**Query:** ${result.query}`,
|
|
126
132
|
`**Peak negative bin:** ${result.summary.peakNegativeBin}`,
|
|
127
133
|
`**Peak positive bin:** ${result.summary.peakPositiveBin}`,
|
|
128
134
|
`**Neutral articles (bins -2 to +2):** ${result.summary.neutralPct}%`,
|
|
129
135
|
];
|
|
130
|
-
if (result.notice)
|
|
131
|
-
lines.push(`\n> ${result.notice}`);
|
|
132
136
|
lines.push('\n### Histogram');
|
|
133
137
|
for (const b of result.histogram) {
|
|
134
138
|
const bar = '█'.repeat(Math.min(Math.ceil(b.count / 5), 20));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tone-distribution.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tone-distribution.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,6BAA6B,EAAE;IAC1E,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,0GAA0G;QAC1G,oGAAoG;QACpG,qGAAqG;QACrG,iDAAiD;QACjD,2FAA2F;QAC3F,mDAAmD;QACnD,0FAA0F;IAC5F,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAExD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,gDAAgD;YACtD,QAAQ,EAAE,6EAA6E;SACxF;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,+CAA+C;YACrD,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,mFAAmF;SAC9F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,4EAA4E;YAC1E,oEAAoE,CACvE;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uDAAuD;YACrD,mEAAmE,CACtE;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;KAC1F,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,
|
|
1
|
+
{"version":3,"file":"get-tone-distribution.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tone-distribution.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,6 @@ export declare const gdeltGetTvClips: import("@cyanheads/mcp-ts-core").ToolDefin
|
|
|
18
18
|
dateAsc: "dateAsc";
|
|
19
19
|
}>>;
|
|
20
20
|
}, z.core.$strip>, z.ZodObject<{
|
|
21
|
-
query: z.ZodString;
|
|
22
21
|
clips: z.ZodArray<z.ZodObject<{
|
|
23
22
|
show: z.ZodString;
|
|
24
23
|
station: z.ZodString;
|
|
@@ -27,8 +26,6 @@ export declare const gdeltGetTvClips: import("@cyanheads/mcp-ts-core").ToolDefin
|
|
|
27
26
|
archiveUrl: z.ZodString;
|
|
28
27
|
thumbnail: z.ZodOptional<z.ZodString>;
|
|
29
28
|
}, z.core.$strip>>;
|
|
30
|
-
totalReturned: z.ZodNumber;
|
|
31
|
-
notice: z.ZodOptional<z.ZodString>;
|
|
32
29
|
}, z.core.$strip>, readonly [{
|
|
33
30
|
readonly reason: "no_clips";
|
|
34
31
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -40,5 +37,9 @@ export declare const gdeltGetTvClips: import("@cyanheads/mcp-ts-core").ToolDefin
|
|
|
40
37
|
readonly when: "GDELT TV API is unreachable or rate-limited.";
|
|
41
38
|
readonly retryable: true;
|
|
42
39
|
readonly recovery: "Wait at least 5 seconds before retrying — GDELT enforces 1 request per 5 seconds.";
|
|
43
|
-
}]
|
|
40
|
+
}], {
|
|
41
|
+
readonly effectiveQuery: z.ZodString;
|
|
42
|
+
readonly totalCount: z.ZodNumber;
|
|
43
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
44
|
+
}>;
|
|
44
45
|
//# sourceMappingURL=get-tv-clips.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tv-clips.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-clips.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"get-tv-clips.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-clips.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqJ1B,CAAC"}
|
|
@@ -67,7 +67,6 @@ export const gdeltGetTvClips = tool('gdelt_get_tv_clips', {
|
|
|
67
67
|
.describe('Sort order: relevance (default), dateDesc (newest first), dateAsc (oldest first).'),
|
|
68
68
|
}),
|
|
69
69
|
output: z.object({
|
|
70
|
-
query: z.string().describe('Echoed query string.'),
|
|
71
70
|
clips: z
|
|
72
71
|
.array(z
|
|
73
72
|
.object({
|
|
@@ -83,12 +82,17 @@ export const gdeltGetTvClips = tool('gdelt_get_tv_clips', {
|
|
|
83
82
|
})
|
|
84
83
|
.describe('A single TV news clip with transcript excerpt and archive link.'))
|
|
85
84
|
.describe('Matching TV clips sorted per the sort parameter.'),
|
|
86
|
-
|
|
85
|
+
}),
|
|
86
|
+
// Agent-facing context — query echo, clip count, and notice on empty results.
|
|
87
|
+
// Reaches structuredContent and content[] automatically; never in the domain return.
|
|
88
|
+
enrichment: {
|
|
89
|
+
effectiveQuery: z.string().describe('Echoed query string for use in follow-up calls.'),
|
|
90
|
+
totalCount: z.number().describe('Number of clips returned.'),
|
|
87
91
|
notice: z
|
|
88
92
|
.string()
|
|
89
93
|
.optional()
|
|
90
94
|
.describe('Recovery hint when no clips matched. Absent on successful responses.'),
|
|
91
|
-
}
|
|
95
|
+
},
|
|
92
96
|
async handler(input, ctx) {
|
|
93
97
|
ctx.log.info('gdelt_get_tv_clips', { query: input.query, maxRecords: input.maxRecords });
|
|
94
98
|
const svc = getGdeltTvService();
|
|
@@ -109,17 +113,13 @@ export const gdeltGetTvClips = tool('gdelt_get_tv_clips', {
|
|
|
109
113
|
},
|
|
110
114
|
});
|
|
111
115
|
}
|
|
116
|
+
ctx.enrich.echo(input.query);
|
|
117
|
+
ctx.enrich.total(clips.length);
|
|
112
118
|
ctx.log.info('gdelt_get_tv_clips completed', { count: clips.length });
|
|
113
|
-
return {
|
|
119
|
+
return { clips };
|
|
114
120
|
},
|
|
115
121
|
format: (result) => {
|
|
116
|
-
const lines = [
|
|
117
|
-
`## GDELT TV Clips`,
|
|
118
|
-
`**Query:** ${result.query}`,
|
|
119
|
-
`**Clips returned:** ${result.totalReturned}`,
|
|
120
|
-
];
|
|
121
|
-
if (result.notice)
|
|
122
|
-
lines.push(`\n> ${result.notice}`);
|
|
122
|
+
const lines = [`## GDELT TV Clips`];
|
|
123
123
|
for (const c of result.clips) {
|
|
124
124
|
lines.push(`\n### ${c.show} — ${c.station}`);
|
|
125
125
|
lines.push(`**Date:** ${c.date}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tv-clips.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-clips.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE;IACxD,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,gGAAgG;QAChG,6FAA6F;QAC7F,0EAA0E;QAC1E,4FAA4F;QAC5F,2CAA2C;IAC7C,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAExD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,4DAA4D;YAClE,QAAQ,EACN,0FAA0F;gBAC1F,oDAAoD;SACvD;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,8CAA8C;YACpD,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,mFAAmF;SAC9F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,gFAAgF;YAC9E,yFAAyF,CAC5F;QACH,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,sDAAsD;YACpD,qEAAqE,CACxE;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,gFAAgF;YAC9E,kCAAkC,CACrC;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4EAA4E,CAAC;QACzF,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,IAAI,CAAC;aACT,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;aAC1C,OAAO,CAAC,WAAW,CAAC;aACpB,QAAQ,CACP,mFAAmF,CACpF;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"get-tv-clips.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-clips.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,10 @@ export declare const gdeltGetTvContext: import("@cyanheads/mcp-ts-core").ToolDef
|
|
|
10
10
|
stations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
11
11
|
timespan: z.ZodOptional<z.ZodString>;
|
|
12
12
|
}, z.core.$strip>, z.ZodObject<{
|
|
13
|
-
query: z.ZodString;
|
|
14
13
|
words: z.ZodArray<z.ZodObject<{
|
|
15
14
|
label: z.ZodString;
|
|
16
15
|
score: z.ZodNumber;
|
|
17
16
|
}, z.core.$strip>>;
|
|
18
|
-
clipsAnalyzed: z.ZodNumber;
|
|
19
|
-
notice: z.ZodOptional<z.ZodString>;
|
|
20
17
|
}, z.core.$strip>, readonly [{
|
|
21
18
|
readonly reason: "no_context";
|
|
22
19
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -28,5 +25,9 @@ export declare const gdeltGetTvContext: import("@cyanheads/mcp-ts-core").ToolDef
|
|
|
28
25
|
readonly when: "GDELT TV API is unreachable or rate-limited.";
|
|
29
26
|
readonly retryable: true;
|
|
30
27
|
readonly recovery: "Wait at least 5 seconds before retrying — GDELT enforces 1 request per 5 seconds.";
|
|
31
|
-
}]
|
|
28
|
+
}], {
|
|
29
|
+
readonly effectiveQuery: z.ZodString;
|
|
30
|
+
readonly totalCount: z.ZodNumber;
|
|
31
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}>;
|
|
32
33
|
//# sourceMappingURL=get-tv-context.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tv-context.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-context.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"get-tv-context.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-context.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAgI5B,CAAC"}
|
|
@@ -48,7 +48,6 @@ export const gdeltGetTvContext = tool('gdelt_get_tv_context', {
|
|
|
48
48
|
.describe('Time window, e.g. "1m", "6m". TV data spans 2009–October 2024.'),
|
|
49
49
|
}),
|
|
50
50
|
output: z.object({
|
|
51
|
-
query: z.string().describe('Echoed query string.'),
|
|
52
51
|
words: z
|
|
53
52
|
.array(z
|
|
54
53
|
.object({
|
|
@@ -60,14 +59,19 @@ export const gdeltGetTvContext = tool('gdelt_get_tv_context', {
|
|
|
60
59
|
})
|
|
61
60
|
.describe('A co-occurring term with its relative frequency score.'))
|
|
62
61
|
.describe('Co-occurring terms sorted by score descending.'),
|
|
63
|
-
|
|
62
|
+
}),
|
|
63
|
+
// Agent-facing context — query echo, clips analyzed, and notice on empty results.
|
|
64
|
+
// Reaches structuredContent and content[] automatically; never in the domain return.
|
|
65
|
+
enrichment: {
|
|
66
|
+
effectiveQuery: z.string().describe('Echoed query string for use in follow-up calls.'),
|
|
67
|
+
totalCount: z
|
|
64
68
|
.number()
|
|
65
69
|
.describe('Number of matching clips from which co-occurrences were computed.'),
|
|
66
70
|
notice: z
|
|
67
71
|
.string()
|
|
68
72
|
.optional()
|
|
69
73
|
.describe('Recovery hint when no context was found. Absent on successful responses.'),
|
|
70
|
-
}
|
|
74
|
+
},
|
|
71
75
|
async handler(input, ctx) {
|
|
72
76
|
ctx.log.info('gdelt_get_tv_context', { query: input.query });
|
|
73
77
|
const svc = getGdeltTvService();
|
|
@@ -84,22 +88,18 @@ export const gdeltGetTvContext = tool('gdelt_get_tv_context', {
|
|
|
84
88
|
},
|
|
85
89
|
});
|
|
86
90
|
}
|
|
91
|
+
ctx.enrich.echo(input.query);
|
|
92
|
+
ctx.enrich.total(result.clipsAnalyzed);
|
|
87
93
|
ctx.log.info('gdelt_get_tv_context completed', { wordCount: result.words.length });
|
|
88
94
|
return {
|
|
89
|
-
query: input.query,
|
|
90
95
|
words: result.words.sort((a, b) => b.score - a.score),
|
|
91
|
-
clipsAnalyzed: result.clipsAnalyzed,
|
|
92
96
|
};
|
|
93
97
|
},
|
|
94
98
|
format: (result) => {
|
|
95
99
|
const lines = [
|
|
96
100
|
`## GDELT TV Context`,
|
|
97
|
-
`**Query:** ${result.query}`,
|
|
98
|
-
`**Clips analyzed:** ${result.clipsAnalyzed}`,
|
|
99
101
|
`**Co-occurring terms:** ${result.words.length}`,
|
|
100
102
|
];
|
|
101
|
-
if (result.notice)
|
|
102
|
-
lines.push(`\n> ${result.notice}`);
|
|
103
103
|
lines.push('\n### Top Terms');
|
|
104
104
|
for (const w of result.words.slice(0, 50)) {
|
|
105
105
|
const bar = '█'.repeat(Math.round(w.score / 5));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tv-context.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-context.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE;IAC5D,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,mFAAmF;QACnF,gDAAgD;QAChD,mGAAmG;QACnG,8CAA8C;QAC9C,8FAA8F;QAC9F,sCAAsC;QACtC,kCAAkC;IACpC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAExD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,sDAAsD;YAC5D,QAAQ,EACN,4FAA4F;SAC/F;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,8CAA8C;YACpD,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,mFAAmF;SAC9F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,gFAAgF;YAC9E,yFAAyF,CAC5F;QACH,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,mDAAmD;YACjD,8CAA8C,CACjD;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gEAAgE,CAAC;KAC9E,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"get-tv-context.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-context.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,6 @@ export declare const gdeltGetTvTrending: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
10
10
|
label: z.ZodString;
|
|
11
11
|
score: z.ZodNumber;
|
|
12
12
|
}, z.core.$strip>>;
|
|
13
|
-
totalCount: z.ZodNumber;
|
|
14
|
-
notice: z.ZodOptional<z.ZodString>;
|
|
15
13
|
}, z.core.$strip>, readonly [{
|
|
16
14
|
readonly reason: "no_trending";
|
|
17
15
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -23,5 +21,8 @@ export declare const gdeltGetTvTrending: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
23
21
|
readonly when: "GDELT TV API is unreachable or rate-limited.";
|
|
24
22
|
readonly retryable: true;
|
|
25
23
|
readonly recovery: "Wait at least 5 seconds before retrying — GDELT enforces 1 request per 5 seconds.";
|
|
26
|
-
}]
|
|
24
|
+
}], {
|
|
25
|
+
readonly totalCount: z.ZodNumber;
|
|
26
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}>;
|
|
27
28
|
//# sourceMappingURL=get-tv-trending.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tv-trending.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-trending.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"get-tv-trending.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-trending.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;EA0F7B,CAAC"}
|
|
@@ -41,12 +41,16 @@ export const gdeltGetTvTrending = tool('gdelt_get_tv_trending', {
|
|
|
41
41
|
})
|
|
42
42
|
.describe('A single trending topic with its relative score.'))
|
|
43
43
|
.describe('Trending topics sorted by score descending.'),
|
|
44
|
-
|
|
44
|
+
}),
|
|
45
|
+
// Agent-facing context — total topic count and notice on empty results.
|
|
46
|
+
// Reaches structuredContent and content[] automatically; never in the domain return.
|
|
47
|
+
enrichment: {
|
|
48
|
+
totalCount: z.number().describe('Total number of trending topics returned.'),
|
|
45
49
|
notice: z
|
|
46
50
|
.string()
|
|
47
51
|
.optional()
|
|
48
|
-
.describe('Recovery hint when no topics were returned. Absent on successful responses.'),
|
|
49
|
-
}
|
|
52
|
+
.describe('Recovery hint when no trending topics were returned. Absent on successful responses.'),
|
|
53
|
+
},
|
|
50
54
|
async handler(_input, ctx) {
|
|
51
55
|
ctx.log.info('gdelt_get_tv_trending');
|
|
52
56
|
const svc = getGdeltTvService();
|
|
@@ -56,26 +60,23 @@ export const gdeltGetTvTrending = tool('gdelt_get_tv_trending', {
|
|
|
56
60
|
...ctx.recoveryFor('no_trending'),
|
|
57
61
|
});
|
|
58
62
|
}
|
|
63
|
+
ctx.enrich.total(topics.length);
|
|
59
64
|
ctx.log.info('gdelt_get_tv_trending completed', { count: topics.length });
|
|
60
65
|
return {
|
|
61
66
|
topics: topics.sort((a, b) => b.score - a.score),
|
|
62
|
-
totalCount: topics.length,
|
|
63
67
|
};
|
|
64
68
|
},
|
|
65
69
|
format: (result) => {
|
|
66
70
|
const lines = [
|
|
67
71
|
`## GDELT TV Trending Topics`,
|
|
68
|
-
`**Total topics:** ${result.totalCount}`,
|
|
69
72
|
`_Note: reflects the October 2024 TV archive cutoff, not a live feed_`,
|
|
70
73
|
];
|
|
71
|
-
if (result.notice)
|
|
72
|
-
lines.push(`\n> ${result.notice}`);
|
|
73
74
|
lines.push('\n### Trending Now');
|
|
74
75
|
for (const t of result.topics.slice(0, 50)) {
|
|
75
76
|
lines.push(`- **${t.label}** (score: ${t.score.toFixed(2)})`);
|
|
76
77
|
}
|
|
77
|
-
if (result.
|
|
78
|
-
lines.push(`\n_… ${result.
|
|
78
|
+
if (result.topics.length > 50)
|
|
79
|
+
lines.push(`\n_… ${result.topics.length - 50} more topics_`);
|
|
79
80
|
return [{ type: 'text', text: lines.join('\n') }];
|
|
80
81
|
},
|
|
81
82
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tv-trending.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-trending.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,EAAE;IAC9D,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,0FAA0F;QAC1F,iGAAiG;QACjG,4BAA4B;QAC5B,mGAAmG;QACnG,iEAAiE;IACnE,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAExD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,oEAAoE;YAC1E,QAAQ,EACN,+FAA+F;SAClG;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,8CAA8C;YACpD,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,mFAAmF;SAC9F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAEnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YACjE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,CACP,sFAAsF,CACvF;SACJ,CAAC;aACD,QAAQ,CAAC,kDAAkD,CAAC,CAChE;aACA,QAAQ,CAAC,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"get-tv-trending.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-tv-trending.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,5 +28,5 @@ export declare const gdeltListTvStations: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
28
28
|
readonly when: "GDELT TV API is unreachable or rate-limited.";
|
|
29
29
|
readonly retryable: true;
|
|
30
30
|
readonly recovery: "Wait at least 5 seconds before retrying — GDELT enforces 1 request per 5 seconds.";
|
|
31
|
-
}]>;
|
|
31
|
+
}], undefined>;
|
|
32
32
|
//# sourceMappingURL=list-tv-stations.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-tv-stations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-tv-stations.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"list-tv-stations.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/list-tv-stations.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;cAyG9B,CAAC"}
|
|
@@ -26,10 +26,6 @@ export declare const gdeltSearchArticles: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
26
26
|
sourcecountry: z.ZodString;
|
|
27
27
|
socialimage: z.ZodOptional<z.ZodString>;
|
|
28
28
|
}, z.core.$strip>>;
|
|
29
|
-
totalReturned: z.ZodNumber;
|
|
30
|
-
query: z.ZodString;
|
|
31
|
-
timespan: z.ZodOptional<z.ZodString>;
|
|
32
|
-
notice: z.ZodOptional<z.ZodString>;
|
|
33
29
|
}, z.core.$strip>, readonly [{
|
|
34
30
|
readonly reason: "no_articles";
|
|
35
31
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -41,5 +37,10 @@ export declare const gdeltSearchArticles: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
41
37
|
readonly when: "GDELT DOC API is unreachable or rate-limited.";
|
|
42
38
|
readonly retryable: true;
|
|
43
39
|
readonly recovery: "Wait at least 5 seconds before retrying — GDELT enforces 1 request per 5 seconds.";
|
|
44
|
-
}]
|
|
40
|
+
}], {
|
|
41
|
+
readonly effectiveQuery: z.ZodString;
|
|
42
|
+
readonly totalCount: z.ZodNumber;
|
|
43
|
+
readonly timespan: z.ZodOptional<z.ZodString>;
|
|
44
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}>;
|
|
45
46
|
//# sourceMappingURL=search-articles.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-articles.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"search-articles.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4J9B,CAAC"}
|
|
@@ -85,14 +85,19 @@ export const gdeltSearchArticles = tool('gdelt_search_articles', {
|
|
|
85
85
|
})
|
|
86
86
|
.describe('A single news article with metadata.'))
|
|
87
87
|
.describe('Matching articles sorted per the sort parameter.'),
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
}),
|
|
89
|
+
// Agent-facing context — query echo, total count, optional timespan echo, and notice
|
|
90
|
+
// when no results. Reaches structuredContent and content[] automatically; never in the
|
|
91
|
+
// domain return.
|
|
92
|
+
enrichment: {
|
|
93
|
+
effectiveQuery: z.string().describe('Echoed query string for use in follow-up calls.'),
|
|
94
|
+
totalCount: z.number().describe('Number of articles returned in this response.'),
|
|
90
95
|
timespan: z.string().optional().describe('Echoed timespan parameter when provided.'),
|
|
91
96
|
notice: z
|
|
92
97
|
.string()
|
|
93
98
|
.optional()
|
|
94
99
|
.describe('Recovery hint when no articles matched — echoes filters and suggests how to broaden. Absent on successful responses.'),
|
|
95
|
-
}
|
|
100
|
+
},
|
|
96
101
|
async handler(input, ctx) {
|
|
97
102
|
ctx.log.info('gdelt_search_articles', { query: input.query });
|
|
98
103
|
const svc = getGdeltDocService();
|
|
@@ -111,23 +116,15 @@ export const gdeltSearchArticles = tool('gdelt_search_articles', {
|
|
|
111
116
|
},
|
|
112
117
|
});
|
|
113
118
|
}
|
|
119
|
+
ctx.enrich.echo(input.query);
|
|
120
|
+
ctx.enrich.total(result.articles.length);
|
|
121
|
+
if (input.timespan)
|
|
122
|
+
ctx.enrich({ timespan: input.timespan });
|
|
114
123
|
ctx.log.info('gdelt_search_articles completed', { count: result.articles.length });
|
|
115
|
-
return {
|
|
116
|
-
articles: result.articles,
|
|
117
|
-
totalReturned: result.totalReturned,
|
|
118
|
-
query: input.query,
|
|
119
|
-
...(input.timespan && { timespan: input.timespan }),
|
|
120
|
-
};
|
|
124
|
+
return { articles: result.articles };
|
|
121
125
|
},
|
|
122
126
|
format: (result) => {
|
|
123
|
-
const lines = [
|
|
124
|
-
`## GDELT Article Search`,
|
|
125
|
-
`**Query:** ${result.query}`,
|
|
126
|
-
...(result.timespan ? [`**Timespan:** ${result.timespan}`] : []),
|
|
127
|
-
`**Articles returned:** ${result.totalReturned}`,
|
|
128
|
-
];
|
|
129
|
-
if (result.notice)
|
|
130
|
-
lines.push(`\n> ${result.notice}`);
|
|
127
|
+
const lines = [`## GDELT Article Search`];
|
|
131
128
|
for (const a of result.articles) {
|
|
132
129
|
lines.push(`\n### ${a.title}`);
|
|
133
130
|
lines.push(`**URL:** ${a.url}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-articles.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-articles.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,EAAE;IAC/D,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,4FAA4F;QAC5F,wHAAwH;QACxH,gIAAgI;QAChI,qGAAqG;QACrG,uGAAuG;QACvG,uHAAuH;IACzH,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAExD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,gEAAgE;YACtE,QAAQ,EAAE,6EAA6E;SACxF;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,+CAA+C;YACrD,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,mFAAmF;SAC9F;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,gGAAgG;YAC9F,4FAA4F;YAC5F,yCAAyC,CAC5C;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uGAAuG;YACrG,qFAAqF,CACxF;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4EAA4E;YAC1E,yCAAyC,CAC5C;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0EAA0E;YACxE,2CAA2C,CAC9C;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aACrC,OAAO,CAAC,WAAW,CAAC;aACpB,QAAQ,CACP,sFAAsF,CACvF;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC5C,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,0DAA0D,CAAC;YACvE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YAC9E,aAAa,EAAE,CAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,CAAC,sDAAsD,CAAC;YACnE,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uDAAuD,CAAC;SACrE,CAAC;aACD,QAAQ,CAAC,sCAAsC,CAAC,CACpD;aACA,QAAQ,CAAC,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"search-articles.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-articles.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ export declare const gdeltSearchTv: import("@cyanheads/mcp-ts-core").ToolDefinit
|
|
|
14
14
|
smoothing: z.ZodOptional<z.ZodNumber>;
|
|
15
15
|
normalize: z.ZodDefault<z.ZodBoolean>;
|
|
16
16
|
}, z.core.$strip>, z.ZodObject<{
|
|
17
|
-
query: z.ZodString;
|
|
18
17
|
dateResolution: z.ZodEnum<{
|
|
19
18
|
hour: "hour";
|
|
20
19
|
day: "day";
|
|
@@ -32,7 +31,6 @@ export declare const gdeltSearchTv: import("@cyanheads/mcp-ts-core").ToolDefinit
|
|
|
32
31
|
}, z.core.$strip>>;
|
|
33
32
|
}, z.core.$strip>>;
|
|
34
33
|
normalized: z.ZodBoolean;
|
|
35
|
-
notice: z.ZodOptional<z.ZodString>;
|
|
36
34
|
}, z.core.$strip>, readonly [{
|
|
37
35
|
readonly reason: "no_tv_coverage";
|
|
38
36
|
readonly code: JsonRpcErrorCode.NotFound;
|
|
@@ -44,5 +42,9 @@ export declare const gdeltSearchTv: import("@cyanheads/mcp-ts-core").ToolDefinit
|
|
|
44
42
|
readonly when: "GDELT TV API is unreachable or rate-limited.";
|
|
45
43
|
readonly retryable: true;
|
|
46
44
|
readonly recovery: "Wait at least 5 seconds before retrying — GDELT enforces 1 request per 5 seconds.";
|
|
47
|
-
}]
|
|
45
|
+
}], {
|
|
46
|
+
readonly effectiveQuery: z.ZodString;
|
|
47
|
+
readonly totalCount: z.ZodNumber;
|
|
48
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
49
|
+
}>;
|
|
48
50
|
//# sourceMappingURL=search-tv.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-tv.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-tv.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"search-tv.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-tv.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsLxB,CAAC"}
|
|
@@ -74,7 +74,6 @@ export const gdeltSearchTv = tool('gdelt_search_tv', {
|
|
|
74
74
|
'When false, returns raw coverage volume.'),
|
|
75
75
|
}),
|
|
76
76
|
output: z.object({
|
|
77
|
-
query: z.string().describe('Echoed query string.'),
|
|
78
77
|
dateResolution: z
|
|
79
78
|
.enum(['hour', 'day', 'month'])
|
|
80
79
|
.describe('Temporal resolution of data points.'),
|
|
@@ -100,11 +99,17 @@ export const gdeltSearchTv = tool('gdelt_search_tv', {
|
|
|
100
99
|
.describe('Coverage time series for a single station.'))
|
|
101
100
|
.describe('One series per station or combined national coverage.'),
|
|
102
101
|
normalized: z.boolean().describe('True when values are normalized coverage percentages.'),
|
|
102
|
+
}),
|
|
103
|
+
// Agent-facing context — query echo, station count, and notice on empty results.
|
|
104
|
+
// Reaches structuredContent and content[] automatically; never in the domain return.
|
|
105
|
+
enrichment: {
|
|
106
|
+
effectiveQuery: z.string().describe('Echoed query string for use in follow-up calls.'),
|
|
107
|
+
totalCount: z.number().describe('Number of station series returned.'),
|
|
103
108
|
notice: z
|
|
104
109
|
.string()
|
|
105
110
|
.optional()
|
|
106
|
-
.describe('Recovery hint when no coverage was found. Absent on successful responses.'),
|
|
107
|
-
}
|
|
111
|
+
.describe('Recovery hint when no TV coverage was found. Absent on successful responses.'),
|
|
112
|
+
},
|
|
108
113
|
async handler(input, ctx) {
|
|
109
114
|
ctx.log.info('gdelt_search_tv', { query: input.query, stations: input.stations });
|
|
110
115
|
const svc = getGdeltTvService();
|
|
@@ -125,9 +130,10 @@ export const gdeltSearchTv = tool('gdelt_search_tv', {
|
|
|
125
130
|
},
|
|
126
131
|
});
|
|
127
132
|
}
|
|
133
|
+
ctx.enrich.echo(input.query);
|
|
134
|
+
ctx.enrich.total(result.series.length);
|
|
128
135
|
ctx.log.info('gdelt_search_tv completed', { seriesCount: result.series.length });
|
|
129
136
|
return {
|
|
130
|
-
query: input.query,
|
|
131
137
|
dateResolution: result.dateResolution,
|
|
132
138
|
timeRange: result.timeRange,
|
|
133
139
|
series: result.series,
|
|
@@ -137,14 +143,11 @@ export const gdeltSearchTv = tool('gdelt_search_tv', {
|
|
|
137
143
|
format: (result) => {
|
|
138
144
|
const lines = [
|
|
139
145
|
`## GDELT TV News Coverage`,
|
|
140
|
-
`**Query:** ${result.query}`,
|
|
141
146
|
`**Date Resolution:** ${result.dateResolution}`,
|
|
142
147
|
`**Time Range:** ${result.timeRange.start} to ${result.timeRange.end}`,
|
|
143
148
|
`**Normalized:** ${result.normalized ? 'Yes (% of airtime)' : 'No (raw count)'}`,
|
|
144
149
|
`**Stations:** ${result.series.length}`,
|
|
145
150
|
];
|
|
146
|
-
if (result.notice)
|
|
147
|
-
lines.push(`\n> ${result.notice}`);
|
|
148
151
|
for (const s of result.series) {
|
|
149
152
|
const peak = s.data.reduce((max, d) => (d.value > max.value ? d : max), s.data[0] ?? { date: '', value: 0 });
|
|
150
153
|
const total = s.data.reduce((sum, d) => sum + d.value, 0);
|