@cyanheads/gdelt-mcp-server 0.1.1
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 +405 -0
- package/Dockerfile +98 -0
- package/README.md +336 -0
- package/changelog/0.1.x/0.1.0.md +23 -0
- package/changelog/0.1.x/0.1.1.md +18 -0
- package/changelog/template.md +119 -0
- package/dist/config/server-config.d.ts +13 -0
- package/dist/config/server-config.d.ts.map +1 -0
- package/dist/config/server-config.js +28 -0
- package/dist/config/server-config.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/tools/date-resolution.d.ts +7 -0
- package/dist/mcp-server/tools/date-resolution.d.ts.map +1 -0
- package/dist/mcp-server/tools/date-resolution.js +13 -0
- package/dist/mcp-server/tools/date-resolution.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.d.ts +52 -0
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.js +182 -0
- package/dist/mcp-server/tools/definitions/get-coverage-breakdown.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.d.ts +54 -0
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.js +173 -0
- package/dist/mcp-server/tools/definitions/get-coverage-timeline.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.d.ts +41 -0
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.js +143 -0
- package/dist/mcp-server/tools/definitions/get-tone-distribution.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.d.ts +44 -0
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.js +134 -0
- package/dist/mcp-server/tools/definitions/get-tv-clips.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.d.ts +32 -0
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.js +114 -0
- package/dist/mcp-server/tools/definitions/get-tv-context.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.d.ts +27 -0
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.js +82 -0
- package/dist/mcp-server/tools/definitions/get-tv-trending.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/index.d.ts +14 -0
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/index.js +14 -0
- package/dist/mcp-server/tools/definitions/index.js.map +1 -0
- package/dist/mcp-server/tools/definitions/list-tv-stations.tool.d.ts +32 -0
- package/dist/mcp-server/tools/definitions/list-tv-stations.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/list-tv-stations.tool.js +94 -0
- package/dist/mcp-server/tools/definitions/list-tv-stations.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts +45 -0
- package/dist/mcp-server/tools/definitions/search-articles.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/search-articles.tool.js +142 -0
- package/dist/mcp-server/tools/definitions/search-articles.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/search-tv.tool.d.ts +48 -0
- package/dist/mcp-server/tools/definitions/search-tv.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/search-tv.tool.js +159 -0
- package/dist/mcp-server/tools/definitions/search-tv.tool.js.map +1 -0
- package/dist/services/gdelt/gdelt-doc-service.d.ts +89 -0
- package/dist/services/gdelt/gdelt-doc-service.d.ts.map +1 -0
- package/dist/services/gdelt/gdelt-doc-service.js +116 -0
- package/dist/services/gdelt/gdelt-doc-service.js.map +1 -0
- package/dist/services/gdelt/gdelt-fetch.d.ts +11 -0
- package/dist/services/gdelt/gdelt-fetch.d.ts.map +1 -0
- package/dist/services/gdelt/gdelt-fetch.js +46 -0
- package/dist/services/gdelt/gdelt-fetch.js.map +1 -0
- package/dist/services/gdelt/gdelt-tv-service.d.ts +78 -0
- package/dist/services/gdelt/gdelt-tv-service.d.ts.map +1 -0
- package/dist/services/gdelt/gdelt-tv-service.js +153 -0
- package/dist/services/gdelt/gdelt-tv-service.js.map +1 -0
- package/dist/services/gdelt/rate-limiter.d.ts +19 -0
- package/dist/services/gdelt/rate-limiter.d.ts.map +1 -0
- package/dist/services/gdelt/rate-limiter.js +47 -0
- package/dist/services/gdelt/rate-limiter.js.map +1 -0
- package/dist/services/gdelt/types.d.ts +87 -0
- package/dist/services/gdelt/types.d.ts.map +1 -0
- package/dist/services/gdelt/types.js +6 -0
- package/dist/services/gdelt/types.js.map +1 -0
- package/package.json +80 -0
- package/server.json +99 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared types for GDELT DOC and TV API responses.
|
|
3
|
+
* @module services/gdelt/types
|
|
4
|
+
*/
|
|
5
|
+
/** Raw article record from GDELT DOC API artlist mode. */
|
|
6
|
+
export type RawArticle = {
|
|
7
|
+
url: string;
|
|
8
|
+
title: string;
|
|
9
|
+
seendate: string;
|
|
10
|
+
socialimage?: string;
|
|
11
|
+
domain: string;
|
|
12
|
+
language: string;
|
|
13
|
+
sourcecountry: string;
|
|
14
|
+
};
|
|
15
|
+
/** Normalized article for tool output. */
|
|
16
|
+
export type Article = {
|
|
17
|
+
url: string;
|
|
18
|
+
title: string;
|
|
19
|
+
seendate: string;
|
|
20
|
+
domain: string;
|
|
21
|
+
language: string;
|
|
22
|
+
sourcecountry: string;
|
|
23
|
+
socialimage?: string;
|
|
24
|
+
};
|
|
25
|
+
/** Raw timeline data point from GDELT DOC API timeline modes. */
|
|
26
|
+
export type RawTimelinePoint = {
|
|
27
|
+
date: string;
|
|
28
|
+
value: number;
|
|
29
|
+
};
|
|
30
|
+
/** Raw series from GDELT DOC API timeline response. */
|
|
31
|
+
export type RawTimelineSeries = {
|
|
32
|
+
series: string;
|
|
33
|
+
html: string;
|
|
34
|
+
data: RawTimelinePoint[];
|
|
35
|
+
};
|
|
36
|
+
/** Raw response from GDELT DOC API timelinevolinfo — includes article blobs. */
|
|
37
|
+
export type RawTimelineVolInfoPoint = {
|
|
38
|
+
date: string;
|
|
39
|
+
value: number;
|
|
40
|
+
toparts?: Array<{
|
|
41
|
+
url: string;
|
|
42
|
+
title: string;
|
|
43
|
+
}>;
|
|
44
|
+
};
|
|
45
|
+
/** Raw TV station record from GDELT TV stationdetails mode. */
|
|
46
|
+
export type RawTvStation = {
|
|
47
|
+
StationID: string;
|
|
48
|
+
Description: string;
|
|
49
|
+
Market: string;
|
|
50
|
+
Network: string;
|
|
51
|
+
StartDate: string;
|
|
52
|
+
EndDate: string;
|
|
53
|
+
};
|
|
54
|
+
/** Raw TV clip from GDELT TV clipgallery mode. */
|
|
55
|
+
export type RawTvClip = {
|
|
56
|
+
show: string;
|
|
57
|
+
station: string;
|
|
58
|
+
date: string;
|
|
59
|
+
snippet: string;
|
|
60
|
+
preview_url: string;
|
|
61
|
+
preview_thumb?: string;
|
|
62
|
+
};
|
|
63
|
+
/** Raw TV word cloud entry from GDELT TV wordcloud mode. */
|
|
64
|
+
export type RawTvWord = {
|
|
65
|
+
label: string;
|
|
66
|
+
count: number;
|
|
67
|
+
};
|
|
68
|
+
/** Normalized TV station for tool output. */
|
|
69
|
+
export type TvStation = {
|
|
70
|
+
stationId: string;
|
|
71
|
+
description: string;
|
|
72
|
+
market: string;
|
|
73
|
+
network: string;
|
|
74
|
+
startDate: string;
|
|
75
|
+
endDate: string;
|
|
76
|
+
isActive: boolean;
|
|
77
|
+
};
|
|
78
|
+
/** Normalized TV clip for tool output. */
|
|
79
|
+
export type TvClip = {
|
|
80
|
+
show: string;
|
|
81
|
+
station: string;
|
|
82
|
+
date: string;
|
|
83
|
+
snippet: string;
|
|
84
|
+
archiveUrl: string;
|
|
85
|
+
thumbnail?: string;
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/gdelt/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,EAAE,CAAC;CAC1B,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAIF,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,kDAAkD;AAClD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/gdelt/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cyanheads/gdelt-mcp-server",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Search and analyze global news coverage and US television transcripts via the GDELT Project's real-time APIs via MCP. STDIO or Streamable HTTP.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"gdelt-mcp-server": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"changelog/",
|
|
13
|
+
"dist/",
|
|
14
|
+
"README.md",
|
|
15
|
+
"LICENSE",
|
|
16
|
+
"CLAUDE.md",
|
|
17
|
+
"Dockerfile",
|
|
18
|
+
"server.json"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsx scripts/build.ts",
|
|
22
|
+
"rebuild": "tsx scripts/clean.ts && tsx scripts/build.ts",
|
|
23
|
+
"clean": "tsx scripts/clean.ts",
|
|
24
|
+
"devcheck": "tsx scripts/devcheck.ts",
|
|
25
|
+
"audit:refresh": "rm -f bun.lock && bun install && bun audit",
|
|
26
|
+
"tree": "tsx scripts/tree.ts",
|
|
27
|
+
"list-skills": "tsx scripts/list-skills.ts",
|
|
28
|
+
"format": "biome check --write --unsafe .",
|
|
29
|
+
"lint:mcp": "tsx scripts/lint-mcp.ts",
|
|
30
|
+
"lint:packaging": "tsx scripts/lint-packaging.ts",
|
|
31
|
+
"bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . dist/gdelt-mcp-server.mcpb",
|
|
32
|
+
"changelog:build": "tsx scripts/build-changelog.ts",
|
|
33
|
+
"changelog:check": "tsx scripts/build-changelog.ts --check",
|
|
34
|
+
"test": "vitest run",
|
|
35
|
+
"start": "node dist/index.js",
|
|
36
|
+
"start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
|
|
37
|
+
"start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js"
|
|
38
|
+
},
|
|
39
|
+
"keywords": [
|
|
40
|
+
"mcp",
|
|
41
|
+
"mcp-server",
|
|
42
|
+
"model-context-protocol",
|
|
43
|
+
"gdelt",
|
|
44
|
+
"global-news",
|
|
45
|
+
"news-analytics",
|
|
46
|
+
"media-monitoring",
|
|
47
|
+
"sentiment-analysis",
|
|
48
|
+
"tv-news",
|
|
49
|
+
"event-monitoring",
|
|
50
|
+
"journalism",
|
|
51
|
+
"media-analysis"
|
|
52
|
+
],
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "git+https://github.com/cyanheads/gdelt-mcp-server.git"
|
|
56
|
+
},
|
|
57
|
+
"license": "Apache-2.0",
|
|
58
|
+
"engines": {
|
|
59
|
+
"bun": ">=1.3.0",
|
|
60
|
+
"node": ">=24.0.0"
|
|
61
|
+
},
|
|
62
|
+
"publishConfig": {
|
|
63
|
+
"access": "public"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@cyanheads/mcp-ts-core": "^0.9.9",
|
|
67
|
+
"pino-pretty": "^13.1.3",
|
|
68
|
+
"zod": "^4.4.3"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {
|
|
71
|
+
"@biomejs/biome": "^2.4.15",
|
|
72
|
+
"@types/node": "^25.9.1",
|
|
73
|
+
"depcheck": "^1.4.7",
|
|
74
|
+
"ignore": "^7.0.5",
|
|
75
|
+
"tsc-alias": "^1.8.17",
|
|
76
|
+
"tsx": "^4.22.3",
|
|
77
|
+
"typescript": "^6.0.3",
|
|
78
|
+
"vitest": "^4.1.7"
|
|
79
|
+
}
|
|
80
|
+
}
|
package/server.json
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.cyanheads/gdelt-mcp-server",
|
|
4
|
+
"description": "Search and analyze global news coverage and US television transcripts via the GDELT Project's real-time APIs.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/cyanheads/gdelt-mcp-server",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "0.1.1",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"registryBaseUrl": "https://registry.npmjs.org",
|
|
14
|
+
"identifier": "@cyanheads/gdelt-mcp-server",
|
|
15
|
+
"runtimeHint": "node",
|
|
16
|
+
"version": "0.1.1",
|
|
17
|
+
"packageArguments": [
|
|
18
|
+
{
|
|
19
|
+
"type": "positional",
|
|
20
|
+
"value": "run"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "positional",
|
|
24
|
+
"value": "start:stdio"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"environmentVariables": [
|
|
28
|
+
{
|
|
29
|
+
"name": "MCP_LOG_LEVEL",
|
|
30
|
+
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
|
|
31
|
+
"format": "string",
|
|
32
|
+
"isRequired": false,
|
|
33
|
+
"default": "info"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"transport": {
|
|
37
|
+
"type": "stdio"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"registryType": "npm",
|
|
42
|
+
"registryBaseUrl": "https://registry.npmjs.org",
|
|
43
|
+
"identifier": "@cyanheads/gdelt-mcp-server",
|
|
44
|
+
"runtimeHint": "node",
|
|
45
|
+
"version": "0.1.1",
|
|
46
|
+
"packageArguments": [
|
|
47
|
+
{
|
|
48
|
+
"type": "positional",
|
|
49
|
+
"value": "run"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "positional",
|
|
53
|
+
"value": "start:http"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"environmentVariables": [
|
|
57
|
+
{
|
|
58
|
+
"name": "MCP_HTTP_HOST",
|
|
59
|
+
"description": "The hostname for the HTTP server.",
|
|
60
|
+
"format": "string",
|
|
61
|
+
"isRequired": false,
|
|
62
|
+
"default": "127.0.0.1"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "MCP_HTTP_PORT",
|
|
66
|
+
"description": "The port to run the HTTP server on.",
|
|
67
|
+
"format": "string",
|
|
68
|
+
"isRequired": false,
|
|
69
|
+
"default": "3010"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "MCP_HTTP_ENDPOINT_PATH",
|
|
73
|
+
"description": "The endpoint path for the MCP server.",
|
|
74
|
+
"format": "string",
|
|
75
|
+
"isRequired": false,
|
|
76
|
+
"default": "/mcp"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "MCP_AUTH_MODE",
|
|
80
|
+
"description": "Authentication mode to use: 'none', 'jwt', or 'oauth'.",
|
|
81
|
+
"format": "string",
|
|
82
|
+
"isRequired": false,
|
|
83
|
+
"default": "none"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "MCP_LOG_LEVEL",
|
|
87
|
+
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
|
|
88
|
+
"format": "string",
|
|
89
|
+
"isRequired": false,
|
|
90
|
+
"default": "info"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"transport": {
|
|
94
|
+
"type": "streamable-http",
|
|
95
|
+
"url": "http://localhost:3010/mcp"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|