mcp-xray-pilot 0.11.0 → 0.14.0
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 +148 -7
- package/data/geocatalogue.json +162 -1
- package/dist/data/geocatalogue.js +37 -7
- package/dist/data/geocatalogue.js.map +1 -1
- package/dist/handlers.js +27 -0
- package/dist/handlers.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lint.js +177 -1
- package/dist/lint.js.map +1 -1
- package/dist/tools.js +93 -1
- package/dist/tools.js.map +1 -1
- package/dist/tools_impl/geocatalogue_fetch.js +246 -4
- package/dist/tools_impl/geocatalogue_fetch.js.map +1 -1
- package/dist/tools_impl/sni_cache.js +63 -0
- package/dist/tools_impl/sni_cache.js.map +1 -0
- package/dist/tools_impl/test_reality_live.js +872 -0
- package/dist/tools_impl/test_reality_live.js.map +1 -0
- package/dist/tools_impl/whitelist_sni_candidates.js +283 -0
- package/dist/tools_impl/whitelist_sni_candidates.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,11 +30,13 @@ a curated SNI suggester per exit-country and a multi-config merge helper.
|
|
|
30
30
|
tun), per-transport `*Settings` schemas (raw / xhttp / grpc / ws / mkcp /
|
|
31
31
|
httpupgrade / hysteria), TLS / REALITY security blocks, routing tag
|
|
32
32
|
cross-references.
|
|
33
|
-
- **Lints** ~
|
|
33
|
+
- **Lints** ~22 best-practice rules: VLESS `decryption: "none"`, REALITY
|
|
34
34
|
pubkey/shortId/target syntax, XTLS vision flow compatibility, TLS
|
|
35
35
|
fingerprint enum, ALPN collisions, geosite/geoip typo catcher, protocol
|
|
36
36
|
× transport × security incompatibilities, `xhttp.path` leading slash,
|
|
37
|
-
`geoip:private` block rule, sniffing on 80/443
|
|
37
|
+
`geoip:private` block rule, sniffing on 80/443, **DNS-over-proxy leaks
|
|
38
|
+
on `.ru` direct routing** (v0.12), **`geosite:` categories absent from
|
|
39
|
+
xray-core release `geosite.dat`** (v0.12) etc.
|
|
38
40
|
- **Geo catalogue**: search ~1500 known geoip/geosite tags by substring (full
|
|
39
41
|
v2fly/domain-list-community catalogue, hydrated from `data/geocatalogue.json`).
|
|
40
42
|
- **REALITY toolbelt**: `xray_generate_reality_keypair` (drop-in replacement
|
|
@@ -56,20 +58,22 @@ a curated SNI suggester per exit-country and a multi-config merge helper.
|
|
|
56
58
|
| `xray_fetch_topic` | Fetch one topic as markdown. Network → fall back to bundled cache → update cache. |
|
|
57
59
|
| `xray_search` | Full-text search over all cached docs. Returns ranked hits + snippets. |
|
|
58
60
|
| `xray_validate_config` | Structural+schema validation of an xray JSON config (Zod under the hood). |
|
|
59
|
-
| `xray_lint` | ~
|
|
61
|
+
| `xray_lint` | ~22 best-practice lint rules. Returns issues with severity, rule id, JSON-pointer. |
|
|
60
62
|
| `xray_geo_search` | Substring search over the embedded geosite/geoip catalogue (~1500 tags). |
|
|
61
63
|
| `xray_diff_protocols` | Side-by-side feature table for two protocols. |
|
|
62
64
|
| `xray_suggest_alternative` | Recommend protocol+transport+security for a goal (anti-DPI / battery / latency / …). |
|
|
63
65
|
| `xray_generate_short_ids` | Cryptographically random REALITY shortIds (default `[4,8,16]` bytes, legacy empty prefix). |
|
|
64
66
|
| `xray_generate_reality_keypair` | Fresh REALITY X25519 keypair, base64url 43 chars — drop-in for `xray x25519`. |
|
|
65
67
|
| `xray_validate_sni_target` | Live TLS 1.3 + ALPN h2 + HTTP probe of a candidate REALITY target host. |
|
|
68
|
+
| `xray_test_reality_live` | Spin up real local xray server+client, run a full REALITY handshake against the target, probe HTTPS through the cascade. Strictly stronger than `xray_validate_sni_target`. |
|
|
69
|
+
| `xray_whitelist_sni_candidates` | Pull a public RU-traffic whitelist (default: hxehex/russia-mobile-internet-whitelist) and TLS-validate the top N hosts as REALITY SNI front candidates. Returns ranked, sorted by ok desc, latency asc. |
|
|
66
70
|
| `xray_suggest_sni_for_country` | Curated REALITY SNI/target hosts per exit-country (DE/PL/NL/FR/LV/SE/FI/US/UK/JP/SG/AU/CA). |
|
|
67
71
|
| `xray_merge_configs` | Merge N xray configs with tag-collision resolution and conflict warnings. |
|
|
68
72
|
| `xray_github_search` | Search issues/PRs/discussions across XTLS GitHub repos (Xray-core/REALITY/docs). |
|
|
69
73
|
| `xray_github_fetch_issue` | Fetch one issue/PR/discussion with full body + top comments. |
|
|
70
74
|
| `xray_refresh_cache` | Bulk re-fetch cached docs (`scope: all/stale/category`). Optional `discover` for new upstream slugs. Optional `refresh_geocatalogue: true` to also re-pull the v2fly category list. |
|
|
71
75
|
|
|
72
|
-
Total: **
|
|
76
|
+
Total: **18 tools**.
|
|
73
77
|
|
|
74
78
|
### Quick toolbelt
|
|
75
79
|
|
|
@@ -96,6 +100,74 @@ Live-check a candidate REALITY SNI:
|
|
|
96
100
|
}
|
|
97
101
|
```
|
|
98
102
|
|
|
103
|
+
Live REALITY handshake (catches what `xray_validate_sni_target` cannot):
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
// xray_test_reality_live { "target_host": "2gis.ru" }
|
|
107
|
+
{
|
|
108
|
+
"ok": true,
|
|
109
|
+
"target": "2gis.ru:443",
|
|
110
|
+
"reality_handshake_complete": true,
|
|
111
|
+
"client_received_real_cert": false,
|
|
112
|
+
"http_probe_status": 200,
|
|
113
|
+
"latency_ms": 824,
|
|
114
|
+
"issues": [],
|
|
115
|
+
"used_keypair": { "privateKey": "...", "publicKey": "...", "shortId": "a1b2c3d4" },
|
|
116
|
+
"cached": false,
|
|
117
|
+
"cached_at": "2026-05-06T12:30:00.000Z"
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
> Verdicts are persisted to `data/reality-verdicts.json` (LRU cap 50, TTL 24h,
|
|
122
|
+
> key `host:port`). Subsequent calls with the same target return instantly with
|
|
123
|
+
> `cached: true`. Pass `force_refresh: true` to bypass the cache and rerun xray.
|
|
124
|
+
|
|
125
|
+
Compare a list of candidates in one shot — runs sequentially, each entry hits
|
|
126
|
+
the cache, results are sorted by `ok desc, latency_ms asc`:
|
|
127
|
+
|
|
128
|
+
```jsonc
|
|
129
|
+
// xray_test_reality_live {
|
|
130
|
+
// "multi_targets": ["2gis.ru", "yandex.ru", "vk.com", "mail.ru"]
|
|
131
|
+
// }
|
|
132
|
+
{
|
|
133
|
+
"results": [
|
|
134
|
+
{ "target": "2gis.ru:443", "ok": true, "latency_ms": 824, "cached": true, "cached_at": "..." },
|
|
135
|
+
{ "target": "mail.ru:443", "ok": true, "latency_ms": 1102, "cached": false, "cached_at": "..." },
|
|
136
|
+
{ "target": "yandex.ru:443", "ok": false, "latency_ms": 0, "cached": false, "cached_at": "...", "issues": ["client received a real certificate ..."] },
|
|
137
|
+
{ "target": "vk.com:443", "ok": false, "latency_ms": 0, "cached": false, "cached_at": "...", "issues": ["target unreachable"] }
|
|
138
|
+
],
|
|
139
|
+
"summary": { "ok_count": 2, "total": 4 }
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Pull a public RU-traffic whitelist and rank live SNI candidates for an
|
|
144
|
+
inbound RU-relay node:
|
|
145
|
+
|
|
146
|
+
```jsonc
|
|
147
|
+
// xray_whitelist_sni_candidates { "max_candidates": 10 }
|
|
148
|
+
{
|
|
149
|
+
"source_url": "https://raw.githubusercontent.com/hxehex/russia-mobile-internet-whitelist/main/whitelist.txt",
|
|
150
|
+
"fetched_at": "2026-05-06T12:34:00.000Z",
|
|
151
|
+
"total_domains": 412,
|
|
152
|
+
"tested": 10,
|
|
153
|
+
"candidates": [
|
|
154
|
+
{ "host": "ya.ru", "ok": true, "tls_version": "TLSv1.3", "alpn": "h2", "http_status": 200, "latency_ms": 41, "cert_subject": "ya.ru", "issues": [] },
|
|
155
|
+
{ "host": "vk.com", "ok": true, "tls_version": "TLSv1.3", "alpn": "h2", "http_status": 200, "latency_ms": 78, "cert_subject": "*.vk.com", "issues": [] },
|
|
156
|
+
{ "host": "ozon.ru", "ok": false, "tls_version": "TLSv1.3", "alpn": "h2", "http_status": 200, "latency_ms": 134, "cert_subject": "*.ozon.ru", "issues": [] }
|
|
157
|
+
],
|
|
158
|
+
"summary": { "ok_count": 8, "failed_count": 2 },
|
|
159
|
+
"cache": { "used": false, "age_seconds": null },
|
|
160
|
+
"notes": ["latency_ms is measured from the MCP host (your laptop), not from the relay node — re-test from the node for geo-accurate values"]
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
> The whitelist body is cached on disk in `data/whitelist-cache.json`
|
|
165
|
+
> (default TTL 24h, override via `cache_ttl_hours`). Verdicts are NOT cached
|
|
166
|
+
> — every call re-probes its slice live so latency numbers stay fresh.
|
|
167
|
+
> NB: the probe runs from your laptop, not from the РФ relay; for
|
|
168
|
+
> geo-accurate latency, use `xray_test_reality_live` from the actual
|
|
169
|
+
> node (or ssh + curl on it).
|
|
170
|
+
|
|
99
171
|
It also exposes a single MCP **resource**: `xray://docs/index` — the raw
|
|
100
172
|
`_index.json` of cached topics.
|
|
101
173
|
|
|
@@ -327,11 +399,13 @@ MCP-сервер, дающий LLM офлайн-доступ к официаль
|
|
|
327
399
|
tun), per-transport `*Settings` (raw / xhttp / grpc / ws / mkcp /
|
|
328
400
|
httpupgrade / hysteria), security блоки TLS/REALITY, routing tag
|
|
329
401
|
cross-references.
|
|
330
|
-
- **Lint** ~
|
|
402
|
+
- **Lint** ~22 правил: VLESS `decryption: "none"`, REALITY pubkey/shortId/
|
|
331
403
|
target syntax, XTLS vision flow compatibility, TLS fingerprint enum,
|
|
332
404
|
ALPN collisions, geo typo catcher, protocol × transport × security
|
|
333
405
|
несовместимости, `xhttp.path` слеш, `geoip:private` block, sniffing на
|
|
334
|
-
80/443
|
|
406
|
+
80/443, **утечка DNS через прокси ломает `.ru` direct routing** (v0.12),
|
|
407
|
+
**`geosite:` категории, которых нет в xray-core release `geosite.dat`**
|
|
408
|
+
(v0.12) и т.д.
|
|
335
409
|
- **Geo catalogue**: поиск по ~1500 известным geoip/geosite тегам (полный
|
|
336
410
|
v2fly/domain-list-community каталог, гидратируется из `data/geocatalogue.json`).
|
|
337
411
|
- **REALITY toolbelt**: `xray_generate_reality_keypair` (drop-in замена
|
|
@@ -360,13 +434,15 @@ MCP-сервер, дающий LLM офлайн-доступ к официаль
|
|
|
360
434
|
| `xray_generate_short_ids` | Криптослучайные REALITY shortIds (default `[4,8,16]` байт, с empty-prefix для легаси). |
|
|
361
435
|
| `xray_generate_reality_keypair` | Свежая X25519 пара REALITY, base64url 43 chars — drop-in для `xray x25519`. |
|
|
362
436
|
| `xray_validate_sni_target` | Live проба TLS 1.3 + ALPN h2 + HTTP кандидата на REALITY target. |
|
|
437
|
+
| `xray_test_reality_live` | Поднимает локальную пару xray (server+client), реально гоняет REALITY handshake к target, probe HTTPS сквозь каскад. Строго сильнее `xray_validate_sni_target`. |
|
|
438
|
+
| `xray_whitelist_sni_candidates` | Тянет публичный whitelist РФ-трафика (default: hxehex/russia-mobile-internet-whitelist), TLS-валидирует топ-N как REALITY SNI-кандидаты. Сортировка ok desc, latency asc. |
|
|
363
439
|
| `xray_suggest_sni_for_country` | Курируемые REALITY-фронты по стране exit'а (DE/PL/NL/FR/LV/SE/FI/US/UK/JP/SG/AU/CA). |
|
|
364
440
|
| `xray_merge_configs` | Слить N конфигов с разрешением коллизий тегов. |
|
|
365
441
|
| `xray_github_search` | Поиск issues/PR/discussions по XTLS GitHub репозиториям. |
|
|
366
442
|
| `xray_github_fetch_issue` | Получить одну issue/PR/discussion с полным body + топ комментариев. |
|
|
367
443
|
| `xray_refresh_cache` | Bulk перезатяжка кеша доков (`scope: all/stale/category`). Опц. `discover` + `refresh_geocatalogue: true` (заодно перетянет v2fly категории). |
|
|
368
444
|
|
|
369
|
-
Всего: **
|
|
445
|
+
Всего: **18 тулов**.
|
|
370
446
|
|
|
371
447
|
### Quick toolbelt
|
|
372
448
|
|
|
@@ -395,6 +471,71 @@ Live-проверить кандидата на REALITY SNI:
|
|
|
395
471
|
|
|
396
472
|
> ⚠️ Проба идёт с локальной машины, где запущен `mcp-xray-pilot`. Для решения «работает ли SNI из РФ» — гоняй с РФ-IP отдельно.
|
|
397
473
|
|
|
474
|
+
Реальный REALITY handshake (ловит то, что `xray_validate_sni_target` пропускает):
|
|
475
|
+
|
|
476
|
+
```jsonc
|
|
477
|
+
// xray_test_reality_live { "target_host": "2gis.ru" }
|
|
478
|
+
{
|
|
479
|
+
"ok": true,
|
|
480
|
+
"target": "2gis.ru:443",
|
|
481
|
+
"reality_handshake_complete": true,
|
|
482
|
+
"client_received_real_cert": false,
|
|
483
|
+
"http_probe_status": 200,
|
|
484
|
+
"latency_ms": 824,
|
|
485
|
+
"issues": [],
|
|
486
|
+
"used_keypair": { "privateKey": "...", "publicKey": "...", "shortId": "a1b2c3d4" },
|
|
487
|
+
"cached": false,
|
|
488
|
+
"cached_at": "2026-05-06T12:30:00.000Z"
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
> При первом вызове скачивает xray-binary в `~/.cache/mcp-xray-pilot/xray-bin/` (~30MB), дальше переиспользует. Если REALITY несовместим с target (как `outlook.live.com` или `www.ozon.ru` — реальные кейсы Flare VPN), `client_received_real_cert: true` и `ok: false`.
|
|
493
|
+
|
|
494
|
+
> Вердикты пишутся на диск в `data/reality-verdicts.json` (LRU 50, TTL 24h, ключ `host:port`). Повторный вызов на тот же таргет возвращается мгновенно с `cached: true`. Чтобы прогнать заново — `force_refresh: true`.
|
|
495
|
+
|
|
496
|
+
Сравнить пачку кандидатов одним вызовом — запускаются последовательно, каждый через кэш, сорт `ok desc, latency_ms asc`:
|
|
497
|
+
|
|
498
|
+
```jsonc
|
|
499
|
+
// xray_test_reality_live {
|
|
500
|
+
// "multi_targets": ["2gis.ru", "yandex.ru", "vk.com", "mail.ru"]
|
|
501
|
+
// }
|
|
502
|
+
{
|
|
503
|
+
"results": [
|
|
504
|
+
{ "target": "2gis.ru:443", "ok": true, "latency_ms": 824, "cached": true },
|
|
505
|
+
{ "target": "mail.ru:443", "ok": true, "latency_ms": 1102, "cached": false },
|
|
506
|
+
{ "target": "yandex.ru:443", "ok": false, "issues": ["client received a real certificate ..."] },
|
|
507
|
+
{ "target": "vk.com:443", "ok": false, "issues": ["target unreachable"] }
|
|
508
|
+
],
|
|
509
|
+
"summary": { "ok_count": 2, "total": 4 }
|
|
510
|
+
}
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
Затянуть публичный whitelist РФ-трафика и проранжировать кандидатов на REALITY SNI для inbound РФ-relay-ноды:
|
|
514
|
+
|
|
515
|
+
```jsonc
|
|
516
|
+
// xray_whitelist_sni_candidates { "max_candidates": 10 }
|
|
517
|
+
{
|
|
518
|
+
"source_url": "https://raw.githubusercontent.com/hxehex/russia-mobile-internet-whitelist/main/whitelist.txt",
|
|
519
|
+
"fetched_at": "2026-05-06T12:34:00.000Z",
|
|
520
|
+
"total_domains": 412,
|
|
521
|
+
"tested": 10,
|
|
522
|
+
"candidates": [
|
|
523
|
+
{ "host": "ya.ru", "ok": true, "tls_version": "TLSv1.3", "alpn": "h2", "http_status": 200, "latency_ms": 41, "cert_subject": "ya.ru", "issues": [] },
|
|
524
|
+
{ "host": "vk.com", "ok": true, "tls_version": "TLSv1.3", "alpn": "h2", "http_status": 200, "latency_ms": 78, "cert_subject": "*.vk.com", "issues": [] }
|
|
525
|
+
],
|
|
526
|
+
"summary": { "ok_count": 8, "failed_count": 2 },
|
|
527
|
+
"cache": { "used": false, "age_seconds": null },
|
|
528
|
+
"notes": ["latency_ms is measured from the MCP host (your laptop), not from the relay node — re-test from the node for geo-accurate values"]
|
|
529
|
+
}
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
> Тело whitelist кешируется на диск в `data/whitelist-cache.json` (TTL по
|
|
533
|
+
> умолчанию 24h, переопределение через `cache_ttl_hours`). Verdicts НЕ
|
|
534
|
+
> кешируются — каждый вызов делает свежие пробы на своём срезе. NB:
|
|
535
|
+
> latency меряется с тачки где запущен MCP, а НЕ с РФ-relay-ноды; для
|
|
536
|
+
> гео-релевантной задержки используй `xray_test_reality_live` прямо с
|
|
537
|
+
> ноды (или ssh + curl на ней).
|
|
538
|
+
|
|
398
539
|
Также один MCP **ресурс**: `xray://docs/index`.
|
|
399
540
|
|
|
400
541
|
## Примеры
|
package/data/geocatalogue.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"fetched_at": "2026-05-
|
|
2
|
+
"fetched_at": "2026-05-05T01:29:27.654Z",
|
|
3
3
|
"source": "github.com/v2fly/domain-list-community/tree/master/data",
|
|
4
4
|
"count": 1464,
|
|
5
5
|
"names": [
|
|
@@ -1467,5 +1467,166 @@
|
|
|
1467
1467
|
"zto-express",
|
|
1468
1468
|
"zuoyebang",
|
|
1469
1469
|
"zynga"
|
|
1470
|
+
],
|
|
1471
|
+
"release_source": "hand-curated fallback (network fetch failed)",
|
|
1472
|
+
"release_count": 157,
|
|
1473
|
+
"release_names": [
|
|
1474
|
+
"1c",
|
|
1475
|
+
"alfabank",
|
|
1476
|
+
"alibaba",
|
|
1477
|
+
"amazon",
|
|
1478
|
+
"amazon-aws",
|
|
1479
|
+
"amazon-cn",
|
|
1480
|
+
"anthropic",
|
|
1481
|
+
"apple",
|
|
1482
|
+
"apple-cn",
|
|
1483
|
+
"archive",
|
|
1484
|
+
"atlassian",
|
|
1485
|
+
"baidu",
|
|
1486
|
+
"bilibili",
|
|
1487
|
+
"binance",
|
|
1488
|
+
"bitbucket",
|
|
1489
|
+
"blizzard",
|
|
1490
|
+
"bybit",
|
|
1491
|
+
"category-ads",
|
|
1492
|
+
"category-ads-all",
|
|
1493
|
+
"category-ads-ir",
|
|
1494
|
+
"category-ai-!cn",
|
|
1495
|
+
"category-ai-chat-!cn",
|
|
1496
|
+
"category-ai-chat-cn",
|
|
1497
|
+
"category-anticn",
|
|
1498
|
+
"category-banks-ru",
|
|
1499
|
+
"category-bittorrent",
|
|
1500
|
+
"category-cdn",
|
|
1501
|
+
"category-cryptocurrency",
|
|
1502
|
+
"category-cryptocurrency-!cn",
|
|
1503
|
+
"category-cryptocurrency-cn",
|
|
1504
|
+
"category-dev",
|
|
1505
|
+
"category-forums",
|
|
1506
|
+
"category-game-platforms",
|
|
1507
|
+
"category-game-platforms-download",
|
|
1508
|
+
"category-games-cn",
|
|
1509
|
+
"category-gov-ru",
|
|
1510
|
+
"category-ir",
|
|
1511
|
+
"category-kp",
|
|
1512
|
+
"category-media-ru",
|
|
1513
|
+
"category-porn",
|
|
1514
|
+
"category-public-cdn",
|
|
1515
|
+
"category-public-tracker",
|
|
1516
|
+
"category-ru",
|
|
1517
|
+
"category-scholar-!cn",
|
|
1518
|
+
"category-scholar-cn",
|
|
1519
|
+
"category-social",
|
|
1520
|
+
"category-social-!cn",
|
|
1521
|
+
"category-social-cn",
|
|
1522
|
+
"claude",
|
|
1523
|
+
"cloudflare",
|
|
1524
|
+
"cloudfront",
|
|
1525
|
+
"cn",
|
|
1526
|
+
"coinbase",
|
|
1527
|
+
"discord",
|
|
1528
|
+
"docker",
|
|
1529
|
+
"dropbox",
|
|
1530
|
+
"ea",
|
|
1531
|
+
"ea-games",
|
|
1532
|
+
"epicgames",
|
|
1533
|
+
"ethereum",
|
|
1534
|
+
"facebook",
|
|
1535
|
+
"fastly",
|
|
1536
|
+
"figma",
|
|
1537
|
+
"geolocation-!cn",
|
|
1538
|
+
"geolocation-cn",
|
|
1539
|
+
"geolocation-ir",
|
|
1540
|
+
"gfw",
|
|
1541
|
+
"github",
|
|
1542
|
+
"gitlab",
|
|
1543
|
+
"golang",
|
|
1544
|
+
"google",
|
|
1545
|
+
"google-cn",
|
|
1546
|
+
"googleads",
|
|
1547
|
+
"googleapis",
|
|
1548
|
+
"googlefcm",
|
|
1549
|
+
"googleplay",
|
|
1550
|
+
"googlescholar",
|
|
1551
|
+
"gosuslugi",
|
|
1552
|
+
"greatfire",
|
|
1553
|
+
"habr",
|
|
1554
|
+
"huggingface",
|
|
1555
|
+
"icloud",
|
|
1556
|
+
"imgur",
|
|
1557
|
+
"instagram",
|
|
1558
|
+
"jetbrains",
|
|
1559
|
+
"kinopoisk",
|
|
1560
|
+
"kucoin",
|
|
1561
|
+
"linkedin",
|
|
1562
|
+
"mail-ru",
|
|
1563
|
+
"medium",
|
|
1564
|
+
"meta",
|
|
1565
|
+
"metamask",
|
|
1566
|
+
"microsoft",
|
|
1567
|
+
"microsoft-cn",
|
|
1568
|
+
"miscellaneous",
|
|
1569
|
+
"netflix",
|
|
1570
|
+
"nicovideo",
|
|
1571
|
+
"nintendo",
|
|
1572
|
+
"nodejs",
|
|
1573
|
+
"notion",
|
|
1574
|
+
"npmjs",
|
|
1575
|
+
"okx",
|
|
1576
|
+
"onedrive",
|
|
1577
|
+
"openai",
|
|
1578
|
+
"ozon",
|
|
1579
|
+
"pinterest",
|
|
1580
|
+
"pixiv",
|
|
1581
|
+
"playstation",
|
|
1582
|
+
"private",
|
|
1583
|
+
"pypi",
|
|
1584
|
+
"python",
|
|
1585
|
+
"qq",
|
|
1586
|
+
"reddit",
|
|
1587
|
+
"riot-games",
|
|
1588
|
+
"rockstargames",
|
|
1589
|
+
"rust-lang",
|
|
1590
|
+
"rutracker",
|
|
1591
|
+
"rutube",
|
|
1592
|
+
"sberbank",
|
|
1593
|
+
"slack",
|
|
1594
|
+
"snapchat",
|
|
1595
|
+
"speedtest",
|
|
1596
|
+
"spotify",
|
|
1597
|
+
"stackexchange",
|
|
1598
|
+
"steam",
|
|
1599
|
+
"steam@cn",
|
|
1600
|
+
"substack",
|
|
1601
|
+
"taobao",
|
|
1602
|
+
"telegram",
|
|
1603
|
+
"test",
|
|
1604
|
+
"tiktok",
|
|
1605
|
+
"tinkoff",
|
|
1606
|
+
"tld-!cn",
|
|
1607
|
+
"tld-cn",
|
|
1608
|
+
"tld-net",
|
|
1609
|
+
"tld-proxy",
|
|
1610
|
+
"tron",
|
|
1611
|
+
"twitch",
|
|
1612
|
+
"twitter",
|
|
1613
|
+
"ubisoft",
|
|
1614
|
+
"vk",
|
|
1615
|
+
"vscode",
|
|
1616
|
+
"vtb",
|
|
1617
|
+
"wechat",
|
|
1618
|
+
"weibo",
|
|
1619
|
+
"whatsapp",
|
|
1620
|
+
"wikipedia",
|
|
1621
|
+
"wildberries",
|
|
1622
|
+
"win-extra",
|
|
1623
|
+
"win-spy",
|
|
1624
|
+
"win-update",
|
|
1625
|
+
"windowsupdate",
|
|
1626
|
+
"xboxlive",
|
|
1627
|
+
"yandex",
|
|
1628
|
+
"yapomogu",
|
|
1629
|
+
"youtube",
|
|
1630
|
+
"zoom"
|
|
1470
1631
|
]
|
|
1471
1632
|
}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
import { readFileSync } from "node:fs";
|
|
19
19
|
import path from "node:path";
|
|
20
20
|
import { fileURLToPath } from "node:url";
|
|
21
|
+
import { RELEASE_FALLBACK_NAMES } from "../tools_impl/geocatalogue_fetch.js";
|
|
21
22
|
/* All ISO 3166-1 alpha-2 country codes (lowercase). Most are valid geoip:* /
|
|
22
23
|
* geosite:geolocation-* tags. */
|
|
23
24
|
export const ISO_COUNTRY_CODES = [
|
|
@@ -155,7 +156,7 @@ for (const code of ISO_COUNTRY_CODES) {
|
|
|
155
156
|
const human = COUNTRY_NAMES[code] ?? code.toUpperCase();
|
|
156
157
|
entries.push(geosite(`geolocation-${code}`, `Domains geolocated to ${human}`));
|
|
157
158
|
}
|
|
158
|
-
function
|
|
159
|
+
function loadCataloguePayload() {
|
|
159
160
|
/* Resolve relative to this module's filesystem location.
|
|
160
161
|
* - source (tsx): src/data/geocatalogue.ts → ../../data/geocatalogue.json
|
|
161
162
|
* - dist (node): dist/data/geocatalogue.js → ../../data/geocatalogue.json
|
|
@@ -165,18 +166,16 @@ function loadFullGeositeNames() {
|
|
|
165
166
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
166
167
|
const jsonPath = path.resolve(here, "..", "..", "data", "geocatalogue.json");
|
|
167
168
|
const raw = readFileSync(jsonPath, "utf8");
|
|
168
|
-
|
|
169
|
-
if (Array.isArray(data.names))
|
|
170
|
-
return data.names;
|
|
171
|
-
return [];
|
|
169
|
+
return JSON.parse(raw);
|
|
172
170
|
}
|
|
173
171
|
catch {
|
|
174
172
|
/* No JSON yet → fall back to curated list only. Silent: the lint warning
|
|
175
173
|
* "geo_unknown_category" still works, just with a smaller corpus. */
|
|
176
|
-
return
|
|
174
|
+
return {};
|
|
177
175
|
}
|
|
178
176
|
}
|
|
179
|
-
const
|
|
177
|
+
const payload = loadCataloguePayload();
|
|
178
|
+
const fullNames = Array.isArray(payload.names) ? payload.names : [];
|
|
180
179
|
const seenGeosite = new Set(GEOSITE_NAMES);
|
|
181
180
|
for (const code of ISO_COUNTRY_CODES)
|
|
182
181
|
seenGeosite.add(`geolocation-${code}`);
|
|
@@ -202,6 +201,35 @@ export function isKnownGeoTag(tag) {
|
|
|
202
201
|
return GEOSITE_SET.has(name);
|
|
203
202
|
return false;
|
|
204
203
|
}
|
|
204
|
+
/* ---- v0.12: which categories actually ship in xray-core's geosite.dat ----
|
|
205
|
+
*
|
|
206
|
+
* v2fly source has ~1500 categories, but the published xray-core release
|
|
207
|
+
* geosite.dat only carries a curated subset (~150). Routing rules that
|
|
208
|
+
* reference a v2fly-source-only category will make xray refuse to start.
|
|
209
|
+
*
|
|
210
|
+
* Source priority:
|
|
211
|
+
* 1. data/geocatalogue.json's release_names[] (kept fresh by
|
|
212
|
+
* `npm run fetch-geocatalogue` from Loyalsoldier release asset).
|
|
213
|
+
* 2. RELEASE_FALLBACK_NAMES — hand-curated whitelist used when the JSON
|
|
214
|
+
* lacks the field (older format, or fetch failed in the past).
|
|
215
|
+
*/
|
|
216
|
+
const releaseNamesFromJson = Array.isArray(payload.release_names)
|
|
217
|
+
? payload.release_names
|
|
218
|
+
: [];
|
|
219
|
+
const RELEASE_GEOSITE_SET = new Set((releaseNamesFromJson.length > 0 ? releaseNamesFromJson : RELEASE_FALLBACK_NAMES).map((s) => s.toLowerCase()));
|
|
220
|
+
export const releaseCatalogueSize = () => RELEASE_GEOSITE_SET.size;
|
|
221
|
+
/* "geosite:category-ru" → known to ship in xray release? Returns false for
|
|
222
|
+
* geoip:* (release vs source distinction doesn't apply there), and for
|
|
223
|
+
* tags whose category is missing from the release set. */
|
|
224
|
+
export function isGeositeInXrayRelease(tag) {
|
|
225
|
+
if (!tag.startsWith("geosite:"))
|
|
226
|
+
return false;
|
|
227
|
+
const raw = tag.slice("geosite:".length);
|
|
228
|
+
/* Strip "@cn" attribute suffix (steam@cn) for matching, treat negation
|
|
229
|
+
* "geolocation-!cn" as-is — it is its own category in the dat file. */
|
|
230
|
+
const name = raw.split("@")[0].toLowerCase();
|
|
231
|
+
return RELEASE_GEOSITE_SET.has(name);
|
|
232
|
+
}
|
|
205
233
|
export function searchGeoCatalogue(query, limit = 30) {
|
|
206
234
|
const q = query.toLowerCase().trim();
|
|
207
235
|
if (!q)
|
|
@@ -226,6 +254,8 @@ export function searchGeoCatalogue(query, limit = 30) {
|
|
|
226
254
|
name: e.name,
|
|
227
255
|
description: e.description,
|
|
228
256
|
tag: `${e.prefix}:${e.name}`,
|
|
257
|
+
in_v2fly_source: true,
|
|
258
|
+
in_xray_release: e.prefix === "geosite" && RELEASE_GEOSITE_SET.has(e.name.split("@")[0].toLowerCase()),
|
|
229
259
|
}));
|
|
230
260
|
}
|
|
231
261
|
//# sourceMappingURL=geocatalogue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geocatalogue.js","sourceRoot":"","sources":["../../src/data/geocatalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"geocatalogue.js","sourceRoot":"","sources":["../../src/data/geocatalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E;iCACiC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,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"}
|
package/dist/handlers.js
CHANGED
|
@@ -15,6 +15,8 @@ import { searchGithub, fetchGithubIssue, } from "./tools_impl/github.js";
|
|
|
15
15
|
import { generateShortIds } from "./tools_impl/gen_short_ids.js";
|
|
16
16
|
import { generateRealityKeypair } from "./tools_impl/gen_reality_keypair.js";
|
|
17
17
|
import { validateSniTarget } from "./tools_impl/validate_sni.js";
|
|
18
|
+
import { testRealityLive } from "./tools_impl/test_reality_live.js";
|
|
19
|
+
import { whitelistSniCandidates, } from "./tools_impl/whitelist_sni_candidates.js";
|
|
18
20
|
import { suggestSniForCountry, listSupportedCountries, } from "./tools_impl/suggest_sni.js";
|
|
19
21
|
function ok(text) {
|
|
20
22
|
return { content: [{ type: "text", text }] };
|
|
@@ -202,6 +204,27 @@ async function validateSniHandler(args) {
|
|
|
202
204
|
return err(`xray_validate_sni_target failed: ${e.message}`);
|
|
203
205
|
}
|
|
204
206
|
}
|
|
207
|
+
async function testRealityLiveHandler(args) {
|
|
208
|
+
const hasSingle = typeof args.target_host === "string" && args.target_host.trim().length > 0;
|
|
209
|
+
const hasMulti = Array.isArray(args.multi_targets) && args.multi_targets.length > 0;
|
|
210
|
+
if (!hasSingle && !hasMulti) {
|
|
211
|
+
return err("Missing required parameter: target_host (or multi_targets[])");
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
return json(await testRealityLive(args));
|
|
215
|
+
}
|
|
216
|
+
catch (e) {
|
|
217
|
+
return err(`xray_test_reality_live failed: ${e.message}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async function whitelistSniHandler(args) {
|
|
221
|
+
try {
|
|
222
|
+
return json(await whitelistSniCandidates(args));
|
|
223
|
+
}
|
|
224
|
+
catch (e) {
|
|
225
|
+
return err(`xray_whitelist_sni_candidates failed: ${e.message}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
205
228
|
async function suggestSniHandler(args) {
|
|
206
229
|
if (!args.country_code) {
|
|
207
230
|
return err(`Missing required parameter: country_code. Supported: ${listSupportedCountries().join(", ")}`);
|
|
@@ -251,6 +274,10 @@ export async function dispatch(name, args = {}) {
|
|
|
251
274
|
return genRealityKeypairHandler();
|
|
252
275
|
case "xray_validate_sni_target":
|
|
253
276
|
return validateSniHandler(args);
|
|
277
|
+
case "xray_test_reality_live":
|
|
278
|
+
return testRealityLiveHandler(args);
|
|
279
|
+
case "xray_whitelist_sni_candidates":
|
|
280
|
+
return whitelistSniHandler(args);
|
|
254
281
|
case "xray_suggest_sni_for_country":
|
|
255
282
|
return suggestSniHandler(args);
|
|
256
283
|
case "xray_refresh_cache":
|
package/dist/handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSche
|
|
|
15
15
|
import { TOOL_SCHEMAS } from "./tools.js";
|
|
16
16
|
import { dispatch } from "./handlers.js";
|
|
17
17
|
import { loadIndex } from "./state.js";
|
|
18
|
-
const server = new Server({ name: "mcp-xray-pilot", version: "0.
|
|
18
|
+
const server = new Server({ name: "mcp-xray-pilot", version: "0.14.0" }, { capabilities: { tools: {}, resources: {} } });
|
|
19
19
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
20
20
|
tools: TOOL_SCHEMAS,
|
|
21
21
|
}));
|