Buckets:

download
raw
43.7 kB
import{s as We,o as Ge,n as x}from"../chunks/scheduler.b8c17244.js";import{S as He,i as Re,e as U,s as $,c as M,h as qe,a as I,d as a,b as f,f as xe,g as d,j as v,k as oe,l as ke,m as p,n as h,t as T,o as J,p as g}from"../chunks/index.d374165a.js";import{C as Se,H as R,E as Ae}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.8f6ea2ad.js";import{C as _}from"../chunks/CodeBlock.f49d9e4f.js";import{H as wt,a as N}from"../chunks/HfOption.f3c7356c.js";function Ye(j){let s,o="Use the <code>claude mcp add</code> command. Options must come before the server name:",n,c,m="<strong>Stdio (local) server:</strong>",r,e,l,u,y="<strong>HTTP (remote) server:</strong>",b,B,H,C,W="<strong>Examples:</strong>",q,G,k;return e=new _({props:{code:"Y2xhdWRlJTIwbWNwJTIwYWRkJTIwLS10cmFuc3BvcnQlMjBzdGRpbyUyMCUzQ25hbWUlM0UlMjAtLSUyMCUzQ2NvbW1hbmQlM0UlMjAlNUJhcmdzJTVE",highlighted:'claude mcp add --transport stdio &lt;name&gt; -- &lt;<span class="hljs-built_in">command</span>&gt; [args]',wrap:!1}}),B=new _({props:{code:"Y2xhdWRlJTIwbWNwJTIwYWRkJTIwLS10cmFuc3BvcnQlMjBodHRwJTIwJTNDbmFtZSUzRSUyMCUzQ3VybCUzRQ==",highlighted:"claude mcp add --transport http &lt;name&gt; &lt;url&gt;",wrap:!1}}),G=new _({props:{code:"JTIzJTIwTG9jYWwlMjBQeXRob24lMjBzZXJ2ZXIlMEFjbGF1ZGUlMjBtY3AlMjBhZGQlMjAtLXRyYW5zcG9ydCUyMHN0ZGlvJTIwY2FsY3VsYXRvciUyMC0tJTIwcHl0aG9uJTIwJTJGcGF0aCUyRnRvJTJGc2VydmVyLnB5JTBBJTBBJTIzJTIwUmVtb3RlJTIwSFRUUCUyMHNlcnZlciUwQWNsYXVkZSUyMG1jcCUyMGFkZCUyMC0tdHJhbnNwb3J0JTIwaHR0cCUyMG15LWFwaSUyMGh0dHBzJTNBJTJGJTJGYXBpLmV4YW1wbGUuY29tJTJGbWNwJTBBJTBBJTIzJTIwV2l0aCUyMHNjb3BlJTIwYW5kJTIwZW52JTIwdmFycyUwQWNsYXVkZSUyMG1jcCUyMGFkZCUyMC0tdHJhbnNwb3J0JTIwc3RkaW8lMjAtLXNjb3BlJTIwdXNlciUyMC0tZW52JTIwQVBJX0tFWSUzRHh4eCUyMGdpdGh1YiUyMC0tJTIwbnB4JTIwLXklMjAlNDBtb2RlbGNvbnRleHRwcm90b2NvbCUyRnNlcnZlci1naXRodWI=",highlighted:`<span class="hljs-comment"># Local Python server</span>
claude mcp add --transport stdio calculator -- python /path/to/server.py
<span class="hljs-comment"># Remote HTTP server</span>
claude mcp add --transport http my-api https://api.example.com/mcp
<span class="hljs-comment"># With scope and env vars</span>
claude mcp add --transport stdio --scope user --<span class="hljs-built_in">env</span> API_KEY=xxx github -- npx -y @modelcontextprotocol/server-github`,wrap:!1}}),{c(){s=U("p"),s.innerHTML=o,n=$(),c=U("p"),c.innerHTML=m,r=$(),M(e.$$.fragment),l=$(),u=U("p"),u.innerHTML=y,b=$(),M(B.$$.fragment),H=$(),C=U("p"),C.innerHTML=W,q=$(),M(G.$$.fragment)},l(w){s=I(w,"P",{"data-svelte-h":!0}),v(s)!=="svelte-6vamxa"&&(s.innerHTML=o),n=f(w),c=I(w,"P",{"data-svelte-h":!0}),v(c)!=="svelte-11xykfh"&&(c.innerHTML=m),r=f(w),d(e.$$.fragment,w),l=f(w),u=I(w,"P",{"data-svelte-h":!0}),v(u)!=="svelte-1djbi1f"&&(u.innerHTML=y),b=f(w),d(B.$$.fragment,w),H=f(w),C=I(w,"P",{"data-svelte-h":!0}),v(C)!=="svelte-1r5zqy"&&(C.innerHTML=W),q=f(w),d(G.$$.fragment,w)},m(w,Z){p(w,s,Z),p(w,n,Z),p(w,c,Z),p(w,r,Z),h(e,w,Z),p(w,l,Z),p(w,u,Z),p(w,b,Z),h(B,w,Z),p(w,H,Z),p(w,C,Z),p(w,q,Z),h(G,w,Z),k=!0},p:x,i(w){k||(T(e.$$.fragment,w),T(B.$$.fragment,w),T(G.$$.fragment,w),k=!0)},o(w){J(e.$$.fragment,w),J(B.$$.fragment,w),J(G.$$.fragment,w),k=!1},d(w){w&&(a(s),a(n),a(c),a(r),a(l),a(u),a(b),a(H),a(C),a(q)),g(e,w),g(B,w),g(G,w)}}}function Le(j){let s,o="Use the <code>codex mcp add</code> command or edit <code>config.toml</code> directly:",n,c,m="<strong>CLI:</strong>",r,e,l,u,y="<strong>config.toml</strong> (at <code>~/.codex/config.toml</code> or <code>.codex/config.toml</code>):",b,B,H;return e=new _({props:{code:"Y29kZXglMjBtY3AlMjBhZGQlMjAlM0NuYW1lJTNFJTIwLS1lbnYlMjBWQVIlM0RWQUxVRSUyMC0tJTIwJTNDY29tbWFuZCUzRSUyMCU1QmFyZ3MlNUQ=",highlighted:'codex mcp add &lt;name&gt; --<span class="hljs-built_in">env</span> VAR=VALUE -- &lt;<span class="hljs-built_in">command</span>&gt; [args]',wrap:!1}}),B=new _({props:{code:"JTIzJTIwU3RkaW8lMjBzZXJ2ZXIlMEElNUJtY3Bfc2VydmVycy5jYWxjdWxhdG9yJTVEJTBBY29tbWFuZCUyMCUzRCUyMCUyMnB5dGhvbiUyMiUwQWFyZ3MlMjAlM0QlMjAlNUIlMjIlMkZwYXRoJTJGdG8lMkZzZXJ2ZXIucHklMjIlNUQlMEElMEElMjMlMjBIVFRQJTIwc2VydmVyJTBBJTVCbWNwX3NlcnZlcnMubXktYXBpJTVEJTBBdXJsJTIwJTNEJTIwJTIyaHR0cHMlM0ElMkYlMkZhcGkuZXhhbXBsZS5jb20lMkZtY3AlMjIlMEElMEElMjMlMjBXaXRoJTIwZW52JTIwdmFycyUwQSU1Qm1jcF9zZXJ2ZXJzLmdpdGh1YiU1RCUwQWNvbW1hbmQlMjAlM0QlMjAlMjJucHglMjIlMEFhcmdzJTIwJTNEJTIwJTVCJTIyLXklMjIlMkMlMjAlMjIlNDBtb2RlbGNvbnRleHRwcm90b2NvbCUyRnNlcnZlci1naXRodWIlMjIlNUQlMEElMEElNUJtY3Bfc2VydmVycy5naXRodWIuZW52JTVEJTBBR0lUSFVCX1RPS0VOJTIwJTNEJTIwJTIyZ2hwX3h4eHh4JTIy",highlighted:`<span class="hljs-comment"># Stdio server</span>
<span class="hljs-section">[mcp_servers.calculator]</span>
<span class="hljs-attr">command</span> = <span class="hljs-string">&quot;python&quot;</span>
<span class="hljs-attr">args</span> = [<span class="hljs-string">&quot;/path/to/server.py&quot;</span>]
<span class="hljs-comment"># HTTP server</span>
<span class="hljs-section">[mcp_servers.my-api]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">&quot;https://api.example.com/mcp&quot;</span>
<span class="hljs-comment"># With env vars</span>
<span class="hljs-section">[mcp_servers.github]</span>
<span class="hljs-attr">command</span> = <span class="hljs-string">&quot;npx&quot;</span>
<span class="hljs-attr">args</span> = [<span class="hljs-string">&quot;-y&quot;</span>, <span class="hljs-string">&quot;@modelcontextprotocol/server-github&quot;</span>]
<span class="hljs-section">[mcp_servers.github.env]</span>
<span class="hljs-attr">GITHUB_TOKEN</span> = <span class="hljs-string">&quot;ghp_xxxxx&quot;</span>`,wrap:!1}}),{c(){s=U("p"),s.innerHTML=o,n=$(),c=U("p"),c.innerHTML=m,r=$(),M(e.$$.fragment),l=$(),u=U("p"),u.innerHTML=y,b=$(),M(B.$$.fragment)},l(C){s=I(C,"P",{"data-svelte-h":!0}),v(s)!=="svelte-nzqvvc"&&(s.innerHTML=o),n=f(C),c=I(C,"P",{"data-svelte-h":!0}),v(c)!=="svelte-as8qnx"&&(c.innerHTML=m),r=f(C),d(e.$$.fragment,C),l=f(C),u=I(C,"P",{"data-svelte-h":!0}),v(u)!=="svelte-1j3l83h"&&(u.innerHTML=y),b=f(C),d(B.$$.fragment,C)},m(C,W){p(C,s,W),p(C,n,W),p(C,c,W),p(C,r,W),h(e,C,W),p(C,l,W),p(C,u,W),p(C,b,W),h(B,C,W),H=!0},p:x,i(C){H||(T(e.$$.fragment,C),T(B.$$.fragment,C),H=!0)},o(C){J(e.$$.fragment,C),J(B.$$.fragment,C),H=!1},d(C){C&&(a(s),a(n),a(c),a(r),a(l),a(u),a(b)),g(e,C),g(B,C)}}}function Qe(j){let s,o="Edit <code>opencode.json</code> in your project root:",n,c,m;return c=new _({props:{code:"JTdCJTBBJTIwJTIwJTIyJTI0c2NoZW1hJTIyJTNBJTIwJTIyaHR0cHMlM0ElMkYlMkZvcGVuY29kZS5haSUyRmNvbmZpZy5qc29uJTIyJTJDJTBBJTIwJTIwJTIybWNwJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyY2FsY3VsYXRvciUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMnR5cGUlMjIlM0ElMjAlMjJsb2NhbCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMmNvbW1hbmQlMjIlM0ElMjAlNUIlMjJweXRob24lMjIlMkMlMjAlMjIlMkZwYXRoJTJGdG8lMkZzZXJ2ZXIucHklMjIlNUQlMEElMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjJteS1hcGklMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIycmVtb3RlJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIydXJsJTIyJTNBJTIwJTIyaHR0cHMlM0ElMkYlMkZhcGkuZXhhbXBsZS5jb20lMkZtY3AlMjIlMEElMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjJnaXRodWIlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIybG9jYWwlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJjb21tYW5kJTIyJTNBJTIwJTVCJTIybnB4JTIyJTJDJTIwJTIyLXklMjIlMkMlMjAlMjIlNDBtb2RlbGNvbnRleHRwcm90b2NvbCUyRnNlcnZlci1naXRodWIlMjIlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJlbnZpcm9ubWVudCUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMkdJVEhVQl9UT0tFTiUyMiUzQSUyMCUyMmdocF94eHh4eCUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCU3RCUwQSU3RA==",highlighted:`<span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;$schema&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;https://opencode.ai/config.json&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;mcp&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;calculator&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;local&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;command&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">&quot;python&quot;</span><span class="hljs-punctuation">,</span> <span class="hljs-string">&quot;/path/to/server.py&quot;</span><span class="hljs-punctuation">]</span>
<span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;my-api&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;remote&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;url&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;https://api.example.com/mcp&quot;</span>
<span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;github&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;local&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;command&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">&quot;npx&quot;</span><span class="hljs-punctuation">,</span> <span class="hljs-string">&quot;-y&quot;</span><span class="hljs-punctuation">,</span> <span class="hljs-string">&quot;@modelcontextprotocol/server-github&quot;</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;environment&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;GITHUB_TOKEN&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;ghp_xxxxx&quot;</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>`,wrap:!1}}),{c(){s=U("p"),s.innerHTML=o,n=$(),M(c.$$.fragment)},l(r){s=I(r,"P",{"data-svelte-h":!0}),v(s)!=="svelte-79dgt7"&&(s.innerHTML=o),n=f(r),d(c.$$.fragment,r)},m(r,e){p(r,s,e),p(r,n,e),h(c,r,e),m=!0},p:x,i(r){m||(T(c.$$.fragment,r),m=!0)},o(r){J(c.$$.fragment,r),m=!1},d(r){r&&(a(s),a(n)),g(c,r)}}}function Ee(j){let s,o,n,c,m,r;return s=new N({props:{id:"tool",option:"Claude Code",$$slots:{default:[Ye]},$$scope:{ctx:j}}}),n=new N({props:{id:"tool",option:"Codex",$$slots:{default:[Le]},$$scope:{ctx:j}}}),m=new N({props:{id:"tool",option:"OpenCode",$$slots:{default:[Qe]},$$scope:{ctx:j}}}),{c(){M(s.$$.fragment),o=$(),M(n.$$.fragment),c=$(),M(m.$$.fragment)},l(e){d(s.$$.fragment,e),o=f(e),d(n.$$.fragment,e),c=f(e),d(m.$$.fragment,e)},m(e,l){h(s,e,l),p(e,o,l),h(n,e,l),p(e,c,l),h(m,e,l),r=!0},p(e,l){const u={};l&2&&(u.$$scope={dirty:l,ctx:e}),s.$set(u);const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),n.$set(y);const b={};l&2&&(b.$$scope={dirty:l,ctx:e}),m.$set(b)},i(e){r||(T(s.$$.fragment,e),T(n.$$.fragment,e),T(m.$$.fragment,e),r=!0)},o(e){J(s.$$.fragment,e),J(n.$$.fragment,e),J(m.$$.fragment,e),r=!1},d(e){e&&(a(o),a(c)),g(s,e),g(n,e),g(m,e)}}}function Xe(j){let s,o;return s=new _({props:{code:"JTIzJTIwTGlzdCUyMGFsbCUyMGNvbmZpZ3VyZWQlMjBzZXJ2ZXJzJTBBY2xhdWRlJTIwbWNwJTIwbGlzdCUwQSUwQSUyMyUyMEdldCUyMGRldGFpbHMlMjBmb3IlMjBhJTIwc3BlY2lmaWMlMjBzZXJ2ZXIlMEFjbGF1ZGUlMjBtY3AlMjBnZXQlMjAlM0NuYW1lJTNFJTBBJTBBJTIzJTIwUmVtb3ZlJTIwYSUyMHNlcnZlciUwQWNsYXVkZSUyMG1jcCUyMHJlbW92ZSUyMCUzQ25hbWUlM0UlMEElMEElMjMlMjBDaGVjayUyMHN0YXR1cyUyMGluLXNlc3Npb24lMEElMkZtY3A=",highlighted:`<span class="hljs-comment"># List all configured servers</span>
claude mcp list
<span class="hljs-comment"># Get details for a specific server</span>
claude mcp get &lt;name&gt;
<span class="hljs-comment"># Remove a server</span>
claude mcp remove &lt;name&gt;
<span class="hljs-comment"># Check status in-session</span>
/mcp`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function ze(j){let s,o,n,c="You can also edit <code>~/.codex/config.toml</code> directly. Set <code>enabled = false</code> to temporarily disable a server without removing it:",m,r,e;return s=new _({props:{code:"JTIzJTIwVmlldyUyMGFjdGl2ZSUyMHNlcnZlcnMlMjBpbi1zZXNzaW9uJTBBJTJGbWNw",highlighted:`<span class="hljs-comment"># View active servers in-session</span>
/mcp`,wrap:!1}}),r=new _({props:{code:"JTVCbWNwX3NlcnZlcnMubXktYXBpJTVEJTBBdXJsJTIwJTNEJTIwJTIyaHR0cHMlM0ElMkYlMkZhcGkuZXhhbXBsZS5jb20lMkZtY3AlMjIlMEFlbmFibGVkJTIwJTNEJTIwZmFsc2U=",highlighted:`<span class="hljs-section">[mcp_servers.my-api]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">&quot;https://api.example.com/mcp&quot;</span>
<span class="hljs-attr">enabled</span> = <span class="hljs-literal">false</span>`,wrap:!1}}),{c(){M(s.$$.fragment),o=$(),n=U("p"),n.innerHTML=c,m=$(),M(r.$$.fragment)},l(l){d(s.$$.fragment,l),o=f(l),n=I(l,"P",{"data-svelte-h":!0}),v(n)!=="svelte-1becu6v"&&(n.innerHTML=c),m=f(l),d(r.$$.fragment,l)},m(l,u){h(s,l,u),p(l,o,u),p(l,n,u),p(l,m,u),h(r,l,u),e=!0},p:x,i(l){e||(T(s.$$.fragment,l),T(r.$$.fragment,l),e=!0)},o(l){J(s.$$.fragment,l),J(r.$$.fragment,l),e=!1},d(l){l&&(a(o),a(n),a(m)),g(s,l),g(r,l)}}}function Ve(j){let s,o,n,c="Set <code>&quot;enabled&quot;: false</code> in <code>opencode.json</code> to disable a server without removing it.",m;return s=new _({props:{code:"JTIzJTIwTGlzdCUyMGFsbCUyMHNlcnZlcnMlMjBhbmQlMjBhdXRoJTIwc3RhdHVzJTBBb3BlbmNvZGUlMjBtY3AlMjBsaXN0JTBBJTBBJTIzJTIwRGVidWclMjBjb25uZWN0aW9uJTIwaXNzdWVzJTBBb3BlbmNvZGUlMjBtY3AlMjBkZWJ1ZyUyMCUzQ25hbWUlM0UlMEElMEElMjMlMjBBdXRoZW50aWNhdGUlMjB3aXRoJTIwYSUyMHNlcnZlciUwQW9wZW5jb2RlJTIwbWNwJTIwYXV0aCUyMCUzQ25hbWUlM0UlMEElMEElMjMlMjBSZW1vdmUlMjBzdG9yZWQlMjBjcmVkZW50aWFscyUwQW9wZW5jb2RlJTIwbWNwJTIwbG9nb3V0JTIwJTNDbmFtZSUzRQ==",highlighted:`<span class="hljs-comment"># List all servers and auth status</span>
opencode mcp list
<span class="hljs-comment"># Debug connection issues</span>
opencode mcp debug &lt;name&gt;
<span class="hljs-comment"># Authenticate with a server</span>
opencode mcp auth &lt;name&gt;
<span class="hljs-comment"># Remove stored credentials</span>
opencode mcp <span class="hljs-built_in">logout</span> &lt;name&gt;`,wrap:!1}}),{c(){M(s.$$.fragment),o=$(),n=U("p"),n.innerHTML=c},l(r){d(s.$$.fragment,r),o=f(r),n=I(r,"P",{"data-svelte-h":!0}),v(n)!=="svelte-1qga8lh"&&(n.innerHTML=c)},m(r,e){h(s,r,e),p(r,o,e),p(r,n,e),m=!0},p:x,i(r){m||(T(s.$$.fragment,r),m=!0)},o(r){J(s.$$.fragment,r),m=!1},d(r){r&&(a(o),a(n)),g(s,r)}}}function Pe(j){let s,o,n,c,m,r;return s=new N({props:{id:"tool",option:"Claude Code",$$slots:{default:[Xe]},$$scope:{ctx:j}}}),n=new N({props:{id:"tool",option:"Codex",$$slots:{default:[ze]},$$scope:{ctx:j}}}),m=new N({props:{id:"tool",option:"OpenCode",$$slots:{default:[Ve]},$$scope:{ctx:j}}}),{c(){M(s.$$.fragment),o=$(),M(n.$$.fragment),c=$(),M(m.$$.fragment)},l(e){d(s.$$.fragment,e),o=f(e),d(n.$$.fragment,e),c=f(e),d(m.$$.fragment,e)},m(e,l){h(s,e,l),p(e,o,l),h(n,e,l),p(e,c,l),h(m,e,l),r=!0},p(e,l){const u={};l&2&&(u.$$scope={dirty:l,ctx:e}),s.$set(u);const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),n.$set(y);const b={};l&2&&(b.$$scope={dirty:l,ctx:e}),m.$set(b)},i(e){r||(T(s.$$.fragment,e),T(n.$$.fragment,e),T(m.$$.fragment,e),r=!0)},o(e){J(s.$$.fragment,e),J(n.$$.fragment,e),J(m.$$.fragment,e),r=!1},d(e){e&&(a(o),a(c)),g(s,e),g(n,e),g(m,e)}}}function Fe(j){let s,o="Claude Code supports three scopes, controlled with the <code>--scope</code> flag:",n,c,m="<li><strong><code>local</code></strong> (default) — Current project only, private to you (stored in <code>~/.claude.json</code>)</li> <li><strong><code>project</code></strong> — Shared with team via version control (stored in <code>.mcp.json</code> at project root)</li> <li><strong><code>user</code></strong> — Available across all your projects (stored in <code>~/.claude.json</code>)</li>",r,e,l;return e=new _({props:{code:"JTIzJTIwQWRkJTIwYXQlMjB1c2VyJTIwc2NvcGUlMjAoYXZhaWxhYmxlJTIwZXZlcnl3aGVyZSklMEFjbGF1ZGUlMjBtY3AlMjBhZGQlMjAtLXRyYW5zcG9ydCUyMGh0dHAlMjAtLXNjb3BlJTIwdXNlciUyMG15LWFwaSUyMGh0dHBzJTNBJTJGJTJGYXBpLmV4YW1wbGUuY29tJTJGbWNwJTBBJTBBJTIzJTIwQWRkJTIwYXQlMjBwcm9qZWN0JTIwc2NvcGUlMjAoc2hhcmVkJTIwd2l0aCUyMHRlYW0pJTBBY2xhdWRlJTIwbWNwJTIwYWRkJTIwLS10cmFuc3BvcnQlMjBodHRwJTIwLS1zY29wZSUyMHByb2plY3QlMjBteS1hcGklMjBodHRwcyUzQSUyRiUyRmFwaS5leGFtcGxlLmNvbSUyRm1jcA==",highlighted:`<span class="hljs-comment"># Add at user scope (available everywhere)</span>
claude mcp add --transport http --scope user my-api https://api.example.com/mcp
<span class="hljs-comment"># Add at project scope (shared with team)</span>
claude mcp add --transport http --scope project my-api https://api.example.com/mcp`,wrap:!1}}),{c(){s=U("p"),s.innerHTML=o,n=$(),c=U("ul"),c.innerHTML=m,r=$(),M(e.$$.fragment)},l(u){s=I(u,"P",{"data-svelte-h":!0}),v(s)!=="svelte-19dbqn0"&&(s.innerHTML=o),n=f(u),c=I(u,"UL",{"data-svelte-h":!0}),v(c)!=="svelte-o7wh5i"&&(c.innerHTML=m),r=f(u),d(e.$$.fragment,u)},m(u,y){p(u,s,y),p(u,n,y),p(u,c,y),p(u,r,y),h(e,u,y),l=!0},p:x,i(u){l||(T(e.$$.fragment,u),l=!0)},o(u){J(e.$$.fragment,u),l=!1},d(u){u&&(a(s),a(n),a(c),a(r)),g(e,u)}}}function Oe(j){let s,o="Codex supports two scopes:",n,c,m="<li><strong>Global</strong> — <code>~/.codex/config.toml</code> (applies to all projects)</li> <li><strong>Project</strong> — <code>.codex/config.toml</code> (project-scoped, only in trusted projects)</li>",r,e,l="The CLI and IDE extension share this configuration.";return{c(){s=U("p"),s.textContent=o,n=$(),c=U("ul"),c.innerHTML=m,r=$(),e=U("p"),e.textContent=l},l(u){s=I(u,"P",{"data-svelte-h":!0}),v(s)!=="svelte-c92qeq"&&(s.textContent=o),n=f(u),c=I(u,"UL",{"data-svelte-h":!0}),v(c)!=="svelte-1r4cph5"&&(c.innerHTML=m),r=f(u),e=I(u,"P",{"data-svelte-h":!0}),v(e)!=="svelte-10st9n6"&&(e.textContent=l)},m(u,y){p(u,s,y),p(u,n,y),p(u,c,y),p(u,r,y),p(u,e,y)},p:x,d(u){u&&(a(s),a(n),a(c),a(r),a(e))}}}function De(j){let s,o="OpenCode supports two scopes:",n,c,m="<li><strong>Project</strong> — <code>opencode.json</code> in the project root</li> <li><strong>Organization</strong> — Default servers from <code>.well-known/opencode</code> endpoint, which users can opt into</li>",r,e,l="Local config values override remote organization defaults.";return{c(){s=U("p"),s.textContent=o,n=$(),c=U("ul"),c.innerHTML=m,r=$(),e=U("p"),e.textContent=l},l(u){s=I(u,"P",{"data-svelte-h":!0}),v(s)!=="svelte-1q42f28"&&(s.textContent=o),n=f(u),c=I(u,"UL",{"data-svelte-h":!0}),v(c)!=="svelte-napr56"&&(c.innerHTML=m),r=f(u),e=I(u,"P",{"data-svelte-h":!0}),v(e)!=="svelte-11773ts"&&(e.textContent=l)},m(u,y){p(u,s,y),p(u,n,y),p(u,c,y),p(u,r,y),p(u,e,y)},p:x,d(u){u&&(a(s),a(n),a(c),a(r),a(e))}}}function Ke(j){let s,o,n,c,m,r;return s=new N({props:{id:"tool",option:"Claude Code",$$slots:{default:[Fe]},$$scope:{ctx:j}}}),n=new N({props:{id:"tool",option:"Codex",$$slots:{default:[Oe]},$$scope:{ctx:j}}}),m=new N({props:{id:"tool",option:"OpenCode",$$slots:{default:[De]},$$scope:{ctx:j}}}),{c(){M(s.$$.fragment),o=$(),M(n.$$.fragment),c=$(),M(m.$$.fragment)},l(e){d(s.$$.fragment,e),o=f(e),d(n.$$.fragment,e),c=f(e),d(m.$$.fragment,e)},m(e,l){h(s,e,l),p(e,o,l),h(n,e,l),p(e,c,l),h(m,e,l),r=!0},p(e,l){const u={};l&2&&(u.$$scope={dirty:l,ctx:e}),s.$set(u);const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),n.$set(y);const b={};l&2&&(b.$$scope={dirty:l,ctx:e}),m.$set(b)},i(e){r||(T(s.$$.fragment,e),T(n.$$.fragment,e),T(m.$$.fragment,e),r=!0)},o(e){J(s.$$.fragment,e),J(n.$$.fragment,e),J(m.$$.fragment,e),r=!1},d(e){e&&(a(o),a(c)),g(s,e),g(n,e),g(m,e)}}}function ts(j){let s,o;return s=new _({props:{code:"Y2xhdWRlJTIwbWNwJTIwYWRkJTIwLS10cmFuc3BvcnQlMjBodHRwJTIwLS1zY29wZSUyMHVzZXIlMjBoZi1tY3AlMjAlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbWNwJTNGbG9naW4lMjI=",highlighted:'claude mcp add --transport http --scope user hf-mcp <span class="hljs-string">&quot;https://huggingface.co/mcp?login&quot;</span>',wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function es(j){let s,o;return s=new _({props:{code:"JTIzJTIwSW4lMjB+JTJGLmNvZGV4JTJGY29uZmlnLnRvbWwlMEElNUJtY3Bfc2VydmVycy5oZi1tY3AlNUQlMEF1cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbWNwJTNGbG9naW4lMjI=",highlighted:`<span class="hljs-comment"># In ~/.codex/config.toml</span>
<span class="hljs-section">[mcp_servers.hf-mcp]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">&quot;https://huggingface.co/mcp?login&quot;</span>`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function ss(j){let s,o;return s=new _({props:{code:"JTdCJTBBJTIwJTIwJTIybWNwJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyaGYtbWNwJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMnJlbW90ZSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMnVybCUyMiUzQSUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZtY3AlM0Zsb2dpbiUyMiUwQSUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCU3RCUwQSU3RA==",highlighted:`<span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;mcp&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;hf-mcp&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;remote&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;url&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;https://huggingface.co/mcp?login&quot;</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function ns(j){let s,o,n,c,m,r;return s=new N({props:{id:"tool",option:"Claude Code",$$slots:{default:[ts]},$$scope:{ctx:j}}}),n=new N({props:{id:"tool",option:"Codex",$$slots:{default:[es]},$$scope:{ctx:j}}}),m=new N({props:{id:"tool",option:"OpenCode",$$slots:{default:[ss]},$$scope:{ctx:j}}}),{c(){M(s.$$.fragment),o=$(),M(n.$$.fragment),c=$(),M(m.$$.fragment)},l(e){d(s.$$.fragment,e),o=f(e),d(n.$$.fragment,e),c=f(e),d(m.$$.fragment,e)},m(e,l){h(s,e,l),p(e,o,l),h(n,e,l),p(e,c,l),h(m,e,l),r=!0},p(e,l){const u={};l&2&&(u.$$scope={dirty:l,ctx:e}),s.$set(u);const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),n.$set(y);const b={};l&2&&(b.$$scope={dirty:l,ctx:e}),m.$set(b)},i(e){r||(T(s.$$.fragment,e),T(n.$$.fragment,e),T(m.$$.fragment,e),r=!0)},o(e){J(s.$$.fragment,e),J(n.$$.fragment,e),J(m.$$.fragment,e),r=!1},d(e){e&&(a(o),a(c)),g(s,e),g(n,e),g(m,e)}}}function ls(j){let s,o;return s=new _({props:{code:"Y2xhdWRlJTIwbWNwJTIwYWRkJTIwLS10cmFuc3BvcnQlMjBodHRwJTIwLS1zY29wZSUyMHVzZXIlMjBzZW50aW1lbnQtYW5hbHl6ZXIlMjBodHRwcyUzQSUyRiUyRnVzZXJuYW1lLXNlbnRpbWVudC5oZi5zcGFjZSUyRm1jcCUwQSUwQWNsYXVkZSUyMG1jcCUyMGFkZCUyMC0tdHJhbnNwb3J0JTIwaHR0cCUyMC0tc2NvcGUlMjB1c2VyJTIwY29kZS1yZXZpZXdlciUyMGh0dHBzJTNBJTJGJTJGdXNlcm5hbWUtcmV2aWV3ZXIuaGYuc3BhY2UlMkZtY3A=",highlighted:`claude mcp add --transport http --scope user sentiment-analyzer https://username-sentiment.hf.space/mcp
claude mcp add --transport http --scope user code-reviewer https://username-reviewer.hf.space/mcp`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function as(j){let s,o;return s=new _({props:{code:"JTIzJTIwSW4lMjB+JTJGLmNvZGV4JTJGY29uZmlnLnRvbWwlMEElNUJtY3Bfc2VydmVycy5zZW50aW1lbnQtYW5hbHl6ZXIlNUQlMEF1cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRnVzZXJuYW1lLXNlbnRpbWVudC5oZi5zcGFjZSUyRm1jcCUyMiUwQSUwQSU1Qm1jcF9zZXJ2ZXJzLmNvZGUtcmV2aWV3ZXIlNUQlMEF1cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRnVzZXJuYW1lLXJldmlld2VyLmhmLnNwYWNlJTJGbWNwJTIy",highlighted:`<span class="hljs-comment"># In ~/.codex/config.toml</span>
<span class="hljs-section">[mcp_servers.sentiment-analyzer]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">&quot;https://username-sentiment.hf.space/mcp&quot;</span>
<span class="hljs-section">[mcp_servers.code-reviewer]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">&quot;https://username-reviewer.hf.space/mcp&quot;</span>`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function ps(j){let s,o;return s=new _({props:{code:"JTdCJTBBJTIwJTIwJTIybWNwJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyc2VudGltZW50LWFuYWx5emVyJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMnJlbW90ZSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMnVybCUyMiUzQSUyMCUyMmh0dHBzJTNBJTJGJTJGdXNlcm5hbWUtc2VudGltZW50LmhmLnNwYWNlJTJGbWNwJTIyJTBBJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIyY29kZS1yZXZpZXdlciUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMnR5cGUlMjIlM0ElMjAlMjJyZW1vdGUlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjJ1cmwlMjIlM0ElMjAlMjJodHRwcyUzQSUyRiUyRnVzZXJuYW1lLXJldmlld2VyLmhmLnNwYWNlJTJGbWNwJTIyJTBBJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTdEJTBBJTdE",highlighted:`<span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;mcp&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;sentiment-analyzer&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;remote&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;url&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;https://username-sentiment.hf.space/mcp&quot;</span>
<span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;code-reviewer&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;type&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;remote&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;url&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;https://username-reviewer.hf.space/mcp&quot;</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function os(j){let s,o,n,c,m,r;return s=new N({props:{id:"tool",option:"Claude Code",$$slots:{default:[ls]},$$scope:{ctx:j}}}),n=new N({props:{id:"tool",option:"Codex",$$slots:{default:[as]},$$scope:{ctx:j}}}),m=new N({props:{id:"tool",option:"OpenCode",$$slots:{default:[ps]},$$scope:{ctx:j}}}),{c(){M(s.$$.fragment),o=$(),M(n.$$.fragment),c=$(),M(m.$$.fragment)},l(e){d(s.$$.fragment,e),o=f(e),d(n.$$.fragment,e),c=f(e),d(m.$$.fragment,e)},m(e,l){h(s,e,l),p(e,o,l),h(n,e,l),p(e,c,l),h(m,e,l),r=!0},p(e,l){const u={};l&2&&(u.$$scope={dirty:l,ctx:e}),s.$set(u);const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),n.$set(y);const b={};l&2&&(b.$$scope={dirty:l,ctx:e}),m.$set(b)},i(e){r||(T(s.$$.fragment,e),T(n.$$.fragment,e),T(m.$$.fragment,e),r=!0)},o(e){J(s.$$.fragment,e),J(n.$$.fragment,e),J(m.$$.fragment,e),r=!1},d(e){e&&(a(o),a(c)),g(s,e),g(n,e),g(m,e)}}}function cs(j){let s,o;return s=new _({props:{code:"Y2xhdWRlJTIwbWNwJTIwbGlzdCUwQWNsYXVkZSUyMG1jcCUyMGdldCUyMCUzQ3NlcnZlci1uYW1lJTNF",highlighted:`claude mcp list
claude mcp get &lt;server-name&gt;`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function is(j){let s,o="Check <code>~/.codex/config.toml</code> or run <code>/mcp</code> in-session.";return{c(){s=U("p"),s.innerHTML=o},l(n){s=I(n,"P",{"data-svelte-h":!0}),v(s)!=="svelte-1qwgwce"&&(s.innerHTML=o)},m(n,c){p(n,s,c)},p:x,d(n){n&&a(s)}}}function rs(j){let s,o;return s=new _({props:{code:"b3BlbmNvZGUlMjBtY3AlMjBsaXN0JTBBb3BlbmNvZGUlMjBtY3AlMjBkZWJ1ZyUyMCUzQ3NlcnZlci1uYW1lJTNF",highlighted:`opencode mcp list
opencode mcp debug &lt;server-name&gt;`,wrap:!1}}),{c(){M(s.$$.fragment)},l(n){d(s.$$.fragment,n)},m(n,c){h(s,n,c),o=!0},p:x,i(n){o||(T(s.$$.fragment,n),o=!0)},o(n){J(s.$$.fragment,n),o=!1},d(n){g(s,n)}}}function us(j){let s,o,n,c,m,r;return s=new N({props:{id:"tool",option:"Claude Code",$$slots:{default:[cs]},$$scope:{ctx:j}}}),n=new N({props:{id:"tool",option:"Codex",$$slots:{default:[is]},$$scope:{ctx:j}}}),m=new N({props:{id:"tool",option:"OpenCode",$$slots:{default:[rs]},$$scope:{ctx:j}}}),{c(){M(s.$$.fragment),o=$(),M(n.$$.fragment),c=$(),M(m.$$.fragment)},l(e){d(s.$$.fragment,e),o=f(e),d(n.$$.fragment,e),c=f(e),d(m.$$.fragment,e)},m(e,l){h(s,e,l),p(e,o,l),h(n,e,l),p(e,c,l),h(m,e,l),r=!0},p(e,l){const u={};l&2&&(u.$$scope={dirty:l,ctx:e}),s.$set(u);const y={};l&2&&(y.$$scope={dirty:l,ctx:e}),n.$set(y);const b={};l&2&&(b.$$scope={dirty:l,ctx:e}),m.$set(b)},i(e){r||(T(s.$$.fragment,e),T(n.$$.fragment,e),T(m.$$.fragment,e),r=!0)},o(e){J(s.$$.fragment,e),J(n.$$.fragment,e),J(m.$$.fragment,e),r=!1},d(e){e&&(a(o),a(c)),g(s,e),g(n,e),g(m,e)}}}function ms(j){let s,o,n,c,m,r,e,l,u,y="Claude Code, Codex, and OpenCode are all MCP clients. Your job is to tell each one which servers to connect to and how.",b,B,H,C,W="Once an MCP server is configured, the agent connects to it, discovers which tools and resources it exposes, and treats them like built-in capabilities. The agent’s MCP client handles discovery, request routing, and errors behind the scenes.",q,G,k,w,Z,X,yt,S,Ut,z,It,A,vt,V,bt,P,ce="All three agents support two primary transports:",Bt,F,ie="<li><strong>Stdio</strong> — Local subprocess communication via stdin/stdout. Best for development servers and tools that need direct system access.</li> <li><strong>Streamable HTTP</strong> — Remote connections over HTTP. The current standard for cloud-deployed servers. Works across the internet and through firewalls.</li>",_t,O,re="SSE (Server-Sent Events) is a legacy transport that is deprecated but still supported for backward compatibility.",Zt,D,Nt,K,ue="Hugging Face provides official MCP servers for Hub integration. Configure them in any MCP-compatible agent:",xt,Y,Wt,tt,me="The HF MCP server gives agents access to searching for models and datasets, reading repository files, querying model cards, and browsing Hub content.",Gt,L,$e="<p>Visit huggingface.co/settings/mcp to see official MCP servers and configuration examples for your agent.</p>",Ht,et,Rt,st,fe="For servers deployed to Hugging Face Spaces or other cloud platforms, use Streamable HTTP:",qt,Q,kt,nt,Me="Remote servers via Streamable HTTP don’t require restarting your agent, work across the internet and firewalls, can be updated independently, and support optional authentication via headers.",St,lt,At,at,de="If a server isn’t working, check these things:",Yt,pt,he="<strong>1. List configured servers:</strong>",Lt,E,Qt,ot,Te="<strong>2. Test the server manually:</strong>",Et,ct,Xt,it,Je="If the server crashes, you’ll see the error immediately.",zt,rt,ge="<strong>3. Check environment variables:</strong>",Vt,ut,Pt,mt,je="If empty, the server won’t have required secrets.",Ft,$t,we="<strong>4. Check remote server URLs:</strong>",Ot,ft,Dt,Mt,Ce="Should return a valid response if the server is running.",Kt,dt,te,ht,ye="Use environment variables for API keys and secrets, absolute paths for local server scripts, and one server per capability area (keep GitHub and Slack servers separate). Test servers locally first before deploying to the cloud. Use descriptive server names that indicate what each server provides, document your configuration, and keep configs in version control — without secrets.",ee,Tt,se,Jt,Ue="Claude Code uses <code>claude mcp add</code>, Codex uses <code>codex mcp add</code> or <code>config.toml</code>, and OpenCode uses <code>opencode.json</code>. The pattern is the same: name a server, pick a transport, and point it at a command (stdio) or URL (Streamable HTTP). Keep secrets in environment variables and test servers locally before debugging client config.",ne,gt,Ie="Next we’ll look at Gradio’s MCP integration in depth.",le,jt,ae,Ct,pe;return m=new Se({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),e=new R({props:{title:"Configuring Agents as MCP Clients",local:"configuring-agents-as-mcp-clients",headingTag:"h1"}}),B=new R({props:{title:"How Code Agents Act as MCP Clients",local:"how-code-agents-act-as-mcp-clients",headingTag:"h2"}}),G=new R({props:{title:"Adding an MCP Server",local:"adding-an-mcp-server",headingTag:"h2"}}),w=new wt({props:{id:"tool",options:["Claude Code","Codex","OpenCode"],$$slots:{default:[Ee]},$$scope:{ctx:j}}}),X=new R({props:{title:"Managing Servers",local:"managing-servers",headingTag:"h2"}}),S=new wt({props:{id:"tool",options:["Claude Code","Codex","OpenCode"],$$slots:{default:[Pe]},$$scope:{ctx:j}}}),z=new R({props:{title:"Configuration Scopes",local:"configuration-scopes",headingTag:"h2"}}),A=new wt({props:{id:"tool",options:["Claude Code","Codex","OpenCode"],$$slots:{default:[Ke]},$$scope:{ctx:j}}}),V=new R({props:{title:"Transport Types",local:"transport-types",headingTag:"h2"}}),D=new R({props:{title:"The Hugging Face MCP Ecosystem",local:"the-hugging-face-mcp-ecosystem",headingTag:"h2"}}),Y=new wt({props:{id:"tool",options:["Claude Code","Codex","OpenCode"],$$slots:{default:[ns]},$$scope:{ctx:j}}}),et=new R({props:{title:"Configuring Remote MCP Servers",local:"configuring-remote-mcp-servers",headingTag:"h2"}}),Q=new wt({props:{id:"tool",options:["Claude Code","Codex","OpenCode"],$$slots:{default:[os]},$$scope:{ctx:j}}}),lt=new R({props:{title:"Debugging MCP Configurations",local:"debugging-mcp-configurations",headingTag:"h2"}}),E=new wt({props:{id:"tool",options:["Claude Code","Codex","OpenCode"],$$slots:{default:[us]},$$scope:{ctx:j}}}),ct=new _({props:{code:"cHl0aG9uJTIwJTJGcGF0aCUyRnRvJTJGc2VydmVyLnB5",highlighted:"python /path/to/server.py",wrap:!1}}),ut=new _({props:{code:"ZWNobyUyMCUyNEdJVEhVQl9UT0tFTg==",highlighted:'<span class="hljs-built_in">echo</span> <span class="hljs-variable">$GITHUB_TOKEN</span>',wrap:!1}}),ft=new _({props:{code:"Y3VybCUyMCUyMmh0dHBzJTNBJTJGJTJGeW91ci1zcGFjZS5oZi5zcGFjZSUyRm1jcCUyMg==",highlighted:'curl <span class="hljs-string">&quot;https://your-space.hf.space/mcp&quot;</span>',wrap:!1}}),dt=new R({props:{title:"Configuration Best Practices",local:"configuration-best-practices",headingTag:"h2"}}),Tt=new R({props:{title:"Key Takeaways",local:"key-takeaways",headingTag:"h2"}}),jt=new Ae({props:{source:"https://github.com/huggingface/context-course/blob/main/units/en/unit2/mcp-clients.mdx"}}),{c(){s=U("meta"),o=$(),n=U("p"),c=$(),M(m.$$.fragment),r=$(),M(e.$$.fragment),l=$(),u=U("p"),u.textContent=y,b=$(),M(B.$$.fragment),H=$(),C=U("p"),C.textContent=W,q=$(),M(G.$$.fragment),k=$(),M(w.$$.fragment),Z=$(),M(X.$$.fragment),yt=$(),M(S.$$.fragment),Ut=$(),M(z.$$.fragment),It=$(),M(A.$$.fragment),vt=$(),M(V.$$.fragment),bt=$(),P=U("p"),P.textContent=ce,Bt=$(),F=U("ul"),F.innerHTML=ie,_t=$(),O=U("p"),O.textContent=re,Zt=$(),M(D.$$.fragment),Nt=$(),K=U("p"),K.textContent=ue,xt=$(),M(Y.$$.fragment),Wt=$(),tt=U("p"),tt.textContent=me,Gt=$(),L=U("blockquote"),L.innerHTML=$e,Ht=$(),M(et.$$.fragment),Rt=$(),st=U("p"),st.textContent=fe,qt=$(),M(Q.$$.fragment),kt=$(),nt=U("p"),nt.textContent=Me,St=$(),M(lt.$$.fragment),At=$(),at=U("p"),at.textContent=de,Yt=$(),pt=U("p"),pt.innerHTML=he,Lt=$(),M(E.$$.fragment),Qt=$(),ot=U("p"),ot.innerHTML=Te,Et=$(),M(ct.$$.fragment),Xt=$(),it=U("p"),it.textContent=Je,zt=$(),rt=U("p"),rt.innerHTML=ge,Vt=$(),M(ut.$$.fragment),Pt=$(),mt=U("p"),mt.textContent=je,Ft=$(),$t=U("p"),$t.innerHTML=we,Ot=$(),M(ft.$$.fragment),Dt=$(),Mt=U("p"),Mt.textContent=Ce,Kt=$(),M(dt.$$.fragment),te=$(),ht=U("p"),ht.textContent=ye,ee=$(),M(Tt.$$.fragment),se=$(),Jt=U("p"),Jt.innerHTML=Ue,ne=$(),gt=U("p"),gt.textContent=Ie,le=$(),M(jt.$$.fragment),ae=$(),Ct=U("p"),this.h()},l(t){const i=qe("svelte-u9bgzb",document.head);s=I(i,"META",{name:!0,content:!0}),i.forEach(a),o=f(t),n=I(t,"P",{}),xe(n).forEach(a),c=f(t),d(m.$$.fragment,t),r=f(t),d(e.$$.fragment,t),l=f(t),u=I(t,"P",{"data-svelte-h":!0}),v(u)!=="svelte-19xtxde"&&(u.textContent=y),b=f(t),d(B.$$.fragment,t),H=f(t),C=I(t,"P",{"data-svelte-h":!0}),v(C)!=="svelte-dc6c0a"&&(C.textContent=W),q=f(t),d(G.$$.fragment,t),k=f(t),d(w.$$.fragment,t),Z=f(t),d(X.$$.fragment,t),yt=f(t),d(S.$$.fragment,t),Ut=f(t),d(z.$$.fragment,t),It=f(t),d(A.$$.fragment,t),vt=f(t),d(V.$$.fragment,t),bt=f(t),P=I(t,"P",{"data-svelte-h":!0}),v(P)!=="svelte-8nyx98"&&(P.textContent=ce),Bt=f(t),F=I(t,"UL",{"data-svelte-h":!0}),v(F)!=="svelte-1pgpmcd"&&(F.innerHTML=ie),_t=f(t),O=I(t,"P",{"data-svelte-h":!0}),v(O)!=="svelte-n8hkyx"&&(O.textContent=re),Zt=f(t),d(D.$$.fragment,t),Nt=f(t),K=I(t,"P",{"data-svelte-h":!0}),v(K)!=="svelte-p12u18"&&(K.textContent=ue),xt=f(t),d(Y.$$.fragment,t),Wt=f(t),tt=I(t,"P",{"data-svelte-h":!0}),v(tt)!=="svelte-qprsgj"&&(tt.textContent=me),Gt=f(t),L=I(t,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),v(L)!=="svelte-16rcmfj"&&(L.innerHTML=$e),Ht=f(t),d(et.$$.fragment,t),Rt=f(t),st=I(t,"P",{"data-svelte-h":!0}),v(st)!=="svelte-4oorv8"&&(st.textContent=fe),qt=f(t),d(Q.$$.fragment,t),kt=f(t),nt=I(t,"P",{"data-svelte-h":!0}),v(nt)!=="svelte-15gllmv"&&(nt.textContent=Me),St=f(t),d(lt.$$.fragment,t),At=f(t),at=I(t,"P",{"data-svelte-h":!0}),v(at)!=="svelte-h14om5"&&(at.textContent=de),Yt=f(t),pt=I(t,"P",{"data-svelte-h":!0}),v(pt)!=="svelte-z3njbe"&&(pt.innerHTML=he),Lt=f(t),d(E.$$.fragment,t),Qt=f(t),ot=I(t,"P",{"data-svelte-h":!0}),v(ot)!=="svelte-gmofl4"&&(ot.innerHTML=Te),Et=f(t),d(ct.$$.fragment,t),Xt=f(t),it=I(t,"P",{"data-svelte-h":!0}),v(it)!=="svelte-sp62s"&&(it.textContent=Je),zt=f(t),rt=I(t,"P",{"data-svelte-h":!0}),v(rt)!=="svelte-11870qw"&&(rt.innerHTML=ge),Vt=f(t),d(ut.$$.fragment,t),Pt=f(t),mt=I(t,"P",{"data-svelte-h":!0}),v(mt)!=="svelte-1idwu2f"&&(mt.textContent=je),Ft=f(t),$t=I(t,"P",{"data-svelte-h":!0}),v($t)!=="svelte-1vdu4vg"&&($t.innerHTML=we),Ot=f(t),d(ft.$$.fragment,t),Dt=f(t),Mt=I(t,"P",{"data-svelte-h":!0}),v(Mt)!=="svelte-i3fs5z"&&(Mt.textContent=Ce),Kt=f(t),d(dt.$$.fragment,t),te=f(t),ht=I(t,"P",{"data-svelte-h":!0}),v(ht)!=="svelte-765umi"&&(ht.textContent=ye),ee=f(t),d(Tt.$$.fragment,t),se=f(t),Jt=I(t,"P",{"data-svelte-h":!0}),v(Jt)!=="svelte-1grg97n"&&(Jt.innerHTML=Ue),ne=f(t),gt=I(t,"P",{"data-svelte-h":!0}),v(gt)!=="svelte-1x2gs0"&&(gt.textContent=Ie),le=f(t),d(jt.$$.fragment,t),ae=f(t),Ct=I(t,"P",{}),xe(Ct).forEach(a),this.h()},h(){oe(s,"name","hf:doc:metadata"),oe(s,"content",$s),oe(L,"class","tip")},m(t,i){ke(document.head,s),p(t,o,i),p(t,n,i),p(t,c,i),h(m,t,i),p(t,r,i),h(e,t,i),p(t,l,i),p(t,u,i),p(t,b,i),h(B,t,i),p(t,H,i),p(t,C,i),p(t,q,i),h(G,t,i),p(t,k,i),h(w,t,i),p(t,Z,i),h(X,t,i),p(t,yt,i),h(S,t,i),p(t,Ut,i),h(z,t,i),p(t,It,i),h(A,t,i),p(t,vt,i),h(V,t,i),p(t,bt,i),p(t,P,i),p(t,Bt,i),p(t,F,i),p(t,_t,i),p(t,O,i),p(t,Zt,i),h(D,t,i),p(t,Nt,i),p(t,K,i),p(t,xt,i),h(Y,t,i),p(t,Wt,i),p(t,tt,i),p(t,Gt,i),p(t,L,i),p(t,Ht,i),h(et,t,i),p(t,Rt,i),p(t,st,i),p(t,qt,i),h(Q,t,i),p(t,kt,i),p(t,nt,i),p(t,St,i),h(lt,t,i),p(t,At,i),p(t,at,i),p(t,Yt,i),p(t,pt,i),p(t,Lt,i),h(E,t,i),p(t,Qt,i),p(t,ot,i),p(t,Et,i),h(ct,t,i),p(t,Xt,i),p(t,it,i),p(t,zt,i),p(t,rt,i),p(t,Vt,i),h(ut,t,i),p(t,Pt,i),p(t,mt,i),p(t,Ft,i),p(t,$t,i),p(t,Ot,i),h(ft,t,i),p(t,Dt,i),p(t,Mt,i),p(t,Kt,i),h(dt,t,i),p(t,te,i),p(t,ht,i),p(t,ee,i),h(Tt,t,i),p(t,se,i),p(t,Jt,i),p(t,ne,i),p(t,gt,i),p(t,le,i),h(jt,t,i),p(t,ae,i),p(t,Ct,i),pe=!0},p(t,[i]){const ve={};i&2&&(ve.$$scope={dirty:i,ctx:t}),w.$set(ve);const be={};i&2&&(be.$$scope={dirty:i,ctx:t}),S.$set(be);const Be={};i&2&&(Be.$$scope={dirty:i,ctx:t}),A.$set(Be);const _e={};i&2&&(_e.$$scope={dirty:i,ctx:t}),Y.$set(_e);const Ze={};i&2&&(Ze.$$scope={dirty:i,ctx:t}),Q.$set(Ze);const Ne={};i&2&&(Ne.$$scope={dirty:i,ctx:t}),E.$set(Ne)},i(t){pe||(T(m.$$.fragment,t),T(e.$$.fragment,t),T(B.$$.fragment,t),T(G.$$.fragment,t),T(w.$$.fragment,t),T(X.$$.fragment,t),T(S.$$.fragment,t),T(z.$$.fragment,t),T(A.$$.fragment,t),T(V.$$.fragment,t),T(D.$$.fragment,t),T(Y.$$.fragment,t),T(et.$$.fragment,t),T(Q.$$.fragment,t),T(lt.$$.fragment,t),T(E.$$.fragment,t),T(ct.$$.fragment,t),T(ut.$$.fragment,t),T(ft.$$.fragment,t),T(dt.$$.fragment,t),T(Tt.$$.fragment,t),T(jt.$$.fragment,t),pe=!0)},o(t){J(m.$$.fragment,t),J(e.$$.fragment,t),J(B.$$.fragment,t),J(G.$$.fragment,t),J(w.$$.fragment,t),J(X.$$.fragment,t),J(S.$$.fragment,t),J(z.$$.fragment,t),J(A.$$.fragment,t),J(V.$$.fragment,t),J(D.$$.fragment,t),J(Y.$$.fragment,t),J(et.$$.fragment,t),J(Q.$$.fragment,t),J(lt.$$.fragment,t),J(E.$$.fragment,t),J(ct.$$.fragment,t),J(ut.$$.fragment,t),J(ft.$$.fragment,t),J(dt.$$.fragment,t),J(Tt.$$.fragment,t),J(jt.$$.fragment,t),pe=!1},d(t){t&&(a(o),a(n),a(c),a(r),a(l),a(u),a(b),a(H),a(C),a(q),a(k),a(Z),a(yt),a(Ut),a(It),a(vt),a(bt),a(P),a(Bt),a(F),a(_t),a(O),a(Zt),a(Nt),a(K),a(xt),a(Wt),a(tt),a(Gt),a(L),a(Ht),a(Rt),a(st),a(qt),a(kt),a(nt),a(St),a(At),a(at),a(Yt),a(pt),a(Lt),a(Qt),a(ot),a(Et),a(Xt),a(it),a(zt),a(rt),a(Vt),a(Pt),a(mt),a(Ft),a($t),a(Ot),a(Dt),a(Mt),a(Kt),a(te),a(ht),a(ee),a(se),a(Jt),a(ne),a(gt),a(le),a(ae),a(Ct)),a(s),g(m,t),g(e,t),g(B,t),g(G,t),g(w,t),g(X,t),g(S,t),g(z,t),g(A,t),g(V,t),g(D,t),g(Y,t),g(et,t),g(Q,t),g(lt,t),g(E,t),g(ct,t),g(ut,t),g(ft,t),g(dt,t),g(Tt,t),g(jt,t)}}}const $s='{"title":"Configuring Agents as MCP Clients","local":"configuring-agents-as-mcp-clients","sections":[{"title":"How Code Agents Act as MCP Clients","local":"how-code-agents-act-as-mcp-clients","sections":[],"depth":2},{"title":"Adding an MCP Server","local":"adding-an-mcp-server","sections":[],"depth":2},{"title":"Managing Servers","local":"managing-servers","sections":[],"depth":2},{"title":"Configuration Scopes","local":"configuration-scopes","sections":[],"depth":2},{"title":"Transport Types","local":"transport-types","sections":[],"depth":2},{"title":"The Hugging Face MCP Ecosystem","local":"the-hugging-face-mcp-ecosystem","sections":[],"depth":2},{"title":"Configuring Remote MCP Servers","local":"configuring-remote-mcp-servers","sections":[],"depth":2},{"title":"Debugging MCP Configurations","local":"debugging-mcp-configurations","sections":[],"depth":2},{"title":"Configuration Best Practices","local":"configuration-best-practices","sections":[],"depth":2},{"title":"Key Takeaways","local":"key-takeaways","sections":[],"depth":2}],"depth":1}';function fs(j){return Ge(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class gs extends He{constructor(s){super(),Re(this,s,fs,ms,We,{})}}export{gs as component};

Xet Storage Details

Size:
43.7 kB
·
Xet hash:
eda3bda6b0022525be06827fb1d3741cbb3239fd4d1e4f872631d9fd548d7bf5

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.