Skip to main content
Glama

mcp-server-webcrawl

mcp_server_webcrawl.interactive.html128 kB
<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>mcp_server_webcrawl.interactive package &mdash; mcp-server-webcrawl documentation</title> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=80d5e7a1" /> <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" /> <script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=5929fcd5"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="mcp_server_webcrawl.models package" href="mcp_server_webcrawl.models.html" /> <link rel="prev" title="mcp_server_webcrawl.extras package" href="mcp_server_webcrawl.extras.html" /> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href="index.html" class="icon icon-home"> mcp-server-webcrawl </a> <div role="search"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="guides.html">Setup Guides</a></li> <li class="toctree-l1"><a class="reference internal" href="usage.html">Usage</a></li> <li class="toctree-l1"><a class="reference internal" href="prompts.html">Prompt Routines</a></li> <li class="toctree-l1"><a class="reference internal" href="interactive.html">Interactive Mode</a></li> <li class="toctree-l1 current"><a class="reference internal" href="modules.html">mcp_server_webcrawl</a><ul class="current"> <li class="toctree-l2 current"><a class="reference internal" href="mcp_server_webcrawl.html">mcp_server_webcrawl package</a></li> </ul> </li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="index.html">mcp-server-webcrawl</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="Page navigation"> <ul class="wy-breadcrumbs"> <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> <li class="breadcrumb-item"><a href="modules.html">mcp_server_webcrawl</a></li> <li class="breadcrumb-item"><a href="mcp_server_webcrawl.html">mcp_server_webcrawl package</a></li> <li class="breadcrumb-item active">mcp_server_webcrawl.interactive package</li> <li class="wy-breadcrumbs-aside"> <a href="_sources/mcp_server_webcrawl.interactive.rst.txt" rel="nofollow"> View page source</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="mcp-server-webcrawl-interactive-package"> <h1>mcp_server_webcrawl.interactive package<a class="headerlink" href="#mcp-server-webcrawl-interactive-package" title="Link to this heading"></a></h1> <section id="submodules"> <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2> </section> <section id="module-mcp_server_webcrawl.interactive.highlights"> <span id="mcp-server-webcrawl-interactive-highlights-module"></span><h2>mcp_server_webcrawl.interactive.highlights module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.highlights" title="Link to this heading"></a></h2> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">HighlightSpan</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightSpan"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Represents a highlight span in text</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.start"> <span class="sig-name descname"><span class="pre">start</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><span class="pre">int</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.start" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.end"> <span class="sig-name descname"><span class="pre">end</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><span class="pre">int</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.end" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.text"> <span class="sig-name descname"><span class="pre">text</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.text" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightSpan.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">start</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan.__init__" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>start</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>end</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">HighlightProcessor</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Shared highlight processing utilities</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.QUOTED_PHRASE_PATTERN"> <span class="sig-name descname"><span class="pre">QUOTED_PHRASE_PATTERN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile('&quot;([^&quot;]+)&quot;')</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.QUOTED_PHRASE_PATTERN" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.WORD_PATTERN"> <span class="sig-name descname"><span class="pre">WORD_PATTERN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile('\\b\\w+\\b')</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.WORD_PATTERN" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.SNIPPET_MARKER_PATTERN"> <span class="sig-name descname"><span class="pre">SNIPPET_MARKER_PATTERN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile(&quot;\\*\\*([a-zA-Z\\-_'</span> <span class="pre">]+)\\*\\*&quot;)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.SNIPPET_MARKER_PATTERN" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.IGNORE_WORDS"> <span class="sig-name descname"><span class="pre">IGNORE_WORDS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'AND',</span> <span class="pre">'NOT',</span> <span class="pre">'OR',</span> <span class="pre">'and',</span> <span class="pre">'id',</span> <span class="pre">'not',</span> <span class="pre">'or',</span> <span class="pre">'size',</span> <span class="pre">'status',</span> <span class="pre">'type',</span> <span class="pre">'url'}</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.IGNORE_WORDS" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_search_terms"> <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">extract_search_terms</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.extract_search_terms"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_search_terms" title="Link to this definition"></a></dt> <dd><p>Extract search terms from query, handling quoted phrases and individual keywords.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>query</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a>]</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.find_highlights_in_text"> <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">find_highlights_in_text</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">search_terms</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.find_highlights_in_text"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.find_highlights_in_text" title="Link to this definition"></a></dt> <dd><p>Find all highlight spans in text for the given search terms.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> <li><p><strong>search_terms</strong> (<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a><em>[</em><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a><em>]</em>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a>[<a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a>]</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_snippet_highlights"> <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">extract_snippet_highlights</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">snippet_text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.extract_snippet_highlights"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.extract_snippet_highlights" title="Link to this definition"></a></dt> <dd><p>Extract highlights from snippet text with <strong>markers</strong>, returning clean text and highlights.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>snippet_text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)">str</a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a>[<a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a>]]</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.merge_overlapping_highlights"> <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">merge_overlapping_highlights</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">highlights</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.merge_overlapping_highlights"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.merge_overlapping_highlights" title="Link to this definition"></a></dt> <dd><p>Merge overlapping or adjacent highlight spans.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>highlights</strong> (<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a><em>[</em><a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a><em>]</em>) – </p></li> <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a>[<a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a>]</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.highlights.HighlightProcessor.render_text_with_highlights"> <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">render_text_with_highlights</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">highlights</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">normal_style</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hit_style</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/highlights.html#HighlightProcessor.render_text_with_highlights"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.highlights.HighlightProcessor.render_text_with_highlights" title="Link to this definition"></a></dt> <dd><p>Render text with highlights applied.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>stdscr</strong> (<em>window</em>) – </p></li> <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> <li><p><strong>highlights</strong> (<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><em>List</em></a><em>[</em><a class="reference internal" href="#mcp_server_webcrawl.interactive.highlights.HighlightSpan" title="mcp_server_webcrawl.interactive.highlights.HighlightSpan"><em>HighlightSpan</em></a><em>]</em>) – </p></li> <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>max_width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>normal_style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>hit_style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> </dd></dl> </section> <section id="module-mcp_server_webcrawl.interactive.search"> <span id="mcp-server-webcrawl-interactive-search-module"></span><h2>mcp_server_webcrawl.interactive.search module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.search" title="Link to this heading"></a></h2> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SearchManager</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Manages search operations including async search and debouncing. Works with session’s controlled interface - never touches private state directly.</p> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.__init__" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>session</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.session.InteractiveSession" title="mcp_server_webcrawl.interactive.session.InteractiveSession"><em>InteractiveSession</em></a>) – </p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.autosearch"> <span class="sig-name descname"><span class="pre">autosearch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">immediate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.autosearch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.autosearch" title="Link to this definition"></a></dt> <dd><p>Trigger search with optional immediate execution.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>immediate</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><em>bool</em></a>) – If True, execute search synchronously without debouncing. If False, use debounced async execution (default).</p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.cancel_pending"> <span class="sig-name descname"><span class="pre">cancel_pending</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.cancel_pending"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.cancel_pending" title="Link to this definition"></a></dt> <dd><p>Cancel any pending search timer.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.check_pending"> <span class="sig-name descname"><span class="pre">check_pending</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.check_pending"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.check_pending" title="Link to this definition"></a></dt> <dd><p>Check if there are pending search results and update the UI.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.cleanup"> <span class="sig-name descname"><span class="pre">cleanup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.cleanup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.cleanup" title="Link to this definition"></a></dt> <dd><p>Clean up any pending operations.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.has_pending"> <span class="sig-name descname"><span class="pre">has_pending</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.has_pending"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.has_pending" title="Link to this definition"></a></dt> <dd><p>Check if there’s a pending debounced search.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.search.SearchManager.is_searching"> <span class="sig-name descname"><span class="pre">is_searching</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/search.html#SearchManager.is_searching"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.search.SearchManager.is_searching" title="Link to this definition"></a></dt> <dd><p>Check if a search is currently in progress or on a timer.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p> </dd> </dl> </dd></dl> </dd></dl> </section> <section id="module-mcp_server_webcrawl.interactive.session"> <span id="mcp-server-webcrawl-interactive-session-module"></span><h2>mcp_server_webcrawl.interactive.session module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.session" title="Link to this heading"></a></h2> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InteractiveSession</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Main session coordinator that manages the interactive terminal application.</p> <p>Initialize the interactive session with crawler and data source.</p> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">crawler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasrc</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.__init__" title="Link to this definition"></a></dt> <dd><p>Initialize the interactive session with crawler and data source.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>crawler</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> <li><p><strong>datasrc</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> </ul> </dd> </dl> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.ui_state"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ui_state</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiState" title="mcp_server_webcrawl.interactive.ui.UiState"><span class="pre">UiState</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.ui_state" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.ui_focused"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ui_focused</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiFocusable" title="mcp_server_webcrawl.interactive.ui.UiFocusable"><span class="pre">UiFocusable</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.ui_focused" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.crawler"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">crawler</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="mcp_server_webcrawl.crawlers.base.html#mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler" title="mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler"><span class="pre">BaseCrawler</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.crawler" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.document"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">document</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">SearchDocumentView</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.document" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.results"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">results</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">SearchResultsView</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.results" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.searchform"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">searchform</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">SearchFormView</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.searchform" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.searchman"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">searchman</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#mcp_server_webcrawl.interactive.search.SearchManager" title="mcp_server_webcrawl.interactive.search.SearchManager"><span class="pre">SearchManager</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.searchman" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.sites"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">sites</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><span class="pre">list</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="mcp_server_webcrawl.models.html#mcp_server_webcrawl.models.sites.SiteResult" title="mcp_server_webcrawl.models.sites.SiteResult"><span class="pre">SiteResult</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.sites" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.debug_add"> <span class="sig-name descname"><span class="pre">debug_add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.debug_add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.debug_add" title="Link to this definition"></a></dt> <dd><p>Add line of debug.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>msg</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.debug_clear"> <span class="sig-name descname"><span class="pre">debug_clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.debug_clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.debug_clear" title="Link to this definition"></a></dt> <dd><p>Clear debug statements.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.run"> <span class="sig-name descname"><span class="pre">run</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.run"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.run" title="Link to this definition"></a></dt> <dd><p>Public interface to launch the interactive terminal application.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_ui_state"> <span class="sig-name descname"><span class="pre">set_ui_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">state</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">focus</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_ui_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_ui_state" title="Link to this definition"></a></dt> <dd><p>Transition between UI states cleanly.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>state</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiState" title="mcp_server_webcrawl.interactive.ui.UiState"><em>UiState</em></a>) – </p></li> <li><p><strong>focus</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.UiFocusable" title="mcp_server_webcrawl.interactive.ui.UiFocusable"><em>UiFocusable</em></a><em> | </em><em>None</em>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_input_args"> <span class="sig-name descname"><span class="pre">set_init_input_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">crawler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasrc</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_input_args"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_input_args" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>crawler</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> <li><p><strong>datasrc</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_crawler"> <span class="sig-name descname"><span class="pre">set_init_crawler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">crawler</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_crawler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_crawler" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>crawler</strong> (<a class="reference internal" href="mcp_server_webcrawl.crawlers.base.html#mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler" title="mcp_server_webcrawl.crawlers.base.crawler.BaseCrawler"><em>BaseCrawler</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_sites"> <span class="sig-name descname"><span class="pre">set_init_sites</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sites</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_sites"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_sites" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>sites</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_searchform"> <span class="sig-name descname"><span class="pre">set_init_searchform</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">searchform</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.set_init_searchform"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.set_init_searchform" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>searchform</strong> (<em>BaseCursesView</em>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.session.InteractiveSession.get_theme_color_pair"> <span class="sig-name descname"><span class="pre">get_theme_color_pair</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">theme</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/session.html#InteractiveSession.get_theme_color_pair"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.session.InteractiveSession.get_theme_color_pair" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>theme</strong> (<a class="reference internal" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition" title="mcp_server_webcrawl.interactive.ui.ThemeDefinition"><em>ThemeDefinition</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> | None</p> </dd> </dl> </dd></dl> </dd></dl> </section> <section id="module-mcp_server_webcrawl.interactive.ui"> <span id="mcp-server-webcrawl-interactive-ui-module"></span><h2>mcp_server_webcrawl.interactive.ui module<a class="headerlink" href="#module-mcp_server_webcrawl.interactive.ui" title="Link to this heading"></a></h2> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DocumentMode</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#DocumentMode"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode.MARKDOWN"> <span class="sig-name descname"><span class="pre">MARKDOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode.MARKDOWN" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode.RAW"> <span class="sig-name descname"><span class="pre">RAW</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode.RAW" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.DocumentMode.HEADERS"> <span class="sig-name descname"><span class="pre">HEADERS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.DocumentMode.HEADERS" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">NavigationDirection</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#NavigationDirection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.UP"> <span class="sig-name descname"><span class="pre">UP</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.UP" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.DOWN"> <span class="sig-name descname"><span class="pre">DOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.DOWN" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.LEFT"> <span class="sig-name descname"><span class="pre">LEFT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.LEFT" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.NavigationDirection.RIGHT"> <span class="sig-name descname"><span class="pre">RIGHT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">4</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.NavigationDirection.RIGHT" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ScrollDirection"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ScrollDirection</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ScrollDirection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ScrollDirection" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ScrollDirection.UP"> <span class="sig-name descname"><span class="pre">UP</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ScrollDirection.UP" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ScrollDirection.DOWN"> <span class="sig-name descname"><span class="pre">DOWN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ScrollDirection.DOWN" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.SearchFilterType"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SearchFilterType</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#SearchFilterType"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.SearchFilterType" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.SearchFilterType.ANY"> <span class="sig-name descname"><span class="pre">ANY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.SearchFilterType.ANY" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.SearchFilterType.PAGES"> <span class="sig-name descname"><span class="pre">PAGES</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.SearchFilterType.PAGES" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ThemeDefinition</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ThemeDefinition"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.DOCUMENT_MODE"> <span class="sig-name descname"><span class="pre">DOCUMENT_MODE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(1,</span> <span class="pre">1,</span> <span class="pre">51)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.DOCUMENT_MODE" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_ACTIVE"> <span class="sig-name descname"><span class="pre">HEADER_ACTIVE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(2,</span> <span class="pre">7,</span> <span class="pre">17)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_ACTIVE" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_INACTIVE"> <span class="sig-name descname"><span class="pre">HEADER_INACTIVE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(3,</span> <span class="pre">7,</span> <span class="pre">233)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_INACTIVE" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_OUTER"> <span class="sig-name descname"><span class="pre">HEADER_OUTER</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(4,</span> <span class="pre">7,</span> <span class="pre">235)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HEADER_OUTER" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HELP_LINK"> <span class="sig-name descname"><span class="pre">HELP_LINK</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(5,</span> <span class="pre">7,</span> <span class="pre">27)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HELP_LINK" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_ERROR"> <span class="sig-name descname"><span class="pre">HTTP_ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(6,</span> <span class="pre">7,</span> <span class="pre">88)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_ERROR" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_WARN"> <span class="sig-name descname"><span class="pre">HTTP_WARN</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(7,</span> <span class="pre">7,</span> <span class="pre">130)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.HTTP_WARN" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.INACTIVE_QUERY"> <span class="sig-name descname"><span class="pre">INACTIVE_QUERY</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(8,</span> <span class="pre">245,</span> <span class="pre">237)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.INACTIVE_QUERY" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_DEFAULT"> <span class="sig-name descname"><span class="pre">SNIPPET_DEFAULT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(9,</span> <span class="pre">243,</span> <span class="pre">0)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_DEFAULT" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_HIGHLIGHT"> <span class="sig-name descname"><span class="pre">SNIPPET_HIGHLIGHT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(10,</span> <span class="pre">232,</span> <span class="pre">51)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.SNIPPET_HIGHLIGHT" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ThemeDefinition.UI_ERROR"> <span class="sig-name descname"><span class="pre">UI_ERROR</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(11,</span> <span class="pre">7,</span> <span class="pre">88)</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ThemeDefinition.UI_ERROR" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">UiFocusable</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#UiFocusable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable.UNDEFINED"> <span class="sig-name descname"><span class="pre">UNDEFINED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable.UNDEFINED" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_FORM"> <span class="sig-name descname"><span class="pre">SEARCH_FORM</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_FORM" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_RESULTS"> <span class="sig-name descname"><span class="pre">SEARCH_RESULTS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiFocusable.SEARCH_RESULTS" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">UiState</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#UiState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/enum.html#enum.Enum" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a></p> <p>An enumeration.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.UNDEFINED"> <span class="sig-name descname"><span class="pre">UNDEFINED</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.UNDEFINED" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.REQUIREMENTS"> <span class="sig-name descname"><span class="pre">REQUIREMENTS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.REQUIREMENTS" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.SEARCH_INIT"> <span class="sig-name descname"><span class="pre">SEARCH_INIT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.SEARCH_INIT" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.SEARCH_RESULTS"> <span class="sig-name descname"><span class="pre">SEARCH_RESULTS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">4</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.SEARCH_RESULTS" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.DOCUMENT"> <span class="sig-name descname"><span class="pre">DOCUMENT</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.DOCUMENT" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.UiState.HELP"> <span class="sig-name descname"><span class="pre">HELP</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">6</span></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.UiState.HELP" title="Link to this definition"></a></dt> <dd></dd></dl> </dd></dl> <dl class="py function"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.safe_addstr"> <span class="sig-name descname"><span class="pre">safe_addstr</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#safe_addstr"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.safe_addstr" title="Link to this definition"></a></dt> <dd><p>Safe addstr that handles screen edge errors.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>stdscr</strong> (<em>window</em>) – </p></li> <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>text</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> <li><p><strong>style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputRadio</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Radio input with 2-3 possible states (e.g., on/off or state1/state2/off)</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>group</strong> – The InputRadioGroup this radio belongs to</p></li> <li><p><strong>name</strong> – The form radio group name</p></li> <li><p><strong>label</strong> – The form radio label</p></li> <li><p><strong>index</strong> – The current state index</p></li> <li><p><strong>states</strong> – List of InputRadioState objects defining each possible state</p></li> </ul> </dd> </dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">group</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">states</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.__init__" title="Link to this definition"></a></dt> <dd><p>Radio input with 2-3 possible states (e.g., on/off or state1/state2/off)</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>group</strong> – The InputRadioGroup this radio belongs to</p></li> <li><p><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – The form radio group name</p></li> <li><p><strong>label</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – The form radio label</p></li> <li><p><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – The current state index</p></li> <li><p><strong>states</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> | </em><em>None</em>) – List of InputRadioState objects defining each possible state</p></li> </ul> </dd> </dl> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.current_state"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">current_state</span></span><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.current_state" title="Link to this definition"></a></dt> <dd><p>Get the current state</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.display_label"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">display_label</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.display_label" title="Link to this definition"></a></dt> <dd><p>Get the current display label</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.value"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.value" title="Link to this definition"></a></dt> <dd><p>Get the current value</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.next_state"> <span class="sig-name descname"><span class="pre">next_state</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.next_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.next_state" title="Link to this definition"></a></dt> <dd><p>Cycle to the next state</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.render"> <span class="sig-name descname"><span class="pre">render</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field_index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">focused</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.render"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.render" title="Link to this definition"></a></dt> <dd><p>Render a single radio option.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>stdscr</strong> (<em>window</em>) – </p></li> <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>field_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>max_width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em> | </em><em>None</em>) – </p></li> <li><p><strong>focused</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><em>bool</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.set_state"> <span class="sig-name descname"><span class="pre">set_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.set_state"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.set_state" title="Link to this definition"></a></dt> <dd><p>Set the current state by index</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadio.set_states"> <span class="sig-name descname"><span class="pre">set_states</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">states</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadio.set_states"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadio.set_states" title="Link to this definition"></a></dt> <dd><p>Set the current state by index</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>states</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputRadioGroup</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Radio group with navigation and layout management capabilities.</p> <p>Radio input group with layout and navigation support.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>name</strong> – The form radio group name (“filter”, “sort”, “site”, or “crawler”)</p></li> <li><p><strong>sites</strong> – List of SiteResult objects, required only for “site” group type</p></li> </ul> </dd> </dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sites</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.__init__" title="Link to this definition"></a></dt> <dd><p>Radio input group with layout and navigation support.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>name</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – The form radio group name (“filter”, “sort”, “site”, or “crawler”)</p></li> <li><p><strong>sites</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#list" title="(in Python v3.13)"><em>list</em></a><em> | </em><em>None</em>) – List of SiteResult objects, required only for “site” group type</p></li> </ul> </dd> </dl> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.value"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.value" title="Link to this definition"></a></dt> <dd></dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.calculate_group_width"> <span class="sig-name descname"><span class="pre">calculate_group_width</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.calculate_group_width"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.calculate_group_width" title="Link to this definition"></a></dt> <dd><p>Calculate the display width needed for a radio group.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.clear"> <span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.clear" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.set_layout_constraints"> <span class="sig-name descname"><span class="pre">set_layout_constraints</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">available_width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">available_height</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_constrained</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.set_layout_constraints"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.set_layout_constraints" title="Link to this definition"></a></dt> <dd><p>Set layout constraints for grid-based groups (like sites).</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>available_width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Available horizontal space</p></li> <li><p><strong>available_height</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Available vertical space</p></li> <li><p><strong>is_constrained</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><em>bool</em></a>) – Whether layout is constrained (affects sites per column)</p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_grid_position"> <span class="sig-name descname"><span class="pre">get_grid_position</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.get_grid_position"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_grid_position" title="Link to this definition"></a></dt> <dd><p>Convert linear radio index to grid position. Only applies to site groups; other groups return (radio_index, 0).</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Linear index in radios list</p> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><p>(row, column) position in grid layout</p> </dd> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)">tuple</a></p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_index_from_grid"> <span class="sig-name descname"><span class="pre">get_index_from_grid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">row</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">col</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.get_index_from_grid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_index_from_grid" title="Link to this definition"></a></dt> <dd><p>Convert grid position to linear radio index. Only works for site groups; returns None for other group types.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>row</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Row in grid (0-based)</p></li> <li><p><strong>col</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Column in grid (0-based)</p></li> </ul> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><p>Linear index if position exists within grid bounds, None otherwise</p> </dd> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> | None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_left"> <span class="sig-name descname"><span class="pre">navigate_left</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">current_radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.navigate_left"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_left" title="Link to this definition"></a></dt> <dd><p>Navigate left within this group’s layout.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>current_radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Current position in radios list</p> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><p>New radio index if navigation successful, None if should exit group</p> </dd> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> | None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_right"> <span class="sig-name descname"><span class="pre">navigate_right</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">current_radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.navigate_right"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_right" title="Link to this definition"></a></dt> <dd><p>Navigate right within this group’s layout.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>current_radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Current position in radios list</p> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><p>New radio index if navigation successful, None if should exit group</p> </dd> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> | None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_to_row"> <span class="sig-name descname"><span class="pre">navigate_to_row</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target_row</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">from_column</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.navigate_to_row"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.navigate_to_row" title="Link to this definition"></a></dt> <dd><p>Navigate to a specific row from an external column position.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>target_row</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>from_column</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a> | None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_row_from_index"> <span class="sig-name descname"><span class="pre">get_row_from_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">radio_index</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioGroup.get_row_from_index"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioGroup.get_row_from_index" title="Link to this definition"></a></dt> <dd><p>Get the row number for navigation between groups.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>radio_index</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Linear index in radios list</p> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><p>Row number for inter-group navigation</p> </dd> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)">int</a></p> </dd> </dl> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputRadioState</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputRadioState"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.NamedTuple" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">NamedTuple</span></code></a></p> <p>InputRadioState(label, value)</p> <p>Create new instance of InputRadioState(label, value)</p> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState.label"> <span class="sig-name descname"><span class="pre">label</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState.label" title="Link to this definition"></a></dt> <dd><p>Alias for field number 0</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState.value"> <span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a></em><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState.value" title="Link to this definition"></a></dt> <dd><p>Alias for field number 1</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputRadioState.__new__"> <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">__new__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_cls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputRadioState.__new__" title="Link to this definition"></a></dt> <dd><p>Create new instance of InputRadioState(label, value)</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>label</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> <li><p><strong>value</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p></li> </ul> </dd> </dl> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InputText</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>A reusable text input field with cursor management, rendering, and input handling. Consolidates the common text input functionality used across the application.</p> <p>Initialize the text input field.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>initial_value</strong> – Starting text value</p></li> <li><p><strong>max_length</strong> – Maximum allowed text length (None for unlimited)</p></li> <li><p><strong>label</strong> – Display label for the field</p></li> </ul> </dd> </dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_value</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_length</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.__init__" title="Link to this definition"></a></dt> <dd><p>Initialize the text input field.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>initial_value</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – Starting text value</p></li> <li><p><strong>max_length</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em> | </em><em>None</em>) – Maximum allowed text length (None for unlimited)</p></li> <li><p><strong>label</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – Display label for the field</p></li> </ul> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.backspace"> <span class="sig-name descname"><span class="pre">backspace</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.backspace"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.backspace" title="Link to this definition"></a></dt> <dd><p>Remove the character before the cursor.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.clear"> <span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.clear" title="Link to this definition"></a></dt> <dd><p>Clear all text and reset cursor.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.delete"> <span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.delete" title="Link to this definition"></a></dt> <dd><p>Remove the character at the cursor position.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.end"> <span class="sig-name descname"><span class="pre">end</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.end"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.end" title="Link to this definition"></a></dt> <dd><p>Move cursor to the end of the text.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.handle_input"> <span class="sig-name descname"><span class="pre">handle_input</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.handle_input"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.handle_input" title="Link to this definition"></a></dt> <dd><p>Handle keyboard input for the text field.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>key</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – The curses key code</p> </dd> <dt class="field-even">Returns<span class="colon">:</span></dt> <dd class="field-even"><p>True if the input was handled, False otherwise</p> </dd> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.home"> <span class="sig-name descname"><span class="pre">home</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.home"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.home" title="Link to this definition"></a></dt> <dd><p>Move cursor to the beginning of the text.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.insert_char"> <span class="sig-name descname"><span class="pre">insert_char</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">char</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.insert_char"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.insert_char" title="Link to this definition"></a></dt> <dd><p>Insert a character at the current cursor position.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>char</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.is_empty"> <span class="sig-name descname"><span class="pre">is_empty</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.is_empty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.is_empty" title="Link to this definition"></a></dt> <dd><p>Check if the text field is empty.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)">bool</a></p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.move_cursor_left"> <span class="sig-name descname"><span class="pre">move_cursor_left</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.move_cursor_left"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.move_cursor_left" title="Link to this definition"></a></dt> <dd><p>Move cursor one position to the left.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.move_cursor_right"> <span class="sig-name descname"><span class="pre">move_cursor_right</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.move_cursor_right"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.move_cursor_right" title="Link to this definition"></a></dt> <dd><p>Move cursor one position to the right.</p> <dl class="field-list simple"> <dt class="field-odd">Return type<span class="colon">:</span></dt> <dd class="field-odd"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.render"> <span class="sig-name descname"><span class="pre">render</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stdscr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">focused</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.render"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.render" title="Link to this definition"></a></dt> <dd><p>Render the text input field with box, text, and cursor.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>stdscr</strong> (<em>window</em>) – The curses window</p></li> <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Y position to render at</p></li> <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – X position to render at</p></li> <li><p><strong>width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – Total width of the input box</p></li> <li><p><strong>focused</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.13)"><em>bool</em></a>) – Whether this field has focus (shows cursor)</p></li> <li><p><strong>style</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a><em> | </em><em>None</em>) – Curses style attributes to apply</p></li> </ul> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.InputText.set_value"> <span class="sig-name descname"><span class="pre">set_value</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#InputText.set_value"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.InputText.set_value" title="Link to this definition"></a></dt> <dd><p>Set the text value and adjust cursor if needed.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><p><strong>new_value</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><em>str</em></a>) – </p> </dd> <dt class="field-even">Return type<span class="colon">:</span></dt> <dd class="field-even"><p>None</p> </dd> </dl> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ViewBounds"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ViewBounds</span></span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ViewBounds"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ViewBounds" title="Link to this definition"></a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <dl class="py method"> <dt class="sig sig-object py" id="mcp_server_webcrawl.interactive.ui.ViewBounds.__init__"> <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcp_server_webcrawl/interactive/ui.html#ViewBounds.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcp_server_webcrawl.interactive.ui.ViewBounds.__init__" title="Link to this definition"></a></dt> <dd><dl class="field-list simple"> <dt class="field-odd">Parameters<span class="colon">:</span></dt> <dd class="field-odd"><ul class="simple"> <li><p><strong>x</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>y</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>width</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> <li><p><strong>height</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><em>int</em></a>) – </p></li> </ul> </dd> </dl> </dd></dl> </dd></dl> </section> <section id="module-mcp_server_webcrawl.interactive"> <span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-mcp_server_webcrawl.interactive" title="Link to this heading"></a></h2> </section> </section> </div> </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="mcp_server_webcrawl.extras.html" class="btn btn-neutral float-left" title="mcp_server_webcrawl.extras package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="mcp_server_webcrawl.models.html" class="btn btn-neutral float-right" title="mcp_server_webcrawl.models package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> <div role="contentinfo"> <p>&#169; Copyright 2025, pragmar.</p> </div> Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </footer> </div> </div> </section> </div> <script> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pragmar/mcp_server_webcrawl'

If you have feedback or need assistance with the MCP directory API, please join our Discord server