@mcp-use/inspector 12.0.2 → 12.0.3-canary.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/dist/cdn/inspector.js +4 -4
- package/dist/cli.js +2 -2
- package/dist/server/chunk-3ZCJBC3Y.js +164 -0
- package/dist/server/chunk-F66FM5KJ.js +322 -0
- package/dist/server/chunk-N2ITSMWB.js +71 -0
- package/dist/server/cli.js +2 -2
- package/dist/server/index.js +3 -3
- package/dist/server/middleware.js +3 -3
- package/dist/server/server.js +2 -2
- package/dist/server/shared-static.js +2 -2
- package/dist/server/version.js +1 -1
- package/dist/web/assets/{1c-Cp0U5nA5.js → 1c-D__OCkss.js} +1 -1
- package/dist/web/assets/{abnf-BIPYcdIl.js → abnf-DqCdHHdE.js} +1 -1
- package/dist/web/assets/{accesslog-D5uDhK0A.js → accesslog-mQVKLOaa.js} +1 -1
- package/dist/web/assets/{actionscript-C_gok0t7.js → actionscript-6s8fq0by.js} +1 -1
- package/dist/web/assets/{ada-CFLZnoct.js → ada-CxDInjI0.js} +1 -1
- package/dist/web/assets/{angelscript-DGXNYzhv.js → angelscript-D84lcXSD.js} +1 -1
- package/dist/web/assets/{apache-N-c2jpaw.js → apache-BQTI90Pv.js} +1 -1
- package/dist/web/assets/{applescript-7osBa-Pb.js → applescript-BkDyuEkA.js} +1 -1
- package/dist/web/assets/{arcade-DEWGFFHv.js → arcade-DkwF-jK_.js} +1 -1
- package/dist/web/assets/{arduino-CDm8peJv.js → arduino-Btv4BSr8.js} +1 -1
- package/dist/web/assets/{armasm-DJ2CFhhL.js → armasm-CKReXYqb.js} +1 -1
- package/dist/web/assets/{asciidoc-2Skr9mVs.js → asciidoc-MnH_srCh.js} +1 -1
- package/dist/web/assets/{aspectj-DV6KEsVp.js → aspectj-B53WJWBl.js} +1 -1
- package/dist/web/assets/{autohotkey-y6kuu0uk.js → autohotkey-RHmCC5O2.js} +1 -1
- package/dist/web/assets/{autoit-DrA_m2cz.js → autoit-D3CVpc-O.js} +1 -1
- package/dist/web/assets/{avrasm-D7_bwRT9.js → avrasm-BQn3wNu1.js} +1 -1
- package/dist/web/assets/{awk-ByO8zG4U.js → awk-deIeTuNw.js} +1 -1
- package/dist/web/assets/{axapta-0bXPZVP8.js → axapta-De0Sp5lN.js} +1 -1
- package/dist/web/assets/{bash-CqPSXdtt.js → bash-CfYE8zV2.js} +1 -1
- package/dist/web/assets/{basic-DiZm3n4o.js → basic-Cew40_Ei.js} +1 -1
- package/dist/web/assets/{bnf-CMroIOw4.js → bnf-NqmvOyH2.js} +1 -1
- package/dist/web/assets/{brainfuck-y90QWOth.js → brainfuck-ZOK-PFnV.js} +1 -1
- package/dist/web/assets/{c-DsnlhrDj.js → c-CXMKseCn.js} +1 -1
- package/dist/web/assets/{c-like-BraCvMHX.js → c-like-eohyIciY.js} +1 -1
- package/dist/web/assets/{cal-BzVoU25c.js → cal-DSI3iG4Q.js} +1 -1
- package/dist/web/assets/{capnproto-B33yfzDI.js → capnproto-BsPlvS_Y.js} +1 -1
- package/dist/web/assets/{ceylon-hV_A1DIR.js → ceylon-DTj_ufdi.js} +1 -1
- package/dist/web/assets/{clean-DFwD51-5.js → clean-CK_w3fft.js} +1 -1
- package/dist/web/assets/{clojure-C7ZVVxxU.js → clojure-CdNEIj8k.js} +1 -1
- package/dist/web/assets/{clojure-repl-Du2GCTzB.js → clojure-repl-BFKoU_zH.js} +1 -1
- package/dist/web/assets/{cmake-BmHGvdMl.js → cmake-CH3zPA3R.js} +1 -1
- package/dist/web/assets/{coffeescript-Ym9NY7Xp.js → coffeescript-Bom6wsrR.js} +1 -1
- package/dist/web/assets/{coq-DXEp15yR.js → coq-BfTOUlK-.js} +1 -1
- package/dist/web/assets/{core-CVRd1r0J.js → core-CMeiHdg4.js} +1 -1
- package/dist/web/assets/{cos-By3og5u3.js → cos-2P2hyx-7.js} +1 -1
- package/dist/web/assets/{cpp-BbSna3g6.js → cpp-CQ_4yoS7.js} +1 -1
- package/dist/web/assets/{crmsh-BRpYDfL2.js → crmsh-CMX1SH32.js} +1 -1
- package/dist/web/assets/{crystal-CXzYKqb_.js → crystal-l3X6uZAM.js} +1 -1
- package/dist/web/assets/{csharp-BX6C3dWv.js → csharp-BsUDL1Wf.js} +1 -1
- package/dist/web/assets/{csp-DWrfRw4O.js → csp-D9aoHRyP.js} +1 -1
- package/dist/web/assets/{css-bKY-eAHG.js → css-DF4aoqjb.js} +1 -1
- package/dist/web/assets/{d-DxFkfVCn.js → d-C1Ieo_fp.js} +1 -1
- package/dist/web/assets/{dart-B0trDioe.js → dart-DbvgbQY9.js} +1 -1
- package/dist/web/assets/{delphi-D-G6nIS8.js → delphi-CesJHdCX.js} +1 -1
- package/dist/web/assets/{diff-Bp8UDaxC.js → diff-B51IHQHf.js} +1 -1
- package/dist/web/assets/{django-BKrLSznM.js → django-BI952AKa.js} +1 -1
- package/dist/web/assets/{dns-BuWDudPM.js → dns-CtI9GO4b.js} +1 -1
- package/dist/web/assets/{dockerfile-BSPxn7gp.js → dockerfile-DpekSkDp.js} +1 -1
- package/dist/web/assets/{dos-Gzj43oIq.js → dos-DojY99tc.js} +1 -1
- package/dist/web/assets/{dsconfig-CNrdD9OE.js → dsconfig-C7IMD7wJ.js} +1 -1
- package/dist/web/assets/{dts-Cuv3gGEB.js → dts-Tu1HDlVo.js} +1 -1
- package/dist/web/assets/{dust-B0GFUK0H.js → dust-BmDncarl.js} +1 -1
- package/dist/web/assets/{ebnf-Crq64wVC.js → ebnf-CYZcmI97.js} +1 -1
- package/dist/web/assets/{elixir-C9hRkjRo.js → elixir-Cws7Z7UO.js} +1 -1
- package/dist/web/assets/{elm-ChFl35Tv.js → elm-BbllLLnP.js} +1 -1
- package/dist/web/assets/{erb-DloRiCu-.js → erb-23FuP40l.js} +1 -1
- package/dist/web/assets/{erlang-BJ3La1i-.js → erlang-HNWjNymg.js} +1 -1
- package/dist/web/assets/{erlang-repl-n-SIf8Mn.js → erlang-repl-CGdyc2AQ.js} +1 -1
- package/dist/web/assets/{excel-Bh3xWjSP.js → excel-CM_uw4vz.js} +1 -1
- package/dist/web/assets/{fix-H1U-a0jc.js → fix-Ds3SGz34.js} +1 -1
- package/dist/web/assets/{flix-CsswQMYd.js → flix-CsHlFz4X.js} +1 -1
- package/dist/web/assets/{fortran-BxJ6rEKw.js → fortran-DIztGc0e.js} +1 -1
- package/dist/web/assets/{fsharp-C7NkIaZA.js → fsharp-Dh4v7F0x.js} +1 -1
- package/dist/web/assets/{gams-BWH1lnh3.js → gams-BR1QRxLg.js} +1 -1
- package/dist/web/assets/{gauss-CW442Lfp.js → gauss-CUFmr4jj.js} +1 -1
- package/dist/web/assets/{gcode-pt9D0tdD.js → gcode-DJ57URD0.js} +1 -1
- package/dist/web/assets/{gherkin-W2H1V0Fv.js → gherkin-CnPKlQ7r.js} +1 -1
- package/dist/web/assets/{glsl-DrngcF6G.js → glsl-BrbbBEOw.js} +1 -1
- package/dist/web/assets/{gml-TvgZi0uj.js → gml-iQPhL_0V.js} +1 -1
- package/dist/web/assets/{go-BaN3R6RL.js → go-CBOLY2wA.js} +1 -1
- package/dist/web/assets/{golo-BkSx3owE.js → golo-D49KeVZv.js} +1 -1
- package/dist/web/assets/{gradle-DyFxCkcP.js → gradle-pAxY9DI-.js} +1 -1
- package/dist/web/assets/{groovy-C-tZJZla.js → groovy-Dv9bZ_R9.js} +1 -1
- package/dist/web/assets/{haml-DdWz6d5e.js → haml-DiFkhnDf.js} +1 -1
- package/dist/web/assets/{handlebars-BUOxChfW.js → handlebars-DthVNiQ4.js} +1 -1
- package/dist/web/assets/{haskell-Cbc2X_ew.js → haskell-DEfXdkjO.js} +1 -1
- package/dist/web/assets/{haxe-DAaD-laI.js → haxe-gqqczXYN.js} +1 -1
- package/dist/web/assets/{hsp-C22lDJ-y.js → hsp-B0f99mg8.js} +1 -1
- package/dist/web/assets/{htmlbars-C8NxkC-n.js → htmlbars-BP-lLGes.js} +1 -1
- package/dist/web/assets/{http-Djh6tA6V.js → http-D1vTEexH.js} +1 -1
- package/dist/web/assets/{hy-ClKUnT06.js → hy-C9BhKsXt.js} +1 -1
- package/dist/web/assets/{index-B4EVb4iB.js → index-BvRIyzqc.js} +5 -5
- package/dist/web/assets/{inform7-Zhm7sIHI.js → inform7-CHGg3o3d.js} +1 -1
- package/dist/web/assets/{ini-DdWYMtHr.js → ini-Bxxvf-mN.js} +1 -1
- package/dist/web/assets/{irpf90-C9TfKt6p.js → irpf90-alkymH4E.js} +1 -1
- package/dist/web/assets/{isbl-BzYLAXvy.js → isbl-DfBAukUC.js} +1 -1
- package/dist/web/assets/{java-BYFf0VuE.js → java-DkYMuPes.js} +1 -1
- package/dist/web/assets/{javascript-_SreNx1J.js → javascript-D2hLytTj.js} +1 -1
- package/dist/web/assets/{jboss-cli-DZGpyEtF.js → jboss-cli-BaI-CAsB.js} +1 -1
- package/dist/web/assets/{json-DaCf1MtD.js → json-DKt2AafY.js} +1 -1
- package/dist/web/assets/{julia-B2q4NYgH.js → julia-DnhPkiYp.js} +1 -1
- package/dist/web/assets/{julia-repl-DAN09E7V.js → julia-repl-CG53CJEd.js} +1 -1
- package/dist/web/assets/{kotlin-DT942ne6.js → kotlin-DOyEeqIg.js} +1 -1
- package/dist/web/assets/{lasso-BlbzseQA.js → lasso-B8fBYrT6.js} +1 -1
- package/dist/web/assets/{latex-DpQ2omM1.js → latex-B_PhGWc9.js} +1 -1
- package/dist/web/assets/{ldif-D_fHeGDI.js → ldif-Vk1s7DmU.js} +1 -1
- package/dist/web/assets/{leaf-Bb-hYR-T.js → leaf-OU8Mi4xs.js} +1 -1
- package/dist/web/assets/{less-DY7wevPy.js → less-Qr6-k-om.js} +1 -1
- package/dist/web/assets/{lisp-BFn6Z6TH.js → lisp-CU2UA4yV.js} +1 -1
- package/dist/web/assets/{livecodeserver-Bk4gBfw0.js → livecodeserver-CcHeJjh-.js} +1 -1
- package/dist/web/assets/{livescript-DZVbm60K.js → livescript-DvrIhY5x.js} +1 -1
- package/dist/web/assets/{llvm-BXp6EscN.js → llvm-CbquNxKl.js} +1 -1
- package/dist/web/assets/{lsl--9jEdTPu.js → lsl-V9uDwAi7.js} +1 -1
- package/dist/web/assets/{lua-s5CfixN9.js → lua-DfdoT6XD.js} +1 -1
- package/dist/web/assets/{makefile-Cl6hle6P.js → makefile-DpItFwIa.js} +1 -1
- package/dist/web/assets/{markdown-DazMkANp.js → markdown-B6qTJrCC.js} +1 -1
- package/dist/web/assets/{mathematica-CJjZHGoQ.js → mathematica-D9ErGjj_.js} +1 -1
- package/dist/web/assets/{matlab-BxUTwF4q.js → matlab-Bd5IUoEE.js} +1 -1
- package/dist/web/assets/{maxima-pVwqfTMu.js → maxima-CJU_m7lJ.js} +1 -1
- package/dist/web/assets/{mel-BZbFkq4A.js → mel-CaKMvs4S.js} +1 -1
- package/dist/web/assets/{mercury-eSKxWCFK.js → mercury-G7S-dG-0.js} +1 -1
- package/dist/web/assets/{mipsasm-Bn61TEB3.js → mipsasm-CdudYm4g.js} +1 -1
- package/dist/web/assets/{mizar-BFJ4ghcD.js → mizar-Buce5x2L.js} +1 -1
- package/dist/web/assets/{mojolicious-DroDaNJ1.js → mojolicious-T3xxYo8v.js} +1 -1
- package/dist/web/assets/{monkey-CSyVbqSA.js → monkey-DlQLwmdk.js} +1 -1
- package/dist/web/assets/{moonscript-BCj4RWWw.js → moonscript-PYqvUyNg.js} +1 -1
- package/dist/web/assets/{n1ql-DJnAxjW9.js → n1ql-C0h1eEjL.js} +1 -1
- package/dist/web/assets/{nginx-hn-W_HdT.js → nginx-BW3_E40V.js} +1 -1
- package/dist/web/assets/{nim-DrHqIrh9.js → nim-CXowe6tF.js} +1 -1
- package/dist/web/assets/{nix-i5sQskH1.js → nix-CvggdAbQ.js} +1 -1
- package/dist/web/assets/{node-repl-CwZTma_T.js → node-repl-BEeGQNwU.js} +1 -1
- package/dist/web/assets/{nsis-DcFZ30J9.js → nsis-CPxjYUjO.js} +1 -1
- package/dist/web/assets/{objectivec-BijYqtxt.js → objectivec-VafM3WDW.js} +1 -1
- package/dist/web/assets/{ocaml-ColJx__w.js → ocaml-8p8mG5Cc.js} +1 -1
- package/dist/web/assets/{openscad-DqPhpSLz.js → openscad-DDRtv7S5.js} +1 -1
- package/dist/web/assets/{oxygene-CdOtJnZK.js → oxygene-B2DjrRCP.js} +1 -1
- package/dist/web/assets/{parser3-BzuCqDBR.js → parser3-CjD1tpzU.js} +1 -1
- package/dist/web/assets/{perl-CE6q33qo.js → perl-DjL2JSaE.js} +1 -1
- package/dist/web/assets/{pf-BPBwTLk7.js → pf-TeRkKkLy.js} +1 -1
- package/dist/web/assets/{pgsql-C7lqQgRo.js → pgsql-CZthYO4K.js} +1 -1
- package/dist/web/assets/{php-BjWgiKLC.js → php-BTYHoDWu.js} +1 -1
- package/dist/web/assets/{php-template-BdQnq6D2.js → php-template-DyaivxJ3.js} +1 -1
- package/dist/web/assets/plaintext-iQtBOMth.js +1 -0
- package/dist/web/assets/{pony-CbQhF8tV.js → pony-DV2ysazU.js} +1 -1
- package/dist/web/assets/{powershell-CiWHrvRD.js → powershell-YGnHIzUq.js} +1 -1
- package/dist/web/assets/{processing-ChNzAN_5.js → processing-Bkt6Qm9k.js} +1 -1
- package/dist/web/assets/{profile-BTu940y9.js → profile-BvWZr-Bl.js} +1 -1
- package/dist/web/assets/{prolog-DYsArNc-.js → prolog-CH-yWzFy.js} +1 -1
- package/dist/web/assets/{properties-BV4Es_-m.js → properties-DH6CWmH2.js} +1 -1
- package/dist/web/assets/{protobuf-D4UXc1kO.js → protobuf-93ngXRE0.js} +1 -1
- package/dist/web/assets/{puppet-CwxG6IN6.js → puppet-BubsJrYf.js} +1 -1
- package/dist/web/assets/{purebasic-CrTuU9RD.js → purebasic-Cb1B4B27.js} +1 -1
- package/dist/web/assets/{python-BcMoQuf7.js → python-CQouDsuI.js} +1 -1
- package/dist/web/assets/{python-repl-CUDmVoco.js → python-repl-0MR6Vrjv.js} +1 -1
- package/dist/web/assets/{q-Db3AwSvU.js → q-D3RTwLkk.js} +1 -1
- package/dist/web/assets/{qml-CCM8SGkS.js → qml-BKfGyHNm.js} +1 -1
- package/dist/web/assets/{r-CZafPYyw.js → r-CHgHQaOV.js} +1 -1
- package/dist/web/assets/{reasonml-CFAU_0lh.js → reasonml-B7YzyA9h.js} +1 -1
- package/dist/web/assets/{rib-B1cT6PNW.js → rib-1yZXXxdM.js} +1 -1
- package/dist/web/assets/{roboconf-Df82QzuH.js → roboconf-y07aDwuP.js} +1 -1
- package/dist/web/assets/{routeros-C_ttKaI4.js → routeros-D7n4idmS.js} +1 -1
- package/dist/web/assets/rpc-logger-TPNV75J4-C6vAEiYB.js +1 -0
- package/dist/web/assets/{rsl-DcvpGtVZ.js → rsl-1kfE3Wpu.js} +1 -1
- package/dist/web/assets/{ruby-YzX3-ScR.js → ruby-DMhpBeJV.js} +1 -1
- package/dist/web/assets/{ruleslanguage-DUlHmn2R.js → ruleslanguage-C1NuOhKo.js} +1 -1
- package/dist/web/assets/{rust-CLYO_1Rr.js → rust-1MVH0JDH.js} +1 -1
- package/dist/web/assets/{sas-C03ipRJf.js → sas-BymcIjrn.js} +1 -1
- package/dist/web/assets/{scala-Djh9_Wdk.js → scala-njNg3Cek.js} +1 -1
- package/dist/web/assets/{scheme-DcLaCTGs.js → scheme-B-pLElAO.js} +1 -1
- package/dist/web/assets/{scilab-KSwwDafj.js → scilab-DOx9EvPS.js} +1 -1
- package/dist/web/assets/{scss-CJlWzSGN.js → scss-LN45QIcK.js} +1 -1
- package/dist/web/assets/{shell-DVCI5STN.js → shell-BOBqB52Y.js} +1 -1
- package/dist/web/assets/{smali-Cjk6nj6l.js → smali-BxjEvgwX.js} +1 -1
- package/dist/web/assets/{smalltalk-ClzdIlPs.js → smalltalk-Dsi278h1.js} +1 -1
- package/dist/web/assets/{sml-C186MZxI.js → sml-DLCza9ZY.js} +1 -1
- package/dist/web/assets/{sqf-fsGsJYPL.js → sqf-Co7QmVM9.js} +1 -1
- package/dist/web/assets/{sql-B5_sCa5R.js → sql-BEP6wMe4.js} +1 -1
- package/dist/web/assets/{sql_more-D9_fq6iT.js → sql_more-BCv-aNBy.js} +1 -1
- package/dist/web/assets/{stan-cY9LqJoG.js → stan-wserHLU_.js} +1 -1
- package/dist/web/assets/{stata-BQhZWWAj.js → stata-B8GyRENF.js} +1 -1
- package/dist/web/assets/{step21-Bvb3HokP.js → step21-CF74JmGy.js} +1 -1
- package/dist/web/assets/{stylus-DoM-fVB4.js → stylus-CGVyqgnk.js} +1 -1
- package/dist/web/assets/{subunit-D2pwuv6N.js → subunit-C24dsIyA.js} +1 -1
- package/dist/web/assets/{swift--a1HxkUb.js → swift-CNCF9sPZ.js} +1 -1
- package/dist/web/assets/{taggerscript-CMAje56p.js → taggerscript-DTa_frsz.js} +1 -1
- package/dist/web/assets/{tap-BZwhxw-X.js → tap-d74_v255.js} +1 -1
- package/dist/web/assets/{tcl-BuMGqZvW.js → tcl-C5ZfzfT2.js} +1 -1
- package/dist/web/assets/{thrift-CCT4kJAV.js → thrift-DKBZ03M5.js} +1 -1
- package/dist/web/assets/{tp-BqVuduXn.js → tp-Dy__ss0f.js} +1 -1
- package/dist/web/assets/{twig-BWFtzylq.js → twig-T-qxR35T.js} +1 -1
- package/dist/web/assets/{typescript-DMPWQi_a.js → typescript-D-tbNwiL.js} +1 -1
- package/dist/web/assets/{vala-QnqXqyqs.js → vala-DhbgSfUc.js} +1 -1
- package/dist/web/assets/{vbnet-o91QeZG5.js → vbnet-DXvr4cNO.js} +1 -1
- package/dist/web/assets/{vbscript-D5D5h0tp.js → vbscript-BqnwIokB.js} +1 -1
- package/dist/web/assets/{vbscript-html-CwisDwUY.js → vbscript-html-BzgYlLNH.js} +1 -1
- package/dist/web/assets/{verilog-Nmw9eEeH.js → verilog-wTjvfg_U.js} +1 -1
- package/dist/web/assets/{vhdl-DpWxgNRE.js → vhdl-CmIzfrM8.js} +1 -1
- package/dist/web/assets/{vim-CC-Gl0o9.js → vim-Vs3UjW-y.js} +1 -1
- package/dist/web/assets/{x86asm-BQ5hz2Cm.js → x86asm-CAP_QhOy.js} +1 -1
- package/dist/web/assets/{xl-QQEzeCq_.js → xl-W-zML2WC.js} +1 -1
- package/dist/web/assets/{xml-CsDqKgn2.js → xml-Cj69d4sS.js} +1 -1
- package/dist/web/assets/{xquery-BtrFZjmv.js → xquery-hZG583lO.js} +1 -1
- package/dist/web/assets/{yaml-Bs4bWFpO.js → yaml-fooj3xBp.js} +1 -1
- package/dist/web/assets/{zephir-pZ3MVca6.js → zephir-CRqpicm_.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +3 -3
- package/dist/web/assets/plaintext-COMqArXT.js +0 -1
- package/dist/web/assets/rpc-logger-TPNV75J4-BqIr5Mo3.js +0 -1
package/dist/cdn/inspector.js
CHANGED
|
@@ -26907,7 +26907,7 @@ function of() {
|
|
|
26907
26907
|
let e = window.__INSPECTOR_VERSION__;
|
|
26908
26908
|
if (e !== void 0) return e;
|
|
26909
26909
|
}
|
|
26910
|
-
return "12.0.
|
|
26910
|
+
return "12.0.3-canary.0";
|
|
26911
26911
|
} catch {
|
|
26912
26912
|
return "0.0.0";
|
|
26913
26913
|
}
|
|
@@ -48450,9 +48450,9 @@ var TM, EM, DM, OM, kM, AM, jM, MM, NM, PM, FM, IM, LM, RM, zM, BM, VM, HM, UM,
|
|
|
48450
48450
|
}(), uce);
|
|
48451
48451
|
}));
|
|
48452
48452
|
//#endregion
|
|
48453
|
-
//#region ../mcp-use/dist/chunk-
|
|
48453
|
+
//#region ../mcp-use/dist/chunk-PD3NSISC.js
|
|
48454
48454
|
Xp();
|
|
48455
|
-
var hce = "1.34.
|
|
48455
|
+
var hce = "1.34.3-canary.0";
|
|
48456
48456
|
function _R() {
|
|
48457
48457
|
return hce;
|
|
48458
48458
|
}
|
|
@@ -145348,7 +145348,7 @@ function n4e({ tunnelUrl: e, isTunnelStarting: t, setTunnelUrl: n, setIsTunnelSt
|
|
|
145348
145348
|
className: "font-semibold text-sm",
|
|
145349
145349
|
children: "Tunnel URL"
|
|
145350
145350
|
}), /* @__PURE__ */ (0, O.jsxs)("a", {
|
|
145351
|
-
href: "https://
|
|
145351
|
+
href: "https://mcp-use.com/docs/tunneling",
|
|
145352
145352
|
target: "_blank",
|
|
145353
145353
|
rel: "noopener noreferrer",
|
|
145354
145354
|
className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",
|
package/dist/cli.js
CHANGED
|
@@ -3333,7 +3333,7 @@ function getClientDistPath() {
|
|
|
3333
3333
|
var package_default = {
|
|
3334
3334
|
name: "@mcp-use/inspector",
|
|
3335
3335
|
type: "module",
|
|
3336
|
-
version: "12.0.
|
|
3336
|
+
version: "12.0.3-canary.0",
|
|
3337
3337
|
description: "MCP Inspector - A tool for inspecting and debugging MCP servers",
|
|
3338
3338
|
author: "",
|
|
3339
3339
|
license: "MIT",
|
|
@@ -3412,7 +3412,7 @@ var package_default = {
|
|
|
3412
3412
|
},
|
|
3413
3413
|
peerDependencies: {
|
|
3414
3414
|
express: "^4.21.2 || ^5.0.0",
|
|
3415
|
-
"mcp-use": ">=1.34.
|
|
3415
|
+
"mcp-use": ">=1.34.3-canary.0",
|
|
3416
3416
|
react: "^18.0.0 || ^19.0.0",
|
|
3417
3417
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
3418
3418
|
"react-router": "^7.12.0"
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
// package.json
|
|
2
|
+
var package_default = {
|
|
3
|
+
name: "@mcp-use/inspector",
|
|
4
|
+
type: "module",
|
|
5
|
+
version: "12.0.3-canary.0",
|
|
6
|
+
description: "MCP Inspector - A tool for inspecting and debugging MCP servers",
|
|
7
|
+
author: "",
|
|
8
|
+
license: "MIT",
|
|
9
|
+
homepage: "https://github.com/mcp-use/mcp-use#readme",
|
|
10
|
+
repository: {
|
|
11
|
+
type: "git",
|
|
12
|
+
url: "git+https://github.com/mcp-use/mcp-use.git",
|
|
13
|
+
directory: "libraries/typescript/packages/inspector"
|
|
14
|
+
},
|
|
15
|
+
bugs: {
|
|
16
|
+
url: "https://github.com/mcp-use/mcp-use/issues"
|
|
17
|
+
},
|
|
18
|
+
keywords: [
|
|
19
|
+
"mcp",
|
|
20
|
+
"inspector",
|
|
21
|
+
"debug",
|
|
22
|
+
"tools"
|
|
23
|
+
],
|
|
24
|
+
exports: {
|
|
25
|
+
".": {
|
|
26
|
+
types: "./dist/server/index.d.ts",
|
|
27
|
+
import: "./dist/server/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./client": {
|
|
30
|
+
types: "./dist/client/index.d.ts",
|
|
31
|
+
import: "./dist/client/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
main: "./dist/server/index.js",
|
|
35
|
+
types: "./dist/server/index.d.ts",
|
|
36
|
+
bin: {
|
|
37
|
+
"mcp-inspect": "./dist/cli.js"
|
|
38
|
+
},
|
|
39
|
+
files: [
|
|
40
|
+
"dist"
|
|
41
|
+
],
|
|
42
|
+
scripts: {
|
|
43
|
+
dev: 'concurrently "npm run dev:client" "npm run dev:server"',
|
|
44
|
+
"dev:client": "rimraf node_modules/.vite && vite --port 3000",
|
|
45
|
+
"dev:server": "VITE_DEV=true tsx watch src/server/server.ts",
|
|
46
|
+
"dev:standalone": "tsx watch src/server/server.ts",
|
|
47
|
+
build: "npm run build:client && npm run build:client-exports && npm run build:server && npm run build:cli && npm run build:cdn",
|
|
48
|
+
"build:cdn": "vite build --config vite.cdn.config.ts",
|
|
49
|
+
"build:client": "vite build",
|
|
50
|
+
"build:client-exports": "tsup --config tsup.client.ts && tsc -p tsconfig.client.json --emitDeclarationOnly --declaration",
|
|
51
|
+
"build:server": "tsup src/server/*.ts --format esm --out-dir dist/server && tsc -p tsconfig.server.json --emitDeclarationOnly --declaration",
|
|
52
|
+
"build:cli": "tsup src/server/cli.ts --format esm --out-dir dist/",
|
|
53
|
+
prepublishOnly: "pnpm --filter mcp-use build && pnpm build",
|
|
54
|
+
start: "node dist/server/server.js",
|
|
55
|
+
preview: "vite preview",
|
|
56
|
+
"type-check": "tsc --noEmit",
|
|
57
|
+
lint: "eslint .",
|
|
58
|
+
"lint:fix": "eslint . --fix",
|
|
59
|
+
"test:e2e": "playwright test",
|
|
60
|
+
"test:e2e:ui": "playwright test --ui",
|
|
61
|
+
"test:e2e:debug": "playwright test --debug",
|
|
62
|
+
"test:e2e:builtin": "node tests/e2e/scripts/run-test-matrix.mjs builtin",
|
|
63
|
+
"test:e2e:prod": "node tests/e2e/scripts/run-test-matrix.mjs prod",
|
|
64
|
+
"test:e2e:mix": "node tests/e2e/scripts/run-test-matrix.mjs mix",
|
|
65
|
+
"test:e2e:prod:ui": "TEST_MODE=production playwright test --ui",
|
|
66
|
+
"test:e2e:codegen": "playwright codegen http://localhost:3000/inspector",
|
|
67
|
+
"test:e2e:report": "playwright show-report",
|
|
68
|
+
"test:e2e:python": "node tests/e2e/scripts/run-python-e2e.mjs",
|
|
69
|
+
"test:unit": "vitest run",
|
|
70
|
+
"test:unit:watch": "vitest",
|
|
71
|
+
"test:e2e:tunnel": "node tests/e2e/scripts/run-tunnel-test.mjs",
|
|
72
|
+
"install:yarn": "yarn install",
|
|
73
|
+
"install:pnpm": "pnpm install",
|
|
74
|
+
"install:npm": "npm install",
|
|
75
|
+
"lint:yarn": "yarn eslint . --fix",
|
|
76
|
+
"lint:npm": "npm run lint:fix",
|
|
77
|
+
"lint:pnpm": "pnpm lint:fix"
|
|
78
|
+
},
|
|
79
|
+
engines: {
|
|
80
|
+
node: "^20.19.0 || >=22.12.0"
|
|
81
|
+
},
|
|
82
|
+
peerDependencies: {
|
|
83
|
+
express: "^4.21.2 || ^5.0.0",
|
|
84
|
+
"mcp-use": ">=1.34.3-canary.0",
|
|
85
|
+
react: "^18.0.0 || ^19.0.0",
|
|
86
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
87
|
+
"react-router": "^7.12.0"
|
|
88
|
+
},
|
|
89
|
+
peerDependenciesMeta: {
|
|
90
|
+
express: {
|
|
91
|
+
optional: true
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
dependencies: {
|
|
95
|
+
"@hono/node-server": "^1.19.13",
|
|
96
|
+
"@modelcontextprotocol/ext-apps": "^1.0.1",
|
|
97
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
98
|
+
"@paper-design/shaders-react": "^0.0.72",
|
|
99
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
100
|
+
"@radix-ui/react-avatar": "^1.1.11",
|
|
101
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
102
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
103
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
104
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
105
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
106
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
107
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
108
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
109
|
+
"@scarf/scarf": "^1.4.0",
|
|
110
|
+
"@tailwindcss/vite": "^4.2.0",
|
|
111
|
+
"@types/react-syntax-highlighter": "^15.5.13",
|
|
112
|
+
"class-variance-authority": "^0.7.1",
|
|
113
|
+
clsx: "^2.1.1",
|
|
114
|
+
cmdk: "^1.1.1",
|
|
115
|
+
hono: "^4.12.12",
|
|
116
|
+
"lucide-react": "^0.562.0",
|
|
117
|
+
"markdown-to-jsx": "^9.7.4",
|
|
118
|
+
"mcp-use": "workspace:*",
|
|
119
|
+
motion: "^12.34.2",
|
|
120
|
+
"next-themes": "^0.4.6",
|
|
121
|
+
open: "^11.0.0",
|
|
122
|
+
"posthog-node": "^5.24.17",
|
|
123
|
+
"react-resizable-panels": "^4.6.4",
|
|
124
|
+
"react-syntax-highlighter": "^16.1.0",
|
|
125
|
+
sonner: "^2.0.7",
|
|
126
|
+
"tailwind-merge": "^3.5.0",
|
|
127
|
+
zod: "4.3.5"
|
|
128
|
+
},
|
|
129
|
+
publishConfig: {
|
|
130
|
+
access: "public"
|
|
131
|
+
},
|
|
132
|
+
devDependencies: {
|
|
133
|
+
"@playwright/test": "^1.58.2",
|
|
134
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
135
|
+
"@types/express": "^5.0.6",
|
|
136
|
+
"@vitejs/plugin-react": "^6.0.0",
|
|
137
|
+
concurrently: "^9.2.1",
|
|
138
|
+
emulate: "0.5.0",
|
|
139
|
+
eslint: "^9.39.2",
|
|
140
|
+
express: "^5.2.1",
|
|
141
|
+
"oauth2-mock-server": "^8.2.2",
|
|
142
|
+
react: "^19.2.3",
|
|
143
|
+
"react-dom": "^19.2.3",
|
|
144
|
+
"react-router": "^7.12.0",
|
|
145
|
+
tailwindcss: "^4.2.0",
|
|
146
|
+
tsup: "^8.5.1",
|
|
147
|
+
tsx: "^4.21.0",
|
|
148
|
+
"tw-animate-css": "^1.4.0",
|
|
149
|
+
vite: "^8.0.16",
|
|
150
|
+
vitest: "^4.1.0",
|
|
151
|
+
"wait-on": "^9.0.4"
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
// src/server/version.ts
|
|
156
|
+
var VERSION = package_default.version;
|
|
157
|
+
function getInspectorVersion() {
|
|
158
|
+
return VERSION;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export {
|
|
162
|
+
VERSION,
|
|
163
|
+
getInspectorVersion
|
|
164
|
+
};
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getInspectorVersion
|
|
3
|
+
} from "./chunk-3ZCJBC3Y.js";
|
|
4
|
+
import {
|
|
5
|
+
checkClientFiles,
|
|
6
|
+
getClientDistPath,
|
|
7
|
+
getContentType
|
|
8
|
+
} from "./chunk-IDMHJUEM.js";
|
|
9
|
+
|
|
10
|
+
// src/server/shared-static.ts
|
|
11
|
+
import { existsSync, readFileSync } from "fs";
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
var USE_CDN = process.env.INSPECTOR_USE_CDN === "true";
|
|
14
|
+
var INSPECTOR_VERSION = getInspectorVersion();
|
|
15
|
+
var CDN_BASE = process.env.INSPECTOR_CDN_BASE ?? "https://inspector-cdn.mcp-use.com";
|
|
16
|
+
var CDN_JS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.js`;
|
|
17
|
+
var CDN_CSS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.css`;
|
|
18
|
+
function injectRuntimeConfig(html, config) {
|
|
19
|
+
if (!config) return html;
|
|
20
|
+
const scripts = [];
|
|
21
|
+
if (config.devMode) {
|
|
22
|
+
scripts.push(`<script>window.__MCP_DEV_MODE__ = true;</script>`);
|
|
23
|
+
}
|
|
24
|
+
if (config.sandboxOrigin) {
|
|
25
|
+
scripts.push(
|
|
26
|
+
`<script>window.__MCP_SANDBOX_ORIGIN__ = ${JSON.stringify(config.sandboxOrigin)};</script>`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
if (config.proxyUrl !== void 0) {
|
|
30
|
+
scripts.push(
|
|
31
|
+
`<script>window.__MCP_PROXY_URL__ = ${JSON.stringify(config.proxyUrl)};</script>`
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
if (config.inspectorMode) {
|
|
35
|
+
scripts.push(
|
|
36
|
+
`<script>window.__MCP_INSPECTOR_MODE__ = ${JSON.stringify(config.inspectorMode)};</script>`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
if (config.manufactChatUrl) {
|
|
40
|
+
scripts.push(
|
|
41
|
+
`<script>window.__MANUFACT_CHAT_URL__ = ${JSON.stringify(config.manufactChatUrl)};</script>`
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
if (config.disableTelemetry) {
|
|
45
|
+
scripts.push(
|
|
46
|
+
`<script>window.__MCP_USE_ANONYMIZED_TELEMETRY__ = false;</script>`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
if (scripts.length === 0) return html;
|
|
50
|
+
const injection = scripts.join("\n ");
|
|
51
|
+
return html.replace("</head>", ` ${injection}
|
|
52
|
+
</head>`);
|
|
53
|
+
}
|
|
54
|
+
function generateCdnShellHtml(config) {
|
|
55
|
+
const runtimeScripts = (() => {
|
|
56
|
+
if (!config) return "";
|
|
57
|
+
const scripts = [];
|
|
58
|
+
if (config.devMode) {
|
|
59
|
+
scripts.push(`<script>window.__MCP_DEV_MODE__ = true;</script>`);
|
|
60
|
+
}
|
|
61
|
+
if (config.sandboxOrigin) {
|
|
62
|
+
scripts.push(
|
|
63
|
+
`<script>window.__MCP_SANDBOX_ORIGIN__ = ${JSON.stringify(config.sandboxOrigin)};</script>`
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
if (config.proxyUrl !== void 0) {
|
|
67
|
+
scripts.push(
|
|
68
|
+
`<script>window.__MCP_PROXY_URL__ = ${JSON.stringify(config.proxyUrl)};</script>`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
if (config.inspectorMode) {
|
|
72
|
+
scripts.push(
|
|
73
|
+
`<script>window.__MCP_INSPECTOR_MODE__ = ${JSON.stringify(config.inspectorMode)};</script>`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
if (config.manufactChatUrl) {
|
|
77
|
+
scripts.push(
|
|
78
|
+
`<script>window.__MANUFACT_CHAT_URL__ = ${JSON.stringify(config.manufactChatUrl)};</script>`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
if (config.disableTelemetry) {
|
|
82
|
+
scripts.push(
|
|
83
|
+
`<script>window.__MCP_USE_ANONYMIZED_TELEMETRY__ = false;try{localStorage.setItem("MCP_USE_ANONYMIZED_TELEMETRY","false");}catch(e){}</script>`
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
return scripts.join("\n ");
|
|
87
|
+
})();
|
|
88
|
+
return `<!doctype html>
|
|
89
|
+
<html lang="en">
|
|
90
|
+
<head>
|
|
91
|
+
<meta charset="UTF-8" />
|
|
92
|
+
<link
|
|
93
|
+
rel="icon"
|
|
94
|
+
type="image/svg+xml"
|
|
95
|
+
href="${CDN_BASE}/favicon-black.svg"
|
|
96
|
+
/>
|
|
97
|
+
<link
|
|
98
|
+
rel="icon"
|
|
99
|
+
type="image/svg+xml"
|
|
100
|
+
href="${CDN_BASE}/favicon-white.svg"
|
|
101
|
+
media="(prefers-color-scheme: dark)"
|
|
102
|
+
/>
|
|
103
|
+
<link
|
|
104
|
+
rel="icon"
|
|
105
|
+
type="image/svg+xml"
|
|
106
|
+
href="${CDN_BASE}/favicon-black.svg"
|
|
107
|
+
media="(prefers-color-scheme: light)"
|
|
108
|
+
/>
|
|
109
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
110
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
111
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
112
|
+
<link
|
|
113
|
+
href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap"
|
|
114
|
+
rel="stylesheet"
|
|
115
|
+
/>
|
|
116
|
+
<link rel="stylesheet" href="${CDN_CSS_URL}" />
|
|
117
|
+
<title>Inspector | mcp-use</title>
|
|
118
|
+
<meta
|
|
119
|
+
name="description"
|
|
120
|
+
content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser."
|
|
121
|
+
/>
|
|
122
|
+
<meta property="og:type" content="website" />
|
|
123
|
+
<meta property="og:site_name" content="mcp-use" />
|
|
124
|
+
<meta property="og:url" content="https://inspector.mcp-use.com" />
|
|
125
|
+
<meta property="og:title" content="MCP Inspector \u2014 Test & Debug MCP Servers | mcp-use" />
|
|
126
|
+
<meta
|
|
127
|
+
property="og:description"
|
|
128
|
+
content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser."
|
|
129
|
+
/>
|
|
130
|
+
<meta
|
|
131
|
+
property="og:image"
|
|
132
|
+
content="https://inspector-cdn.mcp-use.com/inspector-cover.png"
|
|
133
|
+
/>
|
|
134
|
+
<meta property="og:image:alt" content="mcp-use MCP Inspector \u2014 test and debug MCP servers" />
|
|
135
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
136
|
+
<meta name="twitter:site" content="@mcpuse" />
|
|
137
|
+
<meta name="twitter:creator" content="@mcpuse" />
|
|
138
|
+
<meta name="twitter:title" content="MCP Inspector \u2014 Test & Debug MCP Servers | mcp-use" />
|
|
139
|
+
<meta
|
|
140
|
+
name="twitter:description"
|
|
141
|
+
content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser."
|
|
142
|
+
/>
|
|
143
|
+
<meta
|
|
144
|
+
name="twitter:image"
|
|
145
|
+
content="https://inspector-cdn.mcp-use.com/inspector-cover.png"
|
|
146
|
+
/>
|
|
147
|
+
<meta name="twitter:image:alt" content="mcp-use MCP Inspector \u2014 test and debug MCP servers" />
|
|
148
|
+
<script>window.__INSPECTOR_VERSION__ = ${JSON.stringify(INSPECTOR_VERSION)};</script>
|
|
149
|
+
${runtimeScripts}
|
|
150
|
+
</head>
|
|
151
|
+
<body>
|
|
152
|
+
<script>
|
|
153
|
+
if (typeof window !== "undefined" && typeof window.process === "undefined") {
|
|
154
|
+
window.process = {
|
|
155
|
+
env: {},
|
|
156
|
+
platform: "browser",
|
|
157
|
+
browser: true,
|
|
158
|
+
version: "v18.0.0",
|
|
159
|
+
versions: { node: "18.0.0" },
|
|
160
|
+
cwd: () => "/",
|
|
161
|
+
nextTick: (fn, ...args) => queueMicrotask(() => fn(...args)),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
</script>
|
|
165
|
+
<div id="root"></div>
|
|
166
|
+
<script type="module" src="${CDN_JS_URL}"></script>
|
|
167
|
+
</body>
|
|
168
|
+
</html>`;
|
|
169
|
+
}
|
|
170
|
+
function registerStaticRoutes(app, clientDistPath, runtimeConfig) {
|
|
171
|
+
const effectiveConfig = {
|
|
172
|
+
...runtimeConfig,
|
|
173
|
+
proxyUrl: runtimeConfig?.proxyUrl !== void 0 ? runtimeConfig.proxyUrl : "/inspector/api/proxy",
|
|
174
|
+
disableTelemetry: runtimeConfig?.disableTelemetry ?? process.env.MCP_USE_ANONYMIZED_TELEMETRY === "false"
|
|
175
|
+
};
|
|
176
|
+
if (USE_CDN) {
|
|
177
|
+
const serveShell = (c) => c.html(generateCdnShellHtml(effectiveConfig));
|
|
178
|
+
app.get("/", (c) => {
|
|
179
|
+
const url = new URL(c.req.url);
|
|
180
|
+
return c.redirect(`/inspector${url.search}`);
|
|
181
|
+
});
|
|
182
|
+
app.get("/inspector", serveShell);
|
|
183
|
+
app.get("/inspector/*", serveShell);
|
|
184
|
+
app.post("/inspector/*", serveShell);
|
|
185
|
+
app.get("*", serveShell);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const distPath = clientDistPath || getClientDistPath();
|
|
189
|
+
if (!checkClientFiles(distPath)) {
|
|
190
|
+
console.warn(`\u26A0\uFE0F MCP Inspector client files not found at ${distPath}`);
|
|
191
|
+
console.warn(
|
|
192
|
+
` Run 'yarn build' in the inspector package to build the UI`
|
|
193
|
+
);
|
|
194
|
+
app.get("*", (c) => {
|
|
195
|
+
return c.html(`
|
|
196
|
+
<!DOCTYPE html>
|
|
197
|
+
<html>
|
|
198
|
+
<head>
|
|
199
|
+
<title>MCP Inspector</title>
|
|
200
|
+
</head>
|
|
201
|
+
<body>
|
|
202
|
+
<h1>MCP Inspector</h1>
|
|
203
|
+
<p>Client files not found. Please run 'yarn build' to build the UI.</p>
|
|
204
|
+
</body>
|
|
205
|
+
</html>
|
|
206
|
+
`);
|
|
207
|
+
});
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
app.get("/inspector/assets/*", (c) => {
|
|
211
|
+
const path = c.req.path.replace("/inspector/assets/", "assets/");
|
|
212
|
+
const fullPath = join(distPath, path);
|
|
213
|
+
if (existsSync(fullPath)) {
|
|
214
|
+
const content = readFileSync(fullPath);
|
|
215
|
+
const contentType = getContentType(fullPath);
|
|
216
|
+
c.header("Content-Type", contentType);
|
|
217
|
+
return c.body(content);
|
|
218
|
+
}
|
|
219
|
+
return c.notFound();
|
|
220
|
+
});
|
|
221
|
+
app.get("/", (c) => {
|
|
222
|
+
const url = new URL(c.req.url);
|
|
223
|
+
const queryString = url.search;
|
|
224
|
+
return c.redirect(`/inspector${queryString}`);
|
|
225
|
+
});
|
|
226
|
+
const serveIndex = (c) => {
|
|
227
|
+
const indexPath = join(distPath, "index.html");
|
|
228
|
+
if (existsSync(indexPath)) {
|
|
229
|
+
const content = injectRuntimeConfig(
|
|
230
|
+
readFileSync(indexPath, "utf-8"),
|
|
231
|
+
effectiveConfig
|
|
232
|
+
);
|
|
233
|
+
return c.html(content);
|
|
234
|
+
}
|
|
235
|
+
return c.html(`
|
|
236
|
+
<!DOCTYPE html>
|
|
237
|
+
<html>
|
|
238
|
+
<head>
|
|
239
|
+
<title>MCP Inspector</title>
|
|
240
|
+
</head>
|
|
241
|
+
<body>
|
|
242
|
+
<h1>MCP Inspector</h1>
|
|
243
|
+
<p>Client files not found. Please run 'yarn build' to build the UI.</p>
|
|
244
|
+
</body>
|
|
245
|
+
</html>
|
|
246
|
+
`);
|
|
247
|
+
};
|
|
248
|
+
app.get("/inspector", serveIndex);
|
|
249
|
+
app.get("/inspector/*", serveIndex);
|
|
250
|
+
app.post("/inspector/*", serveIndex);
|
|
251
|
+
app.get("*", (c) => {
|
|
252
|
+
const indexPath = join(distPath, "index.html");
|
|
253
|
+
if (existsSync(indexPath)) {
|
|
254
|
+
const content = injectRuntimeConfig(
|
|
255
|
+
readFileSync(indexPath, "utf-8"),
|
|
256
|
+
effectiveConfig
|
|
257
|
+
);
|
|
258
|
+
return c.html(content);
|
|
259
|
+
}
|
|
260
|
+
return c.html(`
|
|
261
|
+
<!DOCTYPE html>
|
|
262
|
+
<html>
|
|
263
|
+
<head>
|
|
264
|
+
<title>MCP Inspector</title>
|
|
265
|
+
</head>
|
|
266
|
+
<body>
|
|
267
|
+
<h1>MCP Inspector</h1>
|
|
268
|
+
<p>Client files not found. Please run 'yarn build' to build the UI.</p>
|
|
269
|
+
</body>
|
|
270
|
+
</html>
|
|
271
|
+
`);
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
function registerStaticRoutesWithDevProxy(app, clientDistPath, runtimeConfig) {
|
|
275
|
+
const distPath = clientDistPath || getClientDistPath();
|
|
276
|
+
const isDev = process.env.NODE_ENV === "development" || process.env.VITE_DEV === "true";
|
|
277
|
+
if (isDev) {
|
|
278
|
+
console.warn(
|
|
279
|
+
"\u{1F527} Development mode: Proxying client requests to Vite dev server"
|
|
280
|
+
);
|
|
281
|
+
app.get("*", async (c) => {
|
|
282
|
+
const path = c.req.path;
|
|
283
|
+
if (path.startsWith("/api/") || path.startsWith("/inspector/api/") || path === "/inspector/config.json") {
|
|
284
|
+
return c.notFound();
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
const viteUrl = `http://localhost:3000${path}`;
|
|
288
|
+
const response = await fetch(viteUrl, {
|
|
289
|
+
signal: AbortSignal.timeout(1e3)
|
|
290
|
+
});
|
|
291
|
+
if (response.ok) {
|
|
292
|
+
const content = await response.text();
|
|
293
|
+
const contentType = response.headers.get("content-type") || "text/html";
|
|
294
|
+
c.header("Content-Type", contentType);
|
|
295
|
+
return c.html(content);
|
|
296
|
+
}
|
|
297
|
+
} catch (error) {
|
|
298
|
+
console.warn(`Failed to proxy to Vite dev server: ${error}`);
|
|
299
|
+
}
|
|
300
|
+
return c.html(`
|
|
301
|
+
<!DOCTYPE html>
|
|
302
|
+
<html>
|
|
303
|
+
<head>
|
|
304
|
+
<title>MCP Inspector - Development</title>
|
|
305
|
+
</head>
|
|
306
|
+
<body>
|
|
307
|
+
<h1>MCP Inspector - Development Mode</h1>
|
|
308
|
+
<p>Vite dev server is not running. Please start it with:</p>
|
|
309
|
+
<pre>yarn dev:client</pre>
|
|
310
|
+
</body>
|
|
311
|
+
</html>
|
|
312
|
+
`);
|
|
313
|
+
});
|
|
314
|
+
} else {
|
|
315
|
+
registerStaticRoutes(app, distPath, runtimeConfig);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export {
|
|
320
|
+
registerStaticRoutes,
|
|
321
|
+
registerStaticRoutesWithDevProxy
|
|
322
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import {
|
|
2
|
+
registerInspectorRoutes
|
|
3
|
+
} from "./chunk-A4VH7AIP.js";
|
|
4
|
+
import {
|
|
5
|
+
registerStaticRoutes
|
|
6
|
+
} from "./chunk-F66FM5KJ.js";
|
|
7
|
+
import {
|
|
8
|
+
checkClientFiles,
|
|
9
|
+
getClientDistPath
|
|
10
|
+
} from "./chunk-IDMHJUEM.js";
|
|
11
|
+
|
|
12
|
+
// src/server/middleware.ts
|
|
13
|
+
import { Hono } from "hono";
|
|
14
|
+
function mountInspector(app, config) {
|
|
15
|
+
const clientDistPath = getClientDistPath();
|
|
16
|
+
if (!checkClientFiles(clientDistPath)) {
|
|
17
|
+
console.warn(
|
|
18
|
+
`\u26A0\uFE0F MCP Inspector client files not found at ${clientDistPath}`
|
|
19
|
+
);
|
|
20
|
+
console.warn(
|
|
21
|
+
` Run 'yarn build' in the inspector package to build the UI`
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
const runtimeConfig = {
|
|
25
|
+
devMode: config?.devMode,
|
|
26
|
+
sandboxOrigin: config?.sandboxOrigin,
|
|
27
|
+
inspectorMode: "embedded"
|
|
28
|
+
};
|
|
29
|
+
if (isHonoApp(app)) {
|
|
30
|
+
registerInspectorRoutes(app, config);
|
|
31
|
+
registerStaticRoutes(app, clientDistPath, runtimeConfig);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const honoApp = new Hono();
|
|
35
|
+
registerInspectorRoutes(honoApp, config);
|
|
36
|
+
registerStaticRoutes(honoApp, clientDistPath, runtimeConfig);
|
|
37
|
+
app.use((req, res, next) => {
|
|
38
|
+
const url = new URL(req.url || "", `http://${req.headers.host}`);
|
|
39
|
+
const request = new Request(url, {
|
|
40
|
+
method: req.method,
|
|
41
|
+
headers: req.headers,
|
|
42
|
+
body: req.method !== "GET" && req.method !== "HEAD" ? JSON.stringify(req.body) : void 0
|
|
43
|
+
});
|
|
44
|
+
Promise.resolve(honoApp.fetch(request)).then(async (fetchResponse) => {
|
|
45
|
+
res.status(fetchResponse.status);
|
|
46
|
+
fetchResponse.headers.forEach((value, key) => {
|
|
47
|
+
res.setHeader(key, value);
|
|
48
|
+
});
|
|
49
|
+
if (fetchResponse.body) {
|
|
50
|
+
const reader = fetchResponse.body.getReader();
|
|
51
|
+
while (true) {
|
|
52
|
+
const { done, value } = await reader.read();
|
|
53
|
+
if (done) {
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
res.write(value);
|
|
57
|
+
}
|
|
58
|
+
res.end();
|
|
59
|
+
} else {
|
|
60
|
+
res.end();
|
|
61
|
+
}
|
|
62
|
+
}).catch(next);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function isHonoApp(app) {
|
|
66
|
+
return typeof app.fetch === "function";
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export {
|
|
70
|
+
mountInspector
|
|
71
|
+
};
|
package/dist/server/cli.js
CHANGED
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
import "./chunk-CVECQ7BJ.js";
|
|
14
14
|
import {
|
|
15
15
|
registerStaticRoutes
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-F66FM5KJ.js";
|
|
17
17
|
import {
|
|
18
18
|
getInspectorVersion
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3ZCJBC3Y.js";
|
|
20
20
|
import "./chunk-IDMHJUEM.js";
|
|
21
21
|
import "./chunk-PKBMQBKP.js";
|
|
22
22
|
|
package/dist/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mountInspector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N2ITSMWB.js";
|
|
4
4
|
import "./chunk-A4VH7AIP.js";
|
|
5
5
|
import {
|
|
6
6
|
handleChatRequest,
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
} from "./chunk-QQ37LGLJ.js";
|
|
13
13
|
import "./chunk-KD7K27XK.js";
|
|
14
14
|
import "./chunk-CVECQ7BJ.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-F66FM5KJ.js";
|
|
16
|
+
import "./chunk-3ZCJBC3Y.js";
|
|
17
17
|
import "./chunk-IDMHJUEM.js";
|
|
18
18
|
import "./chunk-PKBMQBKP.js";
|
|
19
19
|
export {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mountInspector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N2ITSMWB.js";
|
|
4
4
|
import "./chunk-A4VH7AIP.js";
|
|
5
5
|
import "./chunk-PJNKFX2R.js";
|
|
6
6
|
import "./chunk-QQ37LGLJ.js";
|
|
7
7
|
import "./chunk-KD7K27XK.js";
|
|
8
8
|
import "./chunk-CVECQ7BJ.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-F66FM5KJ.js";
|
|
10
|
+
import "./chunk-3ZCJBC3Y.js";
|
|
11
11
|
import "./chunk-IDMHJUEM.js";
|
|
12
12
|
import "./chunk-PKBMQBKP.js";
|
|
13
13
|
export {
|
package/dist/server/server.js
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
import "./chunk-CVECQ7BJ.js";
|
|
14
14
|
import {
|
|
15
15
|
registerStaticRoutesWithDevProxy
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-F66FM5KJ.js";
|
|
17
|
+
import "./chunk-3ZCJBC3Y.js";
|
|
18
18
|
import "./chunk-IDMHJUEM.js";
|
|
19
19
|
import "./chunk-PKBMQBKP.js";
|
|
20
20
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerStaticRoutes,
|
|
3
3
|
registerStaticRoutesWithDevProxy
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-F66FM5KJ.js";
|
|
5
|
+
import "./chunk-3ZCJBC3Y.js";
|
|
6
6
|
import "./chunk-IDMHJUEM.js";
|
|
7
7
|
import "./chunk-PKBMQBKP.js";
|
|
8
8
|
export {
|