SCAST MCP Server

by davidkingzyb
Verified
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>SCAST</title> <script src="./lib/acorn.js" async></script> <!-- <script src="./lib/filbert.js" async></script> --> <!-- <script src="./lib/typescript.min.js" async></script> --> <link rel="stylesheet" href="./scast.css"> <link rel="stylesheet" href="./lib/vs2015.min.css"> <script src="./lib/highlight.min.js"></script> <script src="./lib/highlightjs-line-numbers.min.js"></script> <script src="./lib/json-viewer.bundle.js" async></script> <script src="./lib/mermaid.min.js" async></script> <script src="./lib/d3.min.js" async></script> <script src="./js/D3M.js" async></script> <!-- <script src="./js/SCASTTS.js"></script> --> <!-- <script src="./js/ESTREEPY.js"></script> --> <script src="./js/ESTREEJS.js"></script> <script src="./lib/SCAST.min.js"></script> <script src="./lib/SCASTPY.min.js"></script> <script src="./js/common.js"></script> <script src="./js/analysis.js"></script> <script src="./js/ai.js"></script> </head> <body style="margin-bottom: 90px;"> <div id="title"> <span class="jump">οΈπŸ”±</span> <h1 style="display: inline;" class="pointer"><a href="https://github.com/davidkingzyb/SCAST" style="color:black;"> SCAST</a> </h1> <span class="pointer jump" onclick="scrollToView('mermaidUML',-window.innerHeight/2-20)" title="scroll to UML">πŸ§œβ€β™€οΈ</span> <span class="pointer jump" onclick="scrollToView('mermaidFlow',-window.innerHeight/2-20)" title="scroll to flow">🌊</span> <span class="pointer jump" onclick="scrollToView('FDP',-window.innerHeight/2-20)" title="scroll to FDG">❄️</span> <span class="pointer jump" onclick="scrollToView('D3Select',-window.innerHeight/2-20)" title="scroll to D3">🌳</span> <!-- <a href="https://davidkingzyb.github.io/blogmd/50.html"> by DKZ</a> --> </div> <details id="code_con" open> <summary id="code_con_summary">codes </summary> </details> <div id="code_panel"> <div id="code_scroll"> <div id="code"> <textarea name="" id="codetext" placeholder="HOW TO USE 1. paste code here or select from file by click πŸ“„ at right corner 2. click οΈπŸ”± generate AST 3. click πŸ§œβ€β™€οΈ analysis and show mermaid diagram click πŸ§œβ€β™€οΈ again for more details or click 🌳 show D3 diagram 4. click πŸ¦™ use ollama AI analysis code Β© 2024 DKZ"></textarea> </div> </div> <div id="codescaler"></div> </div> <details id="mermaid_conf_con"> <summary>mermaid <a onclick="reMermaid()" title="refresh mermaid">πŸ”„οΈ</a></summary> <div id="mermaid_conf_panel"> <textarea name="" id="textUML" placeholder="Mermaid classDiagram UML code"></textarea><br> <textarea name="" id="textFlow" placeholder="Mermaid flowchart code"></textarea> </div> </details> <details id="d3_conf_con"> <summary>config</summary> <details style="margin-top: 50px;" open> <summary title="Ollama AI config" >AI</summary> <select id="ai_models" onchange="onModelChange()"></select> num ctx: <select id="ai_numctx" style="margin-top: 10px;" onchange="onNumCtxChange()"> <option value="4000">4k</option> <option value="8000">8k</option> <option value="16000" selected>16k</option> <option value="32000">32k</option> </select> <select name="" id="ai_language" onchange="onLanguageChange()"> <option value="zh">zh</option> <option value="en">en</option> </select> </details> <details> <summary title="D3 SCAST filter">SCAST</summary> <div id="D3Option" class="opcls"></div> </details> <details> <summary title="D3 ESTree filter">ESTree</summary> <div id="D3ESTree" class="opcls"></div> </details> </details> <details id="outline_con"> <summary>outline</summary> <div id="mmdfilter_con" class="opclsfilter"></div> </details> <div class="" id="load_con"> <label class="input-file-button" for="codefile" title="1. open files">πŸ“„</label> <input type='file' id='codefile' multiple /> <button id="load" class="pointer" onclick="load()" title="2. generate AST">πŸ”±</button> <button onclick="genMermaid()" title="3. generate mermaid click twice for detail">πŸ§œβ€β™€οΈ</button> <button onclick="genD3()" title="3. generate D3">🌳</button> <button id="aibtn" class="pointer" style="display: none;" onclick="aiAnalysis()" title="4.AI Analysis" disabled>πŸ¦™</button> </div> <details class="json_con"> <summary onclick="showJson()">json <input id="searchinput" type="text"> <button onclick="search()" title="search">πŸ”</button> <button onclick="storageAstJson()" title="save Ast json to storage">πŸ“₯</button> <button onclick="loadAstJson()" title="load Ast json from storage">πŸ“€</button> <button onclick="saveScast()" title="save Ast json">πŸ’Ύ</button> </summary> <json-viewer id="json"></json-viewer> </details> <details open> <summary id="mermaidHead">mermaid UML & Flow <button onclick="genMermaid()" title="generate mermaid">πŸ§œβ€β™€οΈ</button> <button onclick="storageMermaid()" title="save mermaid to storage">πŸ“₯</button> <button onclick="loadMermaid()" title="load mermaid from storage">πŸ“€</button> <button onclick="saveMermaid()" title="save mermaid">πŸ’Ύ</button> <button onclick="scaleMermaid()" title="scale mermaid">πŸ”›</button> </summary> <div id="mermaidOption" class="opcls"> <!-- <input type="checkbox" id="mmdop_relation" class="mmdops" checked /><label for="mmdop_relation">UML Relationship</label> --> <input type="checkbox" id="mmdop_click" class="mmdops" checked /><label for="mmdop_click" title="Click mermaid diagram jump to defined.">Can Click</label> <input type="checkbox" id="mmdop_method" class="mmdops" checked /><label for="mmdop_method" title="Use OOP paradigm analysis.">OOP</label> <input type="checkbox" id="mmdop_call" class="mmdops" checked /><label for="mmdop_call" title="Show function call detail.">Call Detail</label> <input type="checkbox" id="mmdop_idone" class="mmdops" checked /><label for="mmdop_idone" title="Function call and function define node use same node.">One ID</label> <input type="checkbox" id="mmdop_samename" class="mmdops" checked /><label for="mmdop_samename" title="deal with same name function.">Same Name</label> <input type="checkbox" id="mmdop_if" class="mmdops" /><label for="mmdop_if" title="Show if and loop in flow chart.">If and Loop</label> <!-- <input type="checkbox" id="mmdop_condition" class="mmdops" /><label for="mmdop_condition">Condition</label> --> <input type="checkbox" id="mmdop_namespace" class="mmdops" /><label for="mmdop_namespace" title="Layout by Namespace.">Namespace</label> </div> <div id="mermaidPane"> <!-- <pre class="mermaid" id="mermaidUML"></pre> --> <!-- <pre class="mermaid" id="mermaidFlow"></pre> --> </div> <div id="FDP"></div> </details> <details open> <summary>D3&nbsp;&nbsp; <select id="D3Select"> <option value="IndentedTree">IndentedTree</option> <!-- <option value="treeMap">TreeMap</option> --> <option value="TidyTree">TidyTree</option> <option value="ClusterTree">ClusterTree</option> <option value="RadialTidyTree">RadialTidyTree</option> <option value="RadialClusterTree">RadialClusterTree</option> <option value="forceDirectedTree">ForceDirectedTree</option> <option value="EdgeBundling">EdgeBundling</option> </select> <button onclick="genD3()" title="generate D3">🌳</button> <button onclick="clearD3()" title="clear D3">🧹</button> <button onclick="scaleD3()" title="scale D3">πŸ”›</button> <button onclick="fontSizeD3Minus(4)" title="scale font size">βž–</button> <button onclick="fontSizeD3Plus(4)" title="scale font size">βž•</button> </summary> <div id="D3Diagram"></div> </details> </body> <script> initFile() renderD3Option() initCodeScaler() getModels() </script> </html>