@cyanheads/gdelt-mcp-server 0.1.3 → 0.1.5

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** gdelt-mcp-server
4
- **Version:** 0.1.3
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.9`
4
+ **Version:** 0.1.5
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.13`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
@@ -50,7 +50,7 @@ Tailor suggestions to what's actually missing or stale — don't recite the full
50
50
  - **Use `ctx.state`** for tenant-scoped storage. Never access persistence directly.
51
51
  - **Check `ctx.elicit` / `ctx.sample`** for presence before calling.
52
52
  - **Secrets in env vars only** — never hardcoded.
53
- - **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed before moving on. The comment is for future readers — state the concrete changes, not the conversation that produced them.
53
+ - **Close the loop on issues.** When implementing work tracked by a GitHub issue, comment on the issue with what landed and close it. Do both — a comment without a close leaves stale issues open; a close without a comment leaves no record of what shipped. The comment is for future readers — state the concrete changes, not the conversation that produced them.
54
54
 
55
55
  ---
56
56
 
@@ -128,6 +128,10 @@ export const reviewCode = prompt('review_code', {
128
128
  });
129
129
  ```
130
130
 
131
+ ### Server instructions
132
+
133
+ `createApp({ instructions })` — optional server-level orientation, sent to clients on every `initialize` as session-level context. Use it for deployment guidance (connection aliases, regional notes, scope hints) instead of repeating the same context across tool descriptions. Client adoption is uneven, but there's no downside when set.
134
+
131
135
  ### Server config
132
136
 
133
137
  ```ts
@@ -178,6 +182,8 @@ Handlers throw — the framework catches, classifies, and formats.
178
182
  **Recommended: typed error contract.** Declare `errors: [{ reason, code, when, recovery, retryable? }]` on `tool()` / `resource()` to receive `ctx.fail(reason, …)` typed against the reason union. TypeScript catches typos at compile time, `data.reason` is auto-populated for observability, linter enforces conformance against the handler body. `recovery` is required descriptive metadata for the agent's next move (≥ 5 words, lint-validated); for the wire `data.recovery.hint` (mirrored into `content[]` text), pass explicitly at the throw site when dynamic context matters: `ctx.fail('reason', msg, { recovery: { hint: '...' } })`. Baseline codes (`InternalError`, `ServiceUnavailable`, `Timeout`, `ValidationError`, `SerializationError`) bubble freely and don't need declaring.
179
183
 
180
184
  ```ts
185
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
186
+
181
187
  errors: [
182
188
  { reason: 'no_match', code: JsonRpcErrorCode.NotFound,
183
189
  when: 'No item matched the query',
@@ -265,9 +271,13 @@ Available skills:
265
271
  | `add-service` | Scaffold a new service integration |
266
272
  | `add-test` | Scaffold test file for a tool, resource, or service |
267
273
  | `field-test` | Exercise tools/resources/prompts with real inputs, verify behavior, report issues |
274
+ | `tool-defs-analysis` | Read-only audit of MCP definition language across the surface — voice, leaks, defaults, recovery hints, output descriptions |
268
275
  | `security-pass` | Audit server for MCP-flavored security gaps: output injection, scope blast radius, input sinks, tenant isolation |
276
+ | `code-simplifier` | Post-session cleanup against `git diff` — modernize syntax, consolidate duplication, align with the codebase |
269
277
  | `devcheck` | Lint, format, typecheck, audit |
270
278
  | `polish-docs-meta` | Finalize docs, README, metadata, and agent protocol for shipping |
279
+ | `git-wrapup` | Land working-tree changes as a versioned commit + annotated tag — version bump, changelog, verify, tag. Local only. |
280
+ | `release-and-publish` | Push + npm + MCP Registry + GH Release + Docker. Picks up from `git-wrapup` |
271
281
  | `maintenance` | Investigate changelogs, adopt upstream changes, sync skills to agent dirs |
272
282
  | `report-issue-framework` | File a bug or feature request against `@cyanheads/mcp-ts-core` via `gh` CLI |
273
283
  | `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
@@ -288,23 +298,23 @@ When you complete a skill's checklist, check the boxes and add a completion time
288
298
 
289
299
  ## Commands
290
300
 
291
- **Runtime:** Scripts use `tsx` — both `npm run <cmd>` and `bun run <cmd>` work. `bun` is slightly faster for script invocation but not required.
301
+ **Runtime:** Scripts use `bun run` — both `npm run <cmd>` and `bun run <cmd>` work. `bun` is preferred.
292
302
 
293
303
  | Command | Purpose |
294
304
  |:--------|:--------|
295
- | `npm run build` | Compile TypeScript |
296
- | `npm run rebuild` | Clean + build |
297
- | `npm run clean` | Remove build artifacts |
298
- | `npm run devcheck` | Lint + format + typecheck + security + changelog sync |
299
- | `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit. Use when `devcheck` flags a transitive advisory — stale lockfile can mask already-patched deps. If advisory survives, it's real. |
300
- | `npm run tree` | Generate directory structure doc |
301
- | `npm run format` | Auto-fix formatting |
302
- | `npm test` | Run tests |
303
- | `npm run start:stdio` | Production mode (stdio) |
304
- | `npm run start:http` | Production mode (HTTP) |
305
- | `npm run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
306
- | `npm run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
307
- | `npm run bundle` | Build and pack as `.mcpb` for one-click Claude Desktop install |
305
+ | `bun run build` | Compile TypeScript |
306
+ | `bun run rebuild` | Clean + build |
307
+ | `bun run clean` | Remove build artifacts |
308
+ | `bun run devcheck` | Lint + format + typecheck + security + changelog sync |
309
+ | `bun run audit:refresh` | Delete `bun.lock`, reinstall, and re-run `bun audit`. Use when `devcheck` flags a transitive advisory — Bun's `update` is sticky on transitive resolutions, so the advisory may be a stale-lockfile false positive. If it survives the refresh, it's real. |
310
+ | `bun run tree` | Generate directory structure doc |
311
+ | `bun run format` | Auto-fix formatting |
312
+ | `bun run test` | Run tests |
313
+ | `bun run start:stdio` | Production mode (stdio) |
314
+ | `bun run start:http` | Production mode (HTTP) |
315
+ | `bun run changelog:build` | Regenerate `CHANGELOG.md` from `changelog/*.md` |
316
+ | `bun run changelog:check` | Verify `CHANGELOG.md` is in sync (used by devcheck) |
317
+ | `bun run bundle` | Build and pack as `.mcpb` for one-click Claude Desktop install |
308
318
 
309
319
  ---
310
320
 
@@ -314,40 +324,7 @@ When you complete a skill's checklist, check the boxes and add a completion time
314
324
 
315
325
  **Adding an env var requires both files:** `server.json` (registry discovery, `environmentVariables[]`) and `manifest.json` (bundle install UX, `mcp_config.env` + `user_config`). `lint:packaging` (run by `devcheck`) verifies the env var names match.
316
326
 
317
- **README install badges.** Drop these into the project README to give users one-click install paths. Fill in `<OWNER>` / `<REPO>` / `<PACKAGE_NAME>` and encode the per-server config. Cursor + VS Code badges assume the server is published to npm; Claude Desktop downloads the `.mcpb` directly so npm publishing isn't required.
318
-
319
- | Client | Mechanism |
320
- |:-------|:----------|
321
- | Claude Desktop | Browser downloads the `.mcpb` from the latest GitHub Release; OS file handler routes it to Claude Desktop, which opens the install dialog. No deep-link URL scheme yet — this is the canonical path. |
322
- | Cursor | Official `https://cursor.com/en/install-mcp` endpoint with base64 JSON config. |
323
- | VS Code / Insiders | Official `vscode:mcp/install?...` deep link, wrapped in `https://vscode.dev/redirect?url=` so GitHub-rendered markdown doesn't strip the non-HTTP scheme. |
324
- | Claude Code / Codex | CLI only (`claude mcp add` / `codex mcp add`); no URL scheme. |
325
-
326
- ```markdown
327
- [![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/<OWNER>/<REPO>/releases/latest/download/<PACKAGE_NAME>.mcpb)
328
- [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=<PACKAGE_NAME>&config=<BASE64_CONFIG>)
329
- [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?<URLENCODED_JSON>)
330
- ```
331
-
332
- Both install links route through HTTPS endpoints (`cursor.com/en/install-mcp` and `vscode.dev/redirect`) — GitHub-rendered markdown strips non-HTTP URL schemes from anchors, so a raw `cursor://` or `vscode:` link won't click through from github.com.
333
-
334
- Generate the encoded configs (replace `<PACKAGE_NAME>` and add env vars for any required API keys):
335
-
336
- ```bash
337
- # Cursor: base64-encoded JSON. Split command/args, add env when keys are needed.
338
- echo -n '{"command":"npx","args":["-y","<PACKAGE_NAME>"],"env":{"API_KEY":"your-api-key"}}' | base64
339
- # Without env (no required keys):
340
- echo -n '{"command":"npx","args":["-y","<PACKAGE_NAME>"]}' | base64
341
-
342
- # VS Code: URL-encoded JSON. Same shape plus a `name` field.
343
- node -p 'encodeURIComponent(JSON.stringify({name:"<SHORT_NAME>",command:"npx",args:["-y","<PACKAGE_NAME>"],env:{API_KEY:"your-api-key"}}))'
344
- # Without env:
345
- node -p 'encodeURIComponent(JSON.stringify({name:"<SHORT_NAME>",command:"npx",args:["-y","<PACKAGE_NAME>"]}))'
346
- ```
347
-
348
- Both clients use the same `{command, args, env}` shape (matching `mcp.json` schema). VS Code adds a top-level `name` field. Omit `env` entirely when no API keys are needed — don't include empty objects or framework-only vars like `MCP_TRANSPORT_TYPE`.
349
-
350
- The Claude Desktop badge requires the bundle to ship with a stable filename — `bun run bundle` outputs `dist/<PACKAGE_NAME>.mcpb`, and `release-and-publish` attaches that file to the GitHub Release. `releases/latest/download/<PACKAGE_NAME>.mcpb` then redirects to the most recent release.
327
+ **README install badges** (Claude Desktop `.mcpb`, Cursor, VS Code) and the `base64` / `encodeURIComponent` config-generation commands are ship-time concerns run the `polish-docs-meta` skill, which carries the badge format, layout, and generation snippets in `skills/polish-docs-meta/references/readme.md`.
351
328
 
352
329
  ---
353
330
 
@@ -402,4 +379,7 @@ import { getMyService } from '@/services/my-domain/my-service.js';
402
379
  - [ ] If wrapping external API: tests include at least one sparse payload case with omitted upstream fields
403
380
  - [ ] Registered in `createApp()` arrays (directly or via barrel exports)
404
381
  - [ ] Tests use `createMockContext()` from `@cyanheads/mcp-ts-core/testing`
382
+ - [ ] `.codex-plugin/plugin.json` populated — `name`, `version`, `description`, `repository`, `license` from `package.json`; `interface.displayName` = package name; `interface.shortDescription` from `package.json` description
383
+ - [ ] `.codex-plugin/mcp.json` updated — server name key matches `package.json` name; env vars added for any required API keys
384
+ - [ ] `.claude-plugin/plugin.json` populated — `name`, `version`, `description`, `repository`, `license` from `package.json`; inline `mcpServers` entry with server name key, env vars for any required API keys
405
385
  - [ ] `npm run devcheck` passes
package/README.md CHANGED
@@ -7,16 +7,24 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.1.3-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.1.5-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/gdelt-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/gdelt-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/gdelt-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
14
14
  <div align="center">
15
15
 
16
+ [![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/gdelt-mcp-server/releases/latest/download/gdelt-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=gdelt-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvZ2RlbHQtbWNwLXNlcnZlciJdfQ==) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22gdelt-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fgdelt-mcp-server%22%5D%7D)
17
+
16
18
  [![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
17
19
 
18
20
  </div>
19
21
 
22
+ <div align="center">
23
+
24
+ **Public Hosted Server:** [https://gdelt.caseyjhand.com/mcp](https://gdelt.caseyjhand.com/mcp)
25
+
26
+ </div>
27
+
20
28
  ---
21
29
 
22
30
  ## Tools
@@ -154,6 +162,23 @@ Agent-friendly output:
154
162
 
155
163
  ## Getting started
156
164
 
165
+ ### Public Hosted Instance
166
+
167
+ A public instance is available at `https://gdelt.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:
168
+
169
+ ```json
170
+ {
171
+ "mcpServers": {
172
+ "gdelt": {
173
+ "type": "streamable-http",
174
+ "url": "https://gdelt.caseyjhand.com/mcp"
175
+ }
176
+ }
177
+ }
178
+ ```
179
+
180
+ ### Self-Hosted / Local
181
+
157
182
  Add the following to your MCP client configuration file.
158
183
 
159
184
  ```json
@@ -0,0 +1,20 @@
1
+ ---
2
+ summary: "Package metadata, install badges, Docker image, bun run scripts"
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.1.4 — 2026-05-26
8
+
9
+ ## Added
10
+
11
+ - **`.github/FUNDING.yml`** — GitHub Sponsors and Buy Me a Coffee links.
12
+ - **README install badges** — one-click install for Claude Desktop (`.mcpb`), Cursor, and VS Code.
13
+ - **README badges** — Docker (`ghcr.io`) and npm badges added to the badge row.
14
+ - **Docker image** — multi-arch (`linux/amd64`, `linux/arm64`) image published to `ghcr.io/cyanheads/gdelt-mcp-server`.
15
+ - **`package.json` author, bugs, homepage, funding** — fields aligned with ecosystem standard.
16
+
17
+ ## Changed
18
+
19
+ - **`package.json` scripts** — all script runners switched from `tsx` to `bun run scripts/*.ts`; `start:stdio` and `start:http` switched from `node` to `bun ./dist/index.js`; `bundle` switched from `npm run build` to `bun run build`; `test` switched to `bunx vitest run`. Removed bare `start` alias.
20
+ - **`tsx` dev dependency removed** — no longer needed now scripts run via `bun`.
@@ -0,0 +1,29 @@
1
+ ---
2
+ summary: "mcp-ts-core ^0.9.13: HTTP 413 body cap, session-init gate, quieter error logs, GET /mcp keywords; public landing page; hosted endpoint"
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.1.5 — 2026-05-28
8
+
9
+ ## Added
10
+
11
+ - **`MCP_HTTP_MAX_BODY_BYTES`** — configurable inbound body cap on the HTTP endpoint (default 1 MiB); oversized requests rejected with `413` before SDK parsing. Documented in `.env.example`. (via mcp-ts-core 0.9.13)
12
+ - **`landing.requireAuth: false`** — full tool/resource/prompt inventory served to unauthenticated callers on `GET /mcp`.
13
+ - **`server.json` `remotes`** — hosted endpoint `https://gdelt.caseyjhand.com/mcp` registered for MCP Registry discovery.
14
+ - **README hosted-instance section** — public instance documented with Streamable HTTP config snippet.
15
+ - **`package.json` keywords** — `typescript`, `bun`, `stdio`, `streamable-http` added for npm discoverability.
16
+ - **GET /mcp `keywords`** — consumer `package.json` keywords now surfaced on the HTTP status response. (via mcp-ts-core 0.9.12)
17
+ - **`.claude-plugin/` and `.codex-plugin/`** — plugin metadata files scaffolded.
18
+
19
+ ## Fixed
20
+
21
+ - **HTTP session-init gate** — stateful HTTP mode now rejects requests arriving without `Mcp-Session-Id` with `400`, preventing uninitialized session minting. (via mcp-ts-core 0.9.10)
22
+ - **`httpErrorHandler` log-level split** — expected client errors (401, 403, 400, 404) now emit at `warning` instead of full error pipeline with stack traces, reducing noise. (via mcp-ts-core 0.9.10)
23
+ - **`gdelt-tv-service.ts`** — station filter string concatenation converted to template literal.
24
+
25
+ ## Changed
26
+
27
+ - **Dependency bumps:**
28
+ - `@cyanheads/mcp-ts-core` ^0.9.9 → ^0.9.13
29
+ - `@biomejs/biome` ^2.4.15 → ^2.4.16
@@ -19,6 +19,14 @@ breaking: false
19
19
  # `## Security` section below. Flagged as `Security` in the rollup so
20
20
  # users can triage upgrade urgency at a glance.
21
21
  security: false
22
+
23
+ # Optional free-form notes for maintenance agents processing this release.
24
+ # Not rendered in CHANGELOG — consumed by agents running `maintenance` on
25
+ # downstream servers. Use for adoption instructions that don't fit the
26
+ # human-facing sections: new files to create, fields to populate, one-time
27
+ # migration steps. Omit the field entirely when there's nothing to say.
28
+ # agent-notes: |
29
+ # <instructions for downstream maintenance agents>
22
30
  ---
23
31
 
24
32
  # <version> — YYYY-MM-DD
package/dist/index.js CHANGED
@@ -23,6 +23,8 @@ await createApp({
23
23
  ],
24
24
  resources: [],
25
25
  prompts: [],
26
+ // Public catalog — serve full tool/resource/prompt inventory to unauthenticated callers.
27
+ landing: { requireAuth: false },
26
28
  instructions: 'GDELT MCP Server — global news and TV transcript analysis.\n' +
27
29
  '- gdelt_search_articles: full-text news search (last 3 months, 65+ languages)\n' +
28
30
  '- gdelt_get_coverage_timeline: when did coverage spike? (use mode volume_with_articles for signal detection)\n' +
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,mBAAmB;QACnB,wBAAwB;QACxB,wBAAwB;QACxB,yBAAyB;QACzB,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;KACpB;IACD,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,YAAY,EACV,8DAA8D;QAC9D,iFAAiF;QACjF,gHAAgH;QAChH,iFAAiF;QACjF,6EAA6E;QAC7E,6EAA6E;QAC7E,+EAA+E;QAC/E,oEAAoE;QACpE,yFAAyF;QACzF,yFAAyF;QACzF,8EAA8E;IAEhF,KAAK,CAAC,IAAI;QACR,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,mBAAmB;QACnB,wBAAwB;QACxB,wBAAwB;QACxB,yBAAyB;QACzB,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;KACpB;IACD,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,yFAAyF;IACzF,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;IAC/B,YAAY,EACV,8DAA8D;QAC9D,iFAAiF;QACjF,gHAAgH;QAChH,iFAAiF;QACjF,6EAA6E;QAC7E,6EAA6E;QAC7E,+EAA+E;QAC/E,oEAAoE;QACpE,yFAAyF;QACzF,yFAAyF;QACzF,8EAA8E;IAEhF,KAAK,CAAC,IAAI;QACR,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7D,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
@@ -108,7 +108,7 @@ export class GdeltTvService {
108
108
  // TV API embeds station filters inside the query string
109
109
  let q = query;
110
110
  if (stations?.length) {
111
- q += ' ' + stations.map((s) => `station:${s}`).join(' ');
111
+ q += ` ${stations.map((s) => `station:${s}`).join(' ')}`;
112
112
  }
113
113
  p.set('query', q);
114
114
  p.set('format', 'json');
@@ -1 +1 @@
1
- {"version":3,"file":"gdelt-tv-service.js","sourceRoot":"","sources":["../../../src/services/gdelt/gdelt-tv-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9D,MAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B,oFAAoF;AACpF,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AA2C5D,MAAM,OAAO,cAAc;IACR,OAAO,CAAS;IAEjC,YAAY,OAAkB,EAAE,QAAwB,EAAE,YAA0B;QAClF,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;IACpD,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,QAAQ,CACZ,MAAsB,EACtB,GAAY;QAOZ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI;YAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAErF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAGzB,SAAS,EAAE,GAAG,CAAC,CAAC;QAEnB,MAAM,MAAM,GAAqB,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;YAC9B,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SACpE,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;YACtB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;SACrC,CAAC;QAEF,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC;QAC3C,MAAM,cAAc,GAClB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;IACvF,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,UAAU,CAAC,MAAoB,EAAE,GAAY;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,UAAU;YAAE,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAW,CAAC;YACvF,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAErF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAA0B,SAAS,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC,CAAC,CAAC;IACN,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,YAAY,CAChB,MAAuB,EACvB,GAAY;QAKZ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,QAAQ;YAAE,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAiD,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAoB,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,aAAa,CAAC,GAAY;QAC9B,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACxC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAGzB,SAAS,EAAE,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjF,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC,CAAC;IACN,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACxC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAuC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,GAAG,mBAAmB,CAAC;YACpE,OAAO;gBACL,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnC,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAEvE,eAAe,CAAC,KAAa,EAAE,QAAmB;QACxD,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,wDAAwD;QACxD,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;YACrB,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAI,MAAuB,EAAE,GAAY;QACpD,OAAO,UAAU,CAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,UAAU,CAAC,CAAC;IACtF,CAAC;CACF;AAED,sGAAsG;AACtG,SAAS,cAAc,CAAC,CAAS;IAC/B,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED,0EAA0E;AAC1E,SAAS,eAAe,CAAC,CAAS;IAChC,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,iFAAiF;AAEjF,IAAI,QAAoC,CAAC;AAEzC,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,OAAuB,EACvB,YAA0B;IAE1B,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"gdelt-tv-service.js","sourceRoot":"","sources":["../../../src/services/gdelt/gdelt-tv-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/gdelt-mcp-server",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
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
5
  "mcpName": "io.github.cyanheads/gdelt-mcp-server",
6
6
  "type": "module",
@@ -19,29 +19,32 @@
19
19
  "server.json"
20
20
  ],
21
21
  "scripts": {
22
- "build": "tsx scripts/build.ts",
23
- "rebuild": "tsx scripts/clean.ts && tsx scripts/build.ts",
24
- "clean": "tsx scripts/clean.ts",
25
- "devcheck": "tsx scripts/devcheck.ts",
22
+ "build": "bun run scripts/build.ts",
23
+ "rebuild": "bun run scripts/clean.ts && bun run build",
24
+ "clean": "bun run scripts/clean.ts",
25
+ "devcheck": "bun run scripts/devcheck.ts",
26
26
  "audit:refresh": "rm -f bun.lock && bun install && bun audit",
27
- "tree": "tsx scripts/tree.ts",
28
- "list-skills": "tsx scripts/list-skills.ts",
27
+ "tree": "bun run scripts/tree.ts",
28
+ "list-skills": "bun run scripts/list-skills.ts",
29
29
  "format": "biome check --write --unsafe .",
30
- "lint:mcp": "tsx scripts/lint-mcp.ts",
31
- "lint:packaging": "tsx scripts/lint-packaging.ts",
32
- "bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . dist/gdelt-mcp-server.mcpb",
33
- "changelog:build": "tsx scripts/build-changelog.ts",
34
- "changelog:check": "tsx scripts/build-changelog.ts --check",
35
- "test": "vitest run",
36
- "start": "node dist/index.js",
37
- "start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
38
- "start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js",
30
+ "lint:mcp": "bun run scripts/lint-mcp.ts",
31
+ "lint:packaging": "bun run scripts/lint-packaging.ts",
32
+ "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/gdelt-mcp-server.mcpb",
33
+ "changelog:build": "bun run scripts/build-changelog.ts",
34
+ "changelog:check": "bun run scripts/build-changelog.ts --check",
35
+ "test": "bunx vitest run",
36
+ "start:stdio": "MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js",
37
+ "start:http": "MCP_TRANSPORT_TYPE=http bun ./dist/index.js",
39
38
  "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish"
40
39
  },
41
40
  "keywords": [
42
41
  "mcp",
43
42
  "mcp-server",
44
43
  "model-context-protocol",
44
+ "typescript",
45
+ "bun",
46
+ "stdio",
47
+ "streamable-http",
45
48
  "gdelt",
46
49
  "global-news",
47
50
  "news-analytics",
@@ -56,6 +59,21 @@
56
59
  "type": "git",
57
60
  "url": "git+https://github.com/cyanheads/gdelt-mcp-server.git"
58
61
  },
62
+ "bugs": {
63
+ "url": "https://github.com/cyanheads/gdelt-mcp-server/issues"
64
+ },
65
+ "homepage": "https://github.com/cyanheads/gdelt-mcp-server#readme",
66
+ "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gdelt-mcp-server#readme)",
67
+ "funding": [
68
+ {
69
+ "type": "github",
70
+ "url": "https://github.com/sponsors/cyanheads"
71
+ },
72
+ {
73
+ "type": "buy_me_a_coffee",
74
+ "url": "https://www.buymeacoffee.com/cyanheads"
75
+ }
76
+ ],
59
77
  "license": "Apache-2.0",
60
78
  "engines": {
61
79
  "bun": ">=1.3.0",
@@ -65,17 +83,16 @@
65
83
  "access": "public"
66
84
  },
67
85
  "dependencies": {
68
- "@cyanheads/mcp-ts-core": "^0.9.9",
86
+ "@cyanheads/mcp-ts-core": "^0.9.13",
69
87
  "pino-pretty": "^13.1.3",
70
88
  "zod": "^4.4.3"
71
89
  },
72
90
  "devDependencies": {
73
- "@biomejs/biome": "^2.4.15",
91
+ "@biomejs/biome": "^2.4.16",
74
92
  "@types/node": "^25.9.1",
75
93
  "depcheck": "^1.4.7",
76
94
  "ignore": "^7.0.5",
77
95
  "tsc-alias": "^1.8.17",
78
- "tsx": "^4.22.3",
79
96
  "typescript": "^6.0.3",
80
97
  "vitest": "^4.1.7"
81
98
  }
package/server.json CHANGED
@@ -6,14 +6,20 @@
6
6
  "url": "https://github.com/cyanheads/gdelt-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.3",
9
+ "version": "0.1.5",
10
+ "remotes": [
11
+ {
12
+ "type": "streamable-http",
13
+ "url": "https://gdelt.caseyjhand.com/mcp"
14
+ }
15
+ ],
10
16
  "packages": [
11
17
  {
12
18
  "registryType": "npm",
13
19
  "registryBaseUrl": "https://registry.npmjs.org",
14
20
  "identifier": "@cyanheads/gdelt-mcp-server",
15
21
  "runtimeHint": "node",
16
- "version": "0.1.3",
22
+ "version": "0.1.5",
17
23
  "packageArguments": [
18
24
  {
19
25
  "type": "positional",
@@ -42,7 +48,7 @@
42
48
  "registryBaseUrl": "https://registry.npmjs.org",
43
49
  "identifier": "@cyanheads/gdelt-mcp-server",
44
50
  "runtimeHint": "node",
45
- "version": "0.1.3",
51
+ "version": "0.1.5",
46
52
  "packageArguments": [
47
53
  {
48
54
  "type": "positional",
Binary file