From a0e42d04e303fa2e58ace8e5baa9201b8c941d00 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 21 Sep 2026 12:50:42 +0000 Subject: [PATCH] Add United Starlink Tracker MCP plugin Package the community-run United Starlink Tracker hosted MCP (https://unitedstarlinktracker.com/mcp, HTTP, no auth, 7 read-only tools) as a third_party marketplace plugin, mirroring attio/statsig. Co-authored-by: Sam Sokolin --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + .../.cursor-plugin/plugin.json | 36 ++++++++++ .../united-starlink-tracker/CHANGELOG.md | 9 +++ third_party/united-starlink-tracker/LICENSE | 21 ++++++ third_party/united-starlink-tracker/README.md | 68 ++++++++++++++++++ .../united-starlink-tracker/assets/logo.png | Bin 0 -> 17114 bytes third_party/united-starlink-tracker/mcp.json | 8 +++ 8 files changed, 148 insertions(+) create mode 100644 third_party/united-starlink-tracker/.cursor-plugin/plugin.json create mode 100644 third_party/united-starlink-tracker/CHANGELOG.md create mode 100644 third_party/united-starlink-tracker/LICENSE create mode 100644 third_party/united-starlink-tracker/README.md create mode 100644 third_party/united-starlink-tracker/assets/logo.png create mode 100644 third_party/united-starlink-tracker/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index ed6afb06d..d3e9c91ac 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -412,6 +412,11 @@ "name": "statsig", "source": "third_party/statsig", "description": "Inspect and manage feature gates, experiments, dynamic configs, and metrics." + }, + { + "name": "united-starlink-tracker", + "source": "third_party/united-starlink-tracker", + "description": "Check United flights for Starlink WiFi and plan Starlink-maximizing itineraries." } ] } diff --git a/README.md b/README.md index 21772a15f..47a213061 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `excalidraw` | [Excalidraw](third_party/excalidraw/) | Cursor | Integrations | Draw and export hand-drawn diagrams from chat. | | `google-cloud-bigquery` | [Google Cloud BigQuery](third_party/google-cloud-bigquery/) | Cursor | Integrations | Explore datasets and tables and run SQL queries. | | `statsig` | [Statsig](third_party/statsig/) | Cursor | Integrations | Inspect and manage feature gates, experiments, dynamic configs, and metrics. | +| `united-starlink-tracker` | [United Starlink Tracker](third_party/united-starlink-tracker/) | Cursor | Integrations | Check United flights for Starlink WiFi and plan Starlink-maximizing itineraries. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/united-starlink-tracker/.cursor-plugin/plugin.json b/third_party/united-starlink-tracker/.cursor-plugin/plugin.json new file mode 100644 index 000000000..6fcd47a6f --- /dev/null +++ b/third_party/united-starlink-tracker/.cursor-plugin/plugin.json @@ -0,0 +1,36 @@ +{ + "name": "united-starlink-tracker", + "displayName": "United Starlink Tracker", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Check United flights for Starlink WiFi and plan Starlink-maximizing itineraries.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://unitedstarlinktracker.com/mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "starlink", + "united", + "united airlines", + "wifi", + "flights", + "travel", + "itinerary", + "mcp" + ], + "category": "integrations", + "tags": [ + "starlink", + "united", + "wifi", + "flights", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/united-starlink-tracker/CHANGELOG.md b/third_party/united-starlink-tracker/CHANGELOG.md new file mode 100644 index 000000000..f7ecde142 --- /dev/null +++ b/third_party/united-starlink-tracker/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `united-starlink-tracker` MCP server pointing at the tracker's hosted Streamable HTTP endpoint (`https://unitedstarlinktracker.com/mcp`). +- No auth — the server is public and read-only, with no API key, OAuth login, or environment variable to configure. +- Logo: the tracker's own site icon, as published at unitedstarlinktracker.com. diff --git a/third_party/united-starlink-tracker/LICENSE b/third_party/united-starlink-tracker/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/united-starlink-tracker/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/united-starlink-tracker/README.md b/third_party/united-starlink-tracker/README.md new file mode 100644 index 000000000..a04523a4f --- /dev/null +++ b/third_party/united-starlink-tracker/README.md @@ -0,0 +1,68 @@ +# United Starlink Tracker + +Cursor plugin that connects agents to [United Starlink Tracker](https://unitedstarlinktracker.com), a community-run tracker of United Airlines' Starlink WiFi rollout, through its hosted remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Check whether a specific United flight is assigned a Starlink-equipped aircraft, estimate Starlink odds for flights and routes, find confirmed Starlink departures in the next couple of days, plan connections that maximize Starlink hours, and pull fleet-wide rollout stats and tail numbers. + +Setup page: https://unitedstarlinktracker.com/mcp + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **United Starlink Tracker**. +3. Click **Install**. + +Or run `/add-plugin united-starlink-tracker` in chat. + +## MCP + +```json +{ + "mcpServers": { + "united-starlink-tracker": { + "type": "http", + "url": "https://unitedstarlinktracker.com/mcp" + } + } +} +``` + +No authentication is required. There is no API key, OAuth login, or environment variable to configure. + +## Before you connect + +No account is needed. The server is public and read-only. + +## What agents can do + +| Tool | What it does | +| --- | --- | +| `check_flight` | Firm yes/no for a United flight number and date once the aircraft assignment is published (about 2 days out); falls back to a probability estimate otherwise | +| `predict_flight_starlink` | Probability that a United flight number gets a Starlink plane, from historical observations, for dates too far out for a confirmed assignment | +| `predict_route_starlink` | United flights between two airports (or touching one airport) ranked by Starlink probability | +| `search_starlink_flights` | Confirmed Starlink departures in the next ~2 days, filtered by origin and/or destination | +| `plan_starlink_itinerary` | Multi-stop routings between two airports ranked by coverage ratio (expected Starlink hours / total flight hours), with nonstops listed first | +| `get_fleet_stats` | Starlink installation counts and percentages across United mainline and express fleets, with a per-aircraft-type breakdown | +| `list_starlink_aircraft` | Starlink-equipped tail numbers, aircraft types, operators, and install dates | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- United Starlink Tracker is an independent community project and is not affiliated with, endorsed by, or an official product of United Airlines or Starlink. +- Predictions are probabilities derived from historical aircraft assignments, not guarantees. Confirmed yes/no answers are only available once United publishes assignments, roughly two days before departure. +- Itineraries from `plan_starlink_itinerary` are probability-ranked routings built from route history, not bookable itineraries. Connection timing is not validated; confirm on united.com before booking. +- All tools are read-only and idempotent. Nothing in this plugin writes data or makes bookings. +- The tracker hosts the server itself; this plugin does not wrap a local stdio server. + +## Docs + +- Setup page and tool overview: https://unitedstarlinktracker.com/mcp +- Tracker site: https://unitedstarlinktracker.com/ +- Server URL: https://unitedstarlinktracker.com/mcp + +Logo is the tracker's own site icon, as published at unitedstarlinktracker.com. + +## License + +MIT diff --git a/third_party/united-starlink-tracker/assets/logo.png b/third_party/united-starlink-tracker/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..95f0251a4d3e04d6b036a96e0591e20d1c50ce0a GIT binary patch literal 17114 zcmV)hK%>8jP)DMZri?N*RGCT9lLk!+P!lZk=?sGI+DpDn2^zy+S;1dY15`ppGMwWTc=KMCGXQ_ z&7AS3Q%;1vCTP?F)YIF0{{s)-_rODsJo@+qP{x7~V4Zd585f>^&bjBjwYjMYMpZ@) zKy7W??z-pxd+&en-_Jhpx-Lw}*b~dLPC5Amf~2=yc;1{jvtTr26ach(&APAN@a+d4 zd;}(B{K$Fdo^|8bzI6EFLt$hxA^^3wZ@=+dH{J1~0(UF~N-^U2R#{qg$xx=0&F1JLFzTQ7Y3`?hRtg9$khW!^z^@BYW_^XDBD zeiJMFs>@$qaoSrhm_W|~EJQ(^appzKmcJ5yldu3HF8W#LUEI~(0~2yU3t_ispa0Ik z-+52S^+N&Z=fC{zrI&v!l}f{eybgq1=*zGC= z^T0iSJ^7^LORZ26K-;$MIOVi+2&IAvd40>|mPyY%@!+gkGXlR2Hevn!1DCx2iV5^g z2r$3w-S59Ll}ZJE8vr1ZOTX;OPpn+|8cfK9Fj=v3)hDk0d|;790Dyk;yFWep*b^`z z6Jp5U{&5chMsd5J0}U>0-%uX~fL>Yg>I*L} zg9(|C5c0@lPY}THWrzQH_|eDV^)0p?vn)gl&A~!sfi5AQh{jClUzhxG>0cKY3a{&8 zZ~~a4k2(Sr2RiMo7ryw?a(I1+WjVGJBmc=?iW{5$f#^~w6x>3dAgPeglcho~>$(Ma zeaLagE_ve7dw~OJ*RGC(4}Ak1&_eV|ED?8N)$w@3b{yC{LXecrrgPa$KAWMs>VTFF zt6!Qvy_I(5z4t!|`%O@Yb%sCajA)v8qB<6@ipAov_k}>S+NrCqp#vLoxoj?z$!1f9 ze5l9>CWbRs4Nk&xssLH^tcj(>c}%ogK8y1is3y?ad&;Jw5Xh2O4b&60l*tTb)2Tq(L>PpXs7EzT6g@@aIdeDfruy7e zFT!KOP!iY>0HMCV{y7I9xtGTWqG5ht0V@8l389HsRVNZP`w=%~ga9a$PI-`2Gs&)Q z0xR0ly6Jv*uoL0^T<8~z#ddFB=d4+~Zf~Log=`D8H7@lvj>Qr+b&bwGu~Wkqg72DI z@@gO?DV0gP)h%ET=YXxM1}jnL4s_tm0PH^@uzC5Fl}<;;9@r~_$~FwcmSF=hx|Kku zx~?HMwxMGRu~|+->#>WE*t%_7S66o-KdieKSysbzH&sJmgoeipMnedAoULu`Fv?N} zIwj6Eun+vTwg!CIqT|HL-As&@xebhULD0}Td)Dk*zHv=o|KJzD^Ycwx+S94z@L*(B zHzGUc_HEx^Cr-d)b?n{^qbbP$3Hg`UC**kr@2S)}scN|CD_1REIFGjwKke+(j_>L3 zU%zR4JW)kL+*B1sv`It>k=Q6?_rqKl^XDC8Po6rnt$iDef}o&9FLX>y_!JC@e0V+v zpp67|h~lZLu0cL%j&;351v}MHJ?YDzzWj_+JTY66KRM-%M@?#KSh{SL<0MGfin#p* zNf1S72q2e&eI6)kY;3UW8YXv-!ie``^mr9dkuIU1IA}DeEMqOc0>=kYJh-N&k*Ipx zcEq;`U4H2$+jr~~1FlEP(D$;CGp%pE?A_;m;GJg&et*~@bB{dq;AdZaHJd9?yNq#Z zRTQkIQM?wX`-~O#g(MOQ8#&b^UJ4_UK=kmxJUwZu9E*inC0qh@kD-Kk*C4CDX=;Kh z9s#N9s_Gxy^z~e!@YuheETMYmheq93Wd4P~^v~0*G)#p%KjZE_SJgRA&0V5UU{p(jea+zIz3|h62Oq{s%0cS|G z4$(Yz%&Bi^v205?Wf;$%HRI<$zNxvn>8$hLog5ls?MQ3^raLlbJThcWU$o@5|G6O% zuN-R_97ywDxBP6`@|E(3aF8B~ zeA^N7L2mj&Axl!CB$1WRWk|#?m&=gWd@kpbtUFD=)5{adW5QL918Gdy%`rzDQgP*7 zySx7Qw+C~%JUcT)vN6=05e%U)It9_&DW594+9)fe5o(|i=n;xX@E-aXG)m-EFFGZR zYwITw6Dz=hU9!qGpZw6rKk@<6ty|l+U2yT`betP2)1mtidMJVtqOi!O31(PHM!|KX zWd8xhr;3gfA0+gxN6)k%s!(AAINfQ%*XLukz{7U;o$> zPt&hNu(1?|{2fFxRfImPk4G(DaPwEMuCJ}} zZBANzdb-(bU1qc1)2RF`` zK8>&N@`_cLUilfeCDs^1xQr6wS&S^<=WNC>r|H`FcG<*yV8$dzEi=n5bx%rWY@0~Gy zdim{p`}zrt)~w&i-Zv3!_4W;t7;{}iGtH&bGoqL{_pNXG?$^H%H|XcPKJbavtJkwd zS21h95|SN~P7S0}Lm?}2MqMb7rp!y!Pw}-kHq?Ii%bz^@a7~G@izhWVl;7L?uD)T} zinT+@zVcBbH`Rv+X?DQ_3J;P3VKht(4X^A01$>m&==R%wR}no#ni?BUc;gcCQZ2jp zbZyw&zJ7Dt`i*THHg4U#wf(c7B(a_g%&qRe|B=;eH!@O%g$@^8gUl{)G0vn0Q^^6m zUrT2Qa8pF{74{^mYvb`Mgaq~O>rYy5@mtJPZxb3kx=0)D&6PK>r|#a8I2&1tLmq zZO!bNt;Za(=q;xnf63d={@4dEIdbtra|IHwy88cojaWmYJJ@L(Y=GR#>7jwa{%&Hl zMujAfP%K*RV-x2to1xRA5bMTypX=gBpMHsu@afZ9K6CvKiGxOBiRE|o{L8CXt=mFS zNc0+U6D0(SUKYYby@FO2hj4`yJFPH0?`#+eJfHF6%i_?8g}&>a``>!*+dpu{$Dey) zl*bAE;m>#O>FQyD0C@z+!zDABp`NZ?LsapMnR;ZYbx6;UtouM;7els?U*2}t6`%cf zZ~tIdPhZ77O=)T7E{J8>wGB;(gbf1$L_;1tXre+V#*OaDOc!G)vJ58!Y>3whM>;$4 z=)azN`z4pX<2_gW>xpMzG^DqG;FrJui|86Ge~5=AiLr1C{k@%o{k=ud8Cmy?T)e+e zU^Fz;pQJWO*w+5RBw43#Fj;X=lP5KjH7~pP%+{$SHfGn>5e!)(vM*m)dAK^d;+ z3036rVIZPJHDSTrS%iGZfnqZ|VQt^p@wdAlc<|9DTbi2|E|?D^kRSd0PcJNgRa+(D zcG1%FA!@U_urFe}zmdbmsv&B_KW2z97;4cFBJKi@i_M+cO7a-xch$C|qp7j}GgrRz z+|!R=v3m2Ko&iGAbGfvsedwj2R=i)vO2E9$JZSM@NK3Si8y0{9(Id`4Mw!`*-XdTT zyK~P!AN~7157pMzE?O|3gx?^#tl!f9%+i-V9t1+fKkx79%4bqY18ZymM+(VtqTsq! zRG7uhvDZi_Ni{Enc60&ktB7V;4$L;9o-rU|n2oZ^rOAW;C-a-~< z2iY&s{}>re6&aTdynQv?Zi@t!U(f#Kt_Mk+ z?a)K!#Uj?d&z{lx`#bLDBSblj$W1)h*F{IYfD9*&L2(j+!!3BX5rdn{rU(e?YHQ#3 zwzrnw6LJ1|ii3!4S*M?PR6G%1wrVqph7&9zDQ+eS`Lr-(CXME*2nn~ti=p8gvgiOR zseUXCBg-c0nSHdW5)vQDvOSneKmN>%xBdM=t8Ut&`LhyESZ!2OUA6qxHSODW0*mvc z2K$GSy&?hxz~expa6^r@kW)s9z#i6}NoY0c$d7&C9p!gLvW97I-Ney{&O2n@%;#5Z z$Yk?06~mK7={|%Ds3=V&R8e^hMVIgZDyx3LGL09rTnt8*!^#XCjviV)MUmv>s#}&> zC;ad8-N}r*a9VYBJS>bJd3-5BPqM#FDg)vb}@kmu?6GTK39MzBExqV!wHTOawCb!C)U;)D1(Gx*!wmWdXL z9s;SFC6_An5IJQ*!LsYy&S;51OiQh5&44Fk^dI&grkU&rMK_^<1=BXW=y0GDvOXu5GSQK1*(b>UA zGL|Kqgz~i_#ziFYArftL3obv&7gwzN=8tbHxY%#?isX*_p5E2fn{Z;3FbLgGZ(VK; z7=tRp5EvL5u16LIK;_jB4>jo6k5D^}QZtME0OF32>^GZb|+8 zc^B18tFCLZNYnuF4tIE&9x{kxVpe zaX6L6?7i;ji&34Z$~fWR`k#MrK_ccy@SgtMbDIX{O{oez6avDI-FseIzCx7>G52B& zyYXBKIk4l%NyyJ$4y1K}CBH@aLOvF+=2Km5@925@#nmS+S=3M`D`c!V?_si4TUYvX zf8Lt4>(P`&FnM7twL3T1Ba9S6zFS_hXDKqfI&7UDDW+$*h5UBW>PNmTiz^;syqNW6 z2(#nU4n>m}@f{s|P~A^2KbX*G-w%-6?u&oj^2NVw+1XpN0OMV6KhJYa!LS)~V4@`! zBF$3aVsSp;7V<;Mek?0Fw`||@(Xae;&BkqXbE0EpP3>U1aNYlICC;qS9<@{LV=i+V zr!d~h^^J`=6XkkHzf40W1ywMV#ZnPKsALm6PjwJTDM{sv2_#X4M1pCF!$e`mQL}4) zdF6sY*Znt7?OwWZfON;_|GcSG<D^}5jdF_{u{aDiHvN+Ni&!8D*x&YSRU5Q{z>;=uFO?7tg5v?MD~Z zBm$i#rxkRDs7dI5_y!GtbF_GUc?7c@PmQolBvr29M3q*2PlS zlHPV|9kHJsBe(4(V8c0#tH{IA zYMv7o15q6{tWbUk4iva6saQ4p5#SvpHlU^k1njQ3ZBmLTX%2U z-ed5dOtSB#|NZ!N|CJ6J^fPaUY$5f6it12mD4@cP~9XOFMeuA;ba3FrUSz{`d z)T*YM;GetymF_#2b(t;cRsX=*Wc#+huif<1 z?|toa#hYC6_6weU_BkZf@OYC#uF%s4H7!<6iw^)8dD01LFm5U}R8!lCZ0^V5Qi{hE zH1l|C!&7d0klfdpD``TS$YpXt%)!Xs8G^91o@~}tghaI`!WDbBd@4f`ARmAn2z`pLenlF6Y( zN1i|j|6-QPz^*?eKQ{6hL85z=C~Q>SXea6so#lvH11v^b@>rUTATw5wsIGGsosa5i zy?I6Sa4EFEFu3X-Vg)gwU-Z2II8Uh<;a23GrZ@^Lzu_W0%yf_y;yn2$WV9orQP&54 z@cr+Mik^G{fA028CVB|XOs#!@Pwvh9UVP1$ztgd&)3;%5ZOyr7^ZJKk0))pRY=VSN zmznBud)o@#TMNlOIGe(LSD%Fzb6J;U$vWFm=UP-mnahYhbBSHmgatii)B+gI(Dg%> zbjOggnCxeLRJ!CZmLbt4)K5wJYz?LJQzy3^GJkIPGyL(RJMUlNnHwbi+P#H=o#Ymw z_XMW*M>>^$W#wz{edh(fZR0WL&b#je4-Xs{64bHeWb+xE8N{hxH{Fl3gE*JOnIuV$ z;&d;a`=^j0u_2t##pWCz<);YwwsM^tShz(DfnvYP;zoQK%TS0YYKTUqqXQ_wduP!? z%kJ*&zxSc1?tJK}DU+HHnLoQCj9%P4aQ)xf%$7pehRlX1sqPV~wZQW2Zu|Bf^|dv} zE%6L|nLBs(uYdE0OeRy>fghW|Ds^WXA1O6)Nhi={OJ;|NSD#77rXOCE+b<_pRdcrO zIntqQln)gW*np)V1Vzjp7-B_E(UZ?Y%h zRoL|^PO%X=xIldYK6e76c>Mhn*L*RZ&X}8AaBk3iP26RGtP!Ol6qiA5gysijg5Pvc!rt9|YCSTRPL%{bkG9 zH?LZ@HDK7vA=5N~2tLxAo)TVwaI8dC6q2=3>(+1j=70Ub+`}zD{)yjf@E+@!6s+Ei z&+HU17=ei*`yyM@>mGtAVl~Wg>Zc$ivy+^~0x~WiGN^QZGM~F`V_(W&6SHu-o_)b3>W2_U=8z+oLx-v&rGEJPuYZ5r<4=l#W>IanSvqaooz=*~zoXMWalsX6VB**UC@j|JA=%~%D&(cnGc_^YFK?6+vs9vV3 z=;~{(?dzNgwq)X?v(9kOGYjf#v z?gEDhwO=mNKs-XI@Wi^WyQ}+sANcS$zkO4{fgb?uM~fOMV5lhRc;|bzxWv5=Ey$^g zw;ZI=qk}*}R;;K%pbQO)V#0LRO~jof3-j79gq$hCbGhAo|F-qJQfA8`t#r&(Zu<)M zXd|v;TwM@usvnVWr^~Otx=MZ=N6uHEcn@2IWw4PF#`?T5Rs@N><=bC^C=#2x2;?1Z zsvmB}Jm84Zm*D{7|~~y0yC1E zk!VmQ03l_tybin!T41RLl@D)KHKM9XrS?YxKR4YkywG&cePmTne%C5WmN|VE-n;b0 zxDrBY8B8iLp4pH0AU!-<5gqRW$b_i4qcF~8+|IQSUTP+hOJi6uenFKD5!cl3%vYj8 zB>;qi7m@E1Gh-^cztZM?cRbhm#F{>$Tt0vMrggj0*AB%kYmxlD24A(q|~Ce#V{g@<@0ZBzj5O zaW~hq1)|K}XHS|dhF)RhjeS?7K_&H2#ECKl0Rrs`77-w*pIUJ@eW?O304k7p21|Vj z`z69Z27MOqQi1zVWSnar9}SY0T7(k~AHJ9dv2Jr+f}zl2)wRl~uca@Xbh?Y8LE-jU z)DpO*k60PiyCx+f@gFhtPsMw0}X0CL-ca)a~Wji-Q6mcfaVy+J$@1@kyAOMp`i*HLy z`DCixw0IYqK?`_sI9qiQCJn~vKAg|+evzhMD(8^)Yn)p!D#fRO)ybQkplOiqF7iJ+ zh_ex%oJz}!!AF4n-D6hH0U92zYQ0!vNMKS}*`tYjU-$IU68K@duR}Ajn}K${3{AYN~T{kXfUG8 zk__?gt3-efAW?SSO@8z0+Se_D2|xLhPPtAKO>1@tWp^_dT%g1 zL8c)Szh^}uK#&_WdP7k{t(gsb50zkaU|rRd@Ybc>*%fD2KcPK2zmp=MMW zVWR>d{e$6G4e>;#2^c8}wDLw{l;`TPsb0cDsG@|J-lYNz%`j9H0Kxuzmf(1m68BWJ z=c8GrM^Z$W;XU$l6a=|r=9zHgNJ?F0H;T3nW*WoP_aRIe4il*0E@u=JS3clTpm+ze znEKv|KtiuAZK86uPw%fFuSz^Lf)ogw604TXu61 zq7f*@0Hiy`KOP_?cRxTRf;Vk;l#B;P0gy-{84)wMs z@KivE6$8){1ShM+Dy1^yMvZ|i|5m?8o1$PSMu#A(fdNQULVm*uZs#Z0uNw&*#h`7v zEK5gr?c@kMP4}|vC!@FlY5|wb{0D3k-Gqq>6tN>;jW@=ruJF6E>Lz;_kD@z#uq}8; zoD{jWm5BDZ5EB!I7$=L62QHqDVqe>)BCjOwP^VNbp3BF5>R}L}u=PNOupc*v3SdxN z3=c*C5UQChx0l$@M} zJ-O1dP(y^loQ32bQ1e(o(8!jEqZrBpNU1bc+^&93#}Zv5IE3ASJrG)G5q@nm>n2M) zxQ_RWLJzn7B_|L)U=&iZ{Za&oj{p?FQO_HcGgVr4<4k15AhZ+)cZ2krgU10wv{4M9 zld0NZ>BxcM$%{Eh@_joXio~1e8;@(S%s7XfMihdrnBNy0cVO}!uu))Y+AnFfET2J_ zBim7I(p(5F*v%LEJJg6)5D9P}JC4SKiUAb3eX+*F8cf29k4*qa*- zfQO=l6I&L5?eKoV7V^%;5Bh21ib~5n)x(5f9AQXFDfI(F{fL>k!R!+(AIXbjRj47t zbY7Scph8X%AgP3kXVTG3*Sz$lB|;p?Bv}D-j$o4pwTIp6fi$vP?sRMmQTB>Uy|w0kUuNu~7+r|M9`Xdf!& zkHEVZb+W>0nlsRPjwaU;W&UE~%+ESjJ|)yxn_D5*>dxMvepF;H|K-mL3`;XUXKx zZl%YU>0Hms-ogs1of1=2n%-5m;m_MXCM4Z487=~^5*nk1%!eMY@iIsm`akihbq zb=pG0KPXBL6;fSn78uu1Hav`nO#);td#*qB{4pg|Ady=wz6XN_853ahfF@{k7xt`y zC=#E0B6}hq5=saeN=WBcZI6=YNK!X3z*xmlFnT;ID9s9n#o^eR^A~4#tcbE_u$tzux)${uR@)O) z6d^Sb)=jf%WH@4D6GJ7@<1=0e`3MlFfVMnk{?tqQgmtTC5(+V!yAnDR)Ar?t{nF6! zOob~~4^My~1b~WZkfO{!D~7cd12;!vR;eC{BGvOw7LTUZOh`VgT0TeJOE4|<#Bq6b zN?~ZfzzBsxk2YSGehe)=S*?WVGmRN~xcaF&=#*mmS55|Z=4pCB+AnuBr*ba^AU_Qf zR*d~h2`i=|R3bl@?|2QO2x?j2&^bgIAn2{8(F2@LTDCA`W^l+PLr@Asu+K4siWZB| z1L~0jmTA1iM~h>KovhMBq_w))ni?hi1LQ)iX3sHpJ^q)^eicvUuB0>pg3zNfu(7jX zD~63H4I=j7!A#o=k;ZJ3-bx&Hu6D;P_T*xVeFU4aX^|U3eqYxbV;BmD9*0sMnTQ_>hAN&0Sz#*o5CjN@Q&eBViXnAO0!f8J zX29JQ?Qt?z-P8nk=`D8iQKd~g(PPLg6`{6F?pY2)`_7zs%~l2USQweqM_Fnl9`emk zAKB`xV^bEO<_PSEh`Vzo9ZATpi1$IF*nADoenE&xGe|d~@w?C#PaNhCsHY0alGKtX7m>#8{F9Xfk9O?uo*Xwq^2aaoMY?s0ccy;sNj;PY`-| zteN3PdS2pIp~j1Mg=JMAat2B?Kor4y))vzJps*qy<|i)}GbZ}VqB8zhNgPEtVPbcN zrt!w3`LmmZS|Unl zbg)jJ85ge%jKDxrMKA@eSpqr$X0XRnJ{R&b9tIbZC3U2(W$G3jaoZ4u6st)beo-{n zok-6X+WFoGv0*`96@A9?`ijeH*e@J{0!7M&nc}C?!hRt-*P4QSfh(c(`iF7E>7)o> ztU2mpuwzu~Sn8%!s)%67DaMe#RDk^E415;NfDtM_w=%Dw6+QdZ(D9fpK)!=yhb_>f z+y#DuK+jqkFT3{e^HG#X006tK(;NOJ)sK2^I=evHij|?yo}HEX&W=@>n-{4!em#sP zgv>@6$zTtGvW#LV5>-sasvE6_=@3a`)lS{y+@5vD5g_2j4(wjWGUZ55-+y;X*G#+{ zm(#C}yhuW2bx^=+s2p@;>WY~y%XGLTjdP^#aTt0WVW}y49R9I-?g{qHH$X(eyH};# zo(H#p=xxkgFbbvu(>wAeH|aC@!arfnSvUZRzoMIDCowG~vzszA$blrHHEKEE+a8~N zEK?W}#Hwu}y`JxBN3zTbf&8a2#EuA?z(D$FLAJ;v*V@RhkV@kz7%>Lc%0Wk&EhLnR zW%yi__c&7bI1E@0r9Kw3U&u*JTkI@4JF4*_v7h9!+v!Bg!h0{US;>g{$;%*%AV3&c zN)-i#f5JhiB7ne9LMDLJwF18q5?X>UAby$2;o60aJ^2ubD0b6qNcR>7yW|BjF{D0A zY-m*^-X*^EK`Iz|6q4r(p|UTvmflu;XGU~De1!$$K{C6?B7}_SP_?9aj}JX$6DQU@ zGk)Ydke=2#tmHR6nd{t$aUQu${kVcolv6(?0aF1-kpKkYln~=p7GH%~Gxj$>usc5W z5R`~8n>`n&+pk5ki9z2v=-rXJ&hQ$5L*e+QSK$E8!@x{QfJL9(9`>Ia+Y z_XzG-XaGTIC4?o0M4D5w6hLloyEAi1_$T_v-z5>)L*0IYp+OTv#zA2D>-?G4`WU4q z0KYc!B1zlZ&@Tf_25lF?aRWNY5-uczm%xWj5aY;?4wAe_p~tFeu71P&BTd@Eh0ac} z{0=wOOJZ;cr19doaRrYKR6j*K3i*Sf00dE#5b$e*^n>K3a-wWHW4k#L=7FeU+0N9% z+}>?&W)LYHOFf`8kEBGFp^7w&_z{XjMFx@#>!$Ej_NB^8ki-p=1sKQ+9Si9YDCfwM zGP6hzK@t)^mkkmT6e%ImWGW$(O(PGRrX7v*{kvjKGf>SWh$y6^ooR>B%J5Xbgel0ML(-^8bH>w2 zU>u1&LWws6NeVq24JNA0m)1U(Hdw-1Azgi23>_pxJKVR@W{dk-4p&GVNlrs+&64*G zL-!ED1G@%a`5Rz~8|u0<_2Y80RS@C2(NjMV8bDA{34vlI%DAY?FWx8(S*~+aeCAQe zjzdHtU2IQX1j#*xp+2OPAO8UhDO)8}5t0_o10!X*G?G9@u@QJRkk4wF8i?ah)Llpq zOQNR;IyO^0iYc=Ns(T!a6p|=ym6r-M6XMoQlTJon5WN)!cG=U9it3%RJrfKaigH7R!QD#h zU|}j%17ETNU_?JzJ|uy$x!D-}vIK@CXpn&$_7a-O@LP)V`V-0O7Kx-jRhWd8I zs_RjG#PGBft8Qv+@`8N#CMe{Pv^ZEgebQucEb06uQY2Rv0ZP8a{U#*Um8axLElbQ% zKOFITH@zmujl*e>7dl+iFbwI4voKp$T}$nf_gE3Dd`uy}ZF2b?AhZs{kgGj*ukn)H z8Dvq1Z(kAB4@3kIlv6^W{&)--UjeI|3u)?<>)a4;nmG(YE%ubCi%mZga>+unlj$B| z!I5I%<@ z2bz`Oe0u2l-;&Sqloq7gXI8pK%l_qzZ$bNKQP!*|g9`8Yn8UV3;aSbvd3CFXnd5cxf;xO(Q@i z7>^7LDzoK-4v#WB5UZ+QcxGbJ*;c#;Mj+VD4ZU<*VPH4rQ6HvzH1%<@2ph^V7{Yj| z(nPVB;>wMP#akl-5Cj=A=16O0Bi2Gbv>~a73i(3U#`v_w5Z$rY$7DGq(H3u+=MHtb z*(4{;U`+IZxM32FNNEwnY#}}(mL;vs1-rO~?MGLBF}>v|KZ_9^2b(5Lrq*Lq7SnT{l`6e6G31a0&>OEnBVd$D=pERz zHQWAtu4{{=0xm;~q0i0we>rCkcuK!Zowal=vG)GJj0lMN=h!JbRf(BL$B2twH45iN zC7&5uetW*Bouh~FAnZjCbJ+9R|Kc^Gphpk;(F3sW0R-g?8E`NO)1U@;ivcUFlCTtp ztm?+vxTt5%`^0CzBxqFp z8c?ihW_<1msCj;*5rCD?VyJg$*`EqS-Guk>K(j=TOG|%L1V|8P*QiWa8puQsjL>*- z87%-o88W12+b{<}1z|`G;z`ujEqSli7-9OYkb(<&w{NT4y*1anqtL&@GeCfSFM3yZ zF_P{4lL~Yx*MK7lS@o^)Nwe+7S*U&nN(?h9QSQjQHxIt@SDZ_SM^9zy1F(Mq1fj@~ zIsCgahWH>Js*P$FUoebX;7Ec8_qYSQh~t(|cDdxmXM@mItXL#|XpK^Wz{P2tWjD@1 z^{p`6999@9w7-yC^G_Wf^s#0GJz@;}zCsU-7(g(37?MT7$W~F7>e> z&h|rgh&@!xW%Cda&6uEJDyNDB8c-|_Ruv+&W^W?KlTuz_sB4zEk=jVJ zW-od?ZWnma14S{45dp|EdKhJP%>rkn z>ok0<*^3^3!fP~*7m+!$XWK_FIj*fe!ovwl%SbT9!!R68o?whz50j)%u484acFM4` z_v1p`&h^P+o!7&=x?~J=g`vTk1$yv4Ko1cD9%tILDKP3{Vu*T@!Wyx9 z4~8L;km49(-;zesGlVz0?BofRc4-V1QRuLlHVY)oNWQW%yVqwrH&q{WVr-?nsU)4yqqhuSGw#VpL092V%REUC)zxhl;Es!R+j>Yh;(0v-aO(b7O*>Y9=m zqM|Xx%k0H^h?g6%Sy|~ftSXe5Gm`tDF-F>G^D6Pwrf1UImQ^2onmuz#q$jS8DIws% zyH^dZd&Er-N|Z3g!VrKk z)qIqO_?p==EQaD>h8|ubOO=pIqKht5MWo%OPCn^s;^b$BhE_j_HvPM1-ih|~qaZe} zw2_;4J65MQJ;_oNyc88Po8=mchfjy#>Pa?uF3;7~1RnHYO&<3FdVrd+QPx0QN@ECQ zZL4q-NTVgccPYYLp4+x*?@&EtQPdIKkpE0$QC0*DUIkiMO$!UteaSTsqYY0~&syTl zIu6D@#m;B*J6}m}ddAHT7*mGn*>H>zfYRF%Evhs{SS|$n6Fo%c&Y6vN?AW>Buw!BL z1r;q8`DHriij0XYR3RABPk*8nsJ5D=K+HiYij-~R89%6M+M%)8Z-l0~Bdyrl3xWrB z=69?}Z+`{nGX`#4Sqp}Z6uN6D9@m`JP?8?g;ljbuLfE_LiN#`V8&^8hr?(z=?2;E> zS`MQuCG-%m8;Qq#FxJURqJc2dln6^JMhP_*s)(1LQumCk%&SNVV{n-^A}}KQ38i8l*f?an(=l)iIh2GEAdIB_>BAlPwXiqmTDB^`sfHc z?yV6RS?*9zYV*Hg%Tha*a3&u@XUA=rg{nuhM5OY`C-)S(H)T84=X*A@3oXJntfXDd z^b;7WspEO`XNBCLTuvuXg5A1vN5Lx#86N?ru z00kf-XP*0xXP3SJdtFe_Vp&!MxQ<^rQ2(sRIvMT2=H9+4fT zGkoB=z|xDx%I;wE*$)C10vXzhAs=+GcN4h)frC$)aD)Po?YT}0E8w+X#@HZz z;jvD3^3BvoW|FW;arop1K{g9QDIVAd=ppjxgLj>Hf|xcRnH3}Nx%5N#-Tx5mBPngp zAT*2&uT5AesgR`2l0&M+FlSS%sl9<=$bxi_PYmc_0TE!F1}V@m?xLns0RuO344Uau z`Jn@qY!>Vn#lz)-^Uwav?Y~tYJpg)j)#{T@J=={qtNaM0vMPcAVpIl32G_xQ6K&n( zZn2yLM($p|%Y0pF4#ckK z1^dTraUt+9(E~mWL}bg>wl^GqdM1;BeJW*D5d>-@@E9Ydkkq$YCjl~+#mwaDqp)jG zr1^00K^9$312NzQjTcM+CQm{pfDnLZCn0SX>`UknNhA`>UwDEfP|ZgF(8+`5&iTlP zE`xn7*wYu{lhKH^O2_&mX5oAltCcTT#Cd_wP{9go^h-Z&gctthaUqZCgakSEo~I!n zH}Ba*ywq3nRiG_wK2$X$7|p1Ql|^Bp8ldi~M;Rfk%9dSY0u96CGW3vPH%s@}K9Nsd z^${O>pjZPD>F*yP?ik@iupb1K_*7aOfuWE*3<-eGl>vsSGL?<7Y*2Pod=wthIzn7% zL%S3$OM;{c6JH;JS1ko{9T*EXO9`=DkNopal0Egc2LOo3_U$`PKkIEfcI<@xBOzb} zrR*ALB$>WdF_?^xhdW0w%N!1`v^z zufBHrnHQzgY1nUqN`DHYkib9^c)fw2Z1BK7rk zME4K}EAZQr03ved-S=H~#V5+FuulY)ZYZmeyp0Bl2Ctn$#k7E0{xFko$`=2TMgaDun zdZ4@p;_@F~`r1!_{%aU3g32}o>!jc<1Bgx-`=z9)-;AEbrN0VT1&7%A{*bFb`H`Ey z`;GGJpfDEd*5CZ$+An@Bm&?Ie5mc!ya0OIui%Kg)*^Uar0IsmsSj7#ndgohz@uN%L zS-C(1g`_x3pL_A$@4KSArx(VSR74V##0iR|Zz@U2Zmb9z7(2M(GHu$_JN|U*@ox+@ z)B=U)$Xnam-}ix!tXR1U#-gCm-;6450t8oVsQATxlp~HR${`GJFSSS?W0Ffw>=y5K@ z)w=2vAHMF|Ynq#eKVlAzJkY#;!$xA!?!E6pn2_-!7hZ7A_r7x@v0N}RL8FzaXlvVc z-vbYk*HceFo6qNALdKprj`OBdPCWnIvo5;e+&Ob*!Dt8?^;B1X|G*=UJ$~Q)4?XzM zW5mY6gzRr27V7M?&LHmdS#Ld~xE^DKg7#jnl`~y`3y|DMHc3;fhYg~ literal 0 HcmV?d00001 diff --git a/third_party/united-starlink-tracker/mcp.json b/third_party/united-starlink-tracker/mcp.json new file mode 100644 index 000000000..4c6674d95 --- /dev/null +++ b/third_party/united-starlink-tracker/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "united-starlink-tracker": { + "type": "http", + "url": "https://unitedstarlinktracker.com/mcp" + } + } +}