@pipeworx/mcp-adsb 0.1.1 → 0.1.2

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  adsb.lol MCP — live aircraft tracking via community ADS-B.
4
4
 
5
- Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1679+ live data sources.
5
+ Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1683+ live data sources.
6
6
 
7
7
  ## Tools
8
8
 
@@ -57,7 +57,7 @@ directly, instead of just this one's:
57
57
  }
58
58
  ```
59
59
 
60
- Both URLs reach the same gateway and the same 1679+ data sources. The
60
+ Both URLs reach the same gateway and the same 1683+ data sources. The
61
61
  only difference is which pack's tools are listed **directly**; `ask_pipeworx`
62
62
  reaches all of them from either one.
63
63
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipeworx/mcp-adsb",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "adsb.lol MCP — live aircraft tracking via community ADS-B.",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -26,7 +26,7 @@
26
26
  "@cloudflare/workers-types": "^4.20260405.1"
27
27
  },
28
28
  "pipeworx": {
29
- "sourceHash": "v1-46af700d0f46e1ad0dc5da4044230feae36fa4b2bf0ce5479c38c732cab2277f",
30
- "sourceCommit": "60f04b68c347e970c6be94a53439d1364061fc06"
29
+ "sourceHash": "v1-88c563fdbe6a31d1830921dae0b6dbfe91cd93d048f87a4c3ad9e25b1be15522",
30
+ "sourceCommit": "dca20ba6e13a9aa1c9f2918fc2ddaffe4cc30e5c"
31
31
  }
32
32
  }
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.pipeworx-io/adsb",
4
4
  "title": "Adsb",
5
5
  "description": "adsb.lol MCP — live aircraft tracking via community ADS-B.",
6
- "version": "0.1.1",
6
+ "version": "0.1.2",
7
7
  "websiteUrl": "https://pipeworx.io/packs/adsb",
8
8
  "repository": {
9
9
  "url": "https://github.com/pipeworx-io/mcp-adsb",
package/src/index.ts CHANGED
@@ -539,7 +539,42 @@ async function fetchWithTimeout(
539
539
  ),
540
540
  );
541
541
  }
542
- throw err;
542
+ // Fleet #2382. Everything that isn't a timeout/abort here is a genuine
543
+ // NETWORK-LEVEL failure — DNS resolution, connection refused, TLS handshake,
544
+ // Cloudflare's own "Network connection lost." — meaning `fetch()` itself
545
+ // threw and no HTTP response of any kind was ever received. Until this fix
546
+ // that raw exception was rethrown VERBATIM: a bare `TypeError: fetch failed`
547
+ // (or the Workers-runtime equivalent) names no upstream, carries no class
548
+ // token, and reads exactly like a defect in OUR code — because it says
549
+ // nothing about the call at all. It landed in `error`, the tier that means
550
+ // "Pipeworx has a defect", for every one of the (at the time of writing)
551
+ // ~470 packs that call this helper directly with no wrapper of their own.
552
+ //
553
+ // `dexscreener` hit this independently (fleet #1579) and fixed it with a
554
+ // bespoke per-pack try/catch around `fetchWithTimeout`. That fix is correct
555
+ // but only covers one pack; every other caller of this shared helper still
556
+ // leaked the raw exception. Moving the same fix HERE — the one place that
557
+ // already carries the timeout case — covers every pack that uses
558
+ // `fetchWithTimeout` without a wrapper, for free, and without widening
559
+ // `classifyToolError`'s regex list: the fix is giving the message a proper
560
+ // `upstream_down:` token at the point the two facts (no response was ever
561
+ // received, and which host we were trying to reach) are actually in hand,
562
+ // not teaching the classifier to guess from prose after the fact.
563
+ //
564
+ // Safe on the same grounds as the timeout branch above: no argument a
565
+ // caller passes can make `fetch()` itself throw a connection-level error,
566
+ // so this is always an availability failure, never a caller mistake. Same
567
+ // `markInternalOrigin` treatment — an origin we run that never answered is
568
+ // still ours, not a third party's outage.
569
+ const raw = err instanceof Error ? err.message : String(err);
570
+ throw new Error(
571
+ markInternalOrigin(
572
+ `upstream_down: could not reach ${name} at all (${raw.slice(0, 160)}). ` +
573
+ `No request reached ${name}, so this says NOTHING about whether the arguments you passed ` +
574
+ 'are valid — do not re-check them on the strength of this error. Retry shortly.',
575
+ url,
576
+ ),
577
+ );
543
578
  }
544
579
  }
545
580
 
package/src/server.ts CHANGED
@@ -9,7 +9,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprot
9
9
  import pack from './index.js';
10
10
 
11
11
  const server = new Server(
12
- { name: '@pipeworx/mcp-adsb', version: '0.1.1' },
12
+ { name: '@pipeworx/mcp-adsb', version: '0.1.2' },
13
13
  { capabilities: { tools: {} } },
14
14
  );
15
15