import{_ as i,c as e,o as s,a6 as t}from"./chunks/framework.CHl2ywxc.js";const g=JSON.parse('{"title":"Module Loading & Capability Aggregation","description":"","frontmatter":{},"headers":[],"relativePath":"guides/module-loading.md","filePath":"guides/module-loading.md","lastUpdated":1755281500000}'),l={name:"guides/module-loading.md"};function o(n,a,d,r,p,c){return s(),e("div",null,a[0]||(a[0]=[t(`<h1 id="module-loading-capability-aggregation" tabindex="-1">Module Loading & Capability Aggregation <a class="header-anchor" href="#module-loading-capability-aggregation" aria-label="Permalink to "Module Loading & Capability Aggregation""></a></h1><p>Master MCP loads backend servers from multiple sources and aggregates their capabilities.</p><h2 id="sources" tabindex="-1">Sources <a class="header-anchor" href="#sources" aria-label="Permalink to "Sources""></a></h2><ul><li><code>local</code>: A locally running server exposing HTTP endpoints</li><li><code>git</code>, <code>npm</code>, <code>pypi</code>, <code>docker</code>: Stubs for different origins; endpoint resolution is config-driven (e.g., <code>config.port</code> or <code>url</code>).</li></ul><p>Example server block:</p><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">servers</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">search</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">local</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> auth_strategy</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">master_oauth</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> config</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> port</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">4100</span></span></code></pre></div><h2 id="health-checks" tabindex="-1">Health Checks <a class="header-anchor" href="#health-checks" aria-label="Permalink to "Health Checks""></a></h2><p><code>DefaultModuleLoader</code> pings each server’s <code>/health</code> endpoint when loading to set an initial status (<code>running</code> or <code>error</code>).</p><h2 id="capability-aggregation" tabindex="-1">Capability Aggregation <a class="header-anchor" href="#capability-aggregation" aria-label="Permalink to "Capability Aggregation""></a></h2><p><code>CapabilityAggregator</code> discovers tools and resources via:</p><ul><li><code>GET /capabilities</code> (optional if provided by backend)</li><li><code>POST /mcp/tools/list</code></li><li><code>POST /mcp/resources/list</code></li></ul><p>Capabilities can be prefixed by server id (default) to avoid naming conflicts. Use the aggregated names in requests, e.g., <code>serverId.toolName</code>.</p>`,12)]))}const k=i(l,[["render",o]]);export{g as __pageData,k as default};