@pipeworx/mcp-adsb 0.1.3 → 0.1.4

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 1843+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.
5
+ Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1872+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.
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 1843+ data sources. The
60
+ Both URLs reach the same gateway and the same 1872+ 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.3",
3
+ "version": "0.1.4",
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-29464eda52a8166a4e447cfbe5cb4a995666b0e2f98f40123c3f2edad9720b26",
30
- "sourceCommit": "351c40908821cfecc9bb2f5849d87bbfdbb26d75"
29
+ "sourceHash": "v1-36ca12b7694e51500ea2eb7cff69cb31cab2d1d11ac0de6d72e352dd5cf00813",
30
+ "sourceCommit": "71f5325b13bb0ea0de2f0f7207885962ec91a484"
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.3",
6
+ "version": "0.1.4",
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
@@ -382,12 +382,28 @@ async function httpErrorMessage(res: Response, name: string): Promise<string> {
382
382
  // internal-host-class.ts; no-op for every third-party upstream, which is why
383
383
  // this touches 481 packs' error text and changes none of it.
384
384
  return markInternalOrigin(
385
- `${name}: ${res.status}${detailSuffix(await readDetail(res))}`,
385
+ `${name}: ${res.status}${detailSuffix(await readDetail(res))}${responseHints(res)}`,
386
386
  res.url,
387
387
  res.status,
388
388
  );
389
389
  }
390
390
 
391
+ /**
392
+ * Facts about a FAILED response that live in its headers, not its body, appended
393
+ * so the gateway's classifier (which only ever sees this string) can tell a limit
394
+ * from a wall from a refusal (fleet #3477). Both are standard, both are absent on
395
+ * almost every response, and neither is invented: `Retry-After` is the server
396
+ * saying "come back later" (the one thing that makes a 403 a throttle), and
397
+ * Cloudflare marks a bot challenge with `cf-mitigated: challenge`.
398
+ */
399
+ function responseHints(res: Response): string {
400
+ const hints: string[] = [];
401
+ const retryAfter = res.headers.get('retry-after');
402
+ if (retryAfter) hints.push(`retry-after: ${retryAfter.slice(0, 40)}`);
403
+ if ((res.headers.get('cf-mitigated') ?? '').toLowerCase() === 'challenge') hints.push('Cloudflare bot challenge (cf-mitigated: challenge)');
404
+ return hints.length ? ` (${hints.join('; ')})` : '';
405
+ }
406
+
391
407
  /**
392
408
  * Just the upstream's own explanation — no name, no status.
393
409
  *
package/src/server.ts CHANGED
@@ -10,7 +10,7 @@ import pack from './index.js';
10
10
 
11
11
 
12
12
  const server = new Server(
13
- { name: '@pipeworx/mcp-adsb', version: '0.1.3' },
13
+ { name: '@pipeworx/mcp-adsb', version: '0.1.4' },
14
14
  { capabilities: { tools: {} } },
15
15
  );
16
16