1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8642],{99554:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/data-hub/console/mcp",function(){return n(11391)}])},16981:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var a=n(11527),r=n(94599),c=n(67670),i=n(51875),o=n(89021),s=n.n(o),l=n(51122);let p=[{hrefLang:"en",baseUrl:"https://www.octoparse.com"},{hrefLang:"ja",baseUrl:"https://www.octoparse.jp"},{hrefLang:"es",baseUrl:"https://www.octoparse.es"},{hrefLang:"de",baseUrl:"https://www.octoparse.de"},{hrefLang:"fr",baseUrl:"https://www.octoparse.fr"},{hrefLang:"it",baseUrl:"https://www.octoparse.it"},{hrefLang:"ko",baseUrl:"https://www.octoparse.kr"},{hrefLang:"x-default",baseUrl:"https://www.octoparse.com"}],d=e=>{let t=e.searchParams.getAll("page"),n=e.searchParams.getAll("pageSize"),a=new URLSearchParams;return t.forEach(e=>a.set("page",e)),n.forEach(e=>a.set("pageSize",e)),e.search=a.toString(),e.href};function u(e){let{title:t,keywords:n,description:o,ogTitle:u,ogDescription:m,ogKeyword:h,ogImage:f,twitterCard:g,twitterTitle:_,twitterDescription:x,robots:j,showCanonical:b=!0,preconnectStaticCdn:y=!1,showAlternates:v=!0,children:k}=e,{i18n:w}=(0,i.$G)(),A=(0,l.useRouter)(),N=new URL(A.asPath,r.o6),L=/^\/blog\/?/.test(A.pathname)?d(N):String(new URL(N.pathname,N.origin)),C=new URL(L),S="".concat(C.pathname).concat(C.search),P=A.asPath&&A.asPath.includes("template")?"template":A.asPath.includes("blog")?"blog":"public",R=f?(0,c.ZP)({src:f.startsWith("http")?f:new URL(f,r.o6).toString()}):(0,c.ZP)({src:new URL("".concat(c.Ll["en-US"],"/og/").concat(P,".png"),r.o6).toString()});return(0,a.jsxs)(s(),{children:[(0,a.jsx)("title",{children:t}),n&&(0,a.jsx)("meta",{name:"keywords",content:n}),o&&(0,a.jsx)("meta",{name:"description",content:o}),j&&(0,a.jsx)("meta",{name:"robots",content:j}),g&&(0,a.jsx)("meta",{name:"twitter:card",content:g}),_&&(0,a.jsx)("meta",{name:"twitter:title",content:_}),x&&(0,a.jsx)("meta",{name:"twitter:description",content:x}),y&&(0,a.jsx)("link",{rel:"preconnect",href:"https://static.octoparse.com"}),b&&(0,a.jsx)("link",{rel:"canonical",href:L}),b&&v&&!A.pathname.startsWith("/blog/")&&p.map(e=>{let{hrefLang:t,baseUrl:n}=e;return(0,a.jsx)("link",{rel:"alternate",hrefLang:t,href:new URL(S,n).toString()},t)}),(!k||f)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{property:"og:image",content:R}),(0,a.jsx)("meta",{property:"twitter:image",content:R})]}),(0,a.jsx)("meta",{property:"og:site_name",content:"Octoparse"}),(!k||f)&&(0,a.jsx)("meta",{property:"og:type",content:"website"}),(0,a.jsx)("meta",{property:"og:title",content:u||t}),(0,a.jsx)("meta",{property:"og:description",content:m||""}),h&&(0,a.jsx)("meta",{property:"og:keyword",content:h}),(!k||f)&&(0,a.jsx)("meta",{property:"og:image:width",content:"1200"}),(!k||f)&&(0,a.jsx)("meta",{property:"og:image:height",content:"630"}),(0,a.jsx)("meta",{property:"og:url",content:L}),(0,a.jsx)("meta",{property:"og:locale",content:w.language}),k]})}},33369:function(e,t,n){"use strict";n.d(t,{Zb:function(){return o},vZ:function(){return s},yG:function(){return i}});var a=n(11527),r=n(32506),c=n.n(r);let i=e=>{let{title:t,desc:n,extra:r}=e;return(0,a.jsxs)("div",{className:"mb-6 flex items-center justify-between gap-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold leading-8 text-[#1f1f1f]",children:t}),n&&(0,a.jsx)("p",{className:"mt-1.5 text-sm leading-[22px] text-[#8c8c8c]",children:n})]}),r]})},o=e=>{let{children:t,className:n=""}=e;return(0,a.jsx)("section",{className:"rounded-2xl bg-white p-7 ".concat(n),children:t})},s=e=>{let{title:t,desc:n,action:r}=e;return(0,a.jsxs)("div",{className:"flex min-h-[280px] flex-col items-center justify-center gap-2 rounded-xl border border-dashed border-[#e2e5eb] bg-[#fcfcfd] p-6 text-center",children:[(0,a.jsx)("b",{className:"text-sm font-semibold text-[#595959]",children:t}),(0,a.jsx)("span",{className:"max-w-[440px] text-xs leading-[19px] text-[#8c8c8c]",children:n}),r&&(0,a.jsx)(c(),{href:r.href,className:"mt-1.5 rounded-lg border border-[#e2e5eb] bg-white px-5 py-2 text-sm text-[#1f1f1f] hover:border-[#c2c8d2] hover:text-primary",children:r.text})]})}},55266:function(e,t,n){"use strict";n.d(t,{Bk:function(){return h},I0:function(){return o},LR:function(){return m},NO:function(){return g},Qf:function(){return c},Y5:function(){return _},ei:function(){return u},h6:function(){return i},ix:function(){return s},nU:function(){return x},rS:function(){return r},wW:function(){return f}});var a=n(94599);let r=a.s8,c=a.w3,i=[{key:"discovery",labelKey:"mcpLanding.toolGroup.discovery"},{key:"runs",labelKey:"mcpLanding.toolGroup.runs"}],o=[{name:"search_data_apps",group:"discovery",descKey:"mcpLanding.tool.searchDataApps"},{name:"get_data_app_details",group:"discovery",descKey:"mcpLanding.tool.getDataAppDetails"},{name:"run_data_app",group:"runs",descKey:"mcpLanding.tool.runDataApp"},{name:"get_run_status",group:"runs",descKey:"mcpLanding.tool.getRunStatus"},{name:"get_run_result",group:"runs",descKey:"mcpLanding.tool.getRunResult"},{name:"cancel_run",group:"runs",descKey:"mcpLanding.tool.cancelRun"},{name:"list_runs",group:"runs",descKey:"mcpLanding.tool.listRuns"}],s=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.length?"".concat(r,"?pin=").concat(t.join(",")):r},l=function(e,t,n){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return"".concat(a?"// .cursor/mcp.json\n":"",'{\n "mcpServers": {\n "').concat(t,'": {\n "type": "http",\n "url": "').concat(e,'"').concat("apikey"===n?',\n "headers": { "Authorization": "Bearer <YOUR_API_KEY>" }':"","\n }\n }\n}").concat("oauth"===n&&a?"\n// After saving, click the login button for this server in Cursor MCP settings and finish authorization in the browser":"")},p=(e,t,n)=>"oauth"===n?"# Run the following command in your terminal; sign in to your Octoparse account when prompted\nclaude mcp add ".concat(t,' "').concat(e,'" -t http\n# The first connection opens a browser to sign in; you can also type /mcp inside a session to trigger auth manually'):"# Replace <YOUR_API_KEY>
1 with your API key, then run in your terminal\nclaude mcp add ".concat(t,' "').concat(e,'" \\\n -t http --header "Authorization: Bearer <YOUR_API_KEY>"'),d=(e,t,n)=>"oauth"===n?"# Run the following commands to add the MCP server and finish browser authorization\ncodex mcp add ".concat(t,' --url "').concat(e,'"\ncodex mcp login ').concat(t," # Opens a browser to sign in to your Octoparse account"):'# Put your API key in an environment variable first, then add via CLI\nexport DATAHUB_API_KEY="<YOUR_API_KEY>"\ncodex mcp add '.concat(t,' --url "').concat(e,'" \\\n --bearer-token-env-var DATAHUB_API_KEY\n\n# Or edit ~/.codex/config.toml directly\n[mcp_servers.').concat(t,']\nurl = "').concat(e,'"\nbearer_token_env_var = "DATAHUB_API_KEY"'),u=e=>e.replace(/\//g,"__"),m=[{key:"json",label:"JSON",lang:"mcpServers config",snippet:(e,t,n)=>l(e,t,n)},{key:"claude-code",label:"Claude Code",lang:"Terminal",snippet:p},{key:"codex",label:"Codex",lang:"Terminal / config.toml",snippet:d},{key:"cursor",label:"Cursor",lang:".cursor/mcp.json",snippet:(e,t,n)=>l(e,t,n,!0)}],h=(e,t)=>"Install an MCP server named ".concat(t," (Streamable HTTP) in this client:\n- Server URL: ").concat(e,"\n- Authentication, pick one:\n 1. Recommended: set the request header Authorization: Bearer <API Key>. Ask me for the API key before writing the config. Do not commit the API key to a shared repo, and do not use a login access token (expires in ~24 hours) in place of an API key;\n 2. If I prefer not to provide a key and this client supports MCP OAuth login: leave credentials out of the config â the first connection returns a 401 challenge and automatically guides me through browser authorization.\n- Configure it the standard way for this client (mcp.json / config.toml / CLI are all fine). Only do the configuration; do not perform any other actions.\nWhen done, remind me to restart or reload the client (for the OAuth path, guide me through the browser login), and confirm that tools like search_data_apps and run_data_app are available."),f=(e,t)=>"# 1) Submit a run; for fast apps add ?wait=60 to wait for the terminal state directly\ncurl -X POST '".concat(c,"/v1/data-apps/").concat(e,"/runs?wait=60' \\\n -H 'Authorization: Bearer <YOUR_API_KEY>' \\\n -H 'Content-Type: application/json' \\\n -d '").concat(t,"'\n\n# 2) Long-running tasks: poll the run status (also supports ?wait= long polling)\ncurl -H 'Authorization: Bearer <YOUR_API_KEY>' \\\n '").concat(c,"/v1/runs/<run_id>'\n\n# 3) Fetch results: read with pagination, or export everything with format=jsonl / csv\ncurl -H 'Authorization: Bearer <YOUR_API_KEY>' \\\n '").concat(c,"/v1/runs/<run_id>/records?limit=50'"),g=(e,t)=>'# pip install bazhuayu-client\nfrom bazhuayu_client import Client\n\nwith Client(base_url="'.concat(c,'", api_key="<YOUR_API_KEY>") as client:\n run = client.call("').concat(e,'", ').concat(t,') # Submit and wait for the terminal state\n for record in client.iterate_records(run["run_id"]): # Auto-paginate through all results\n print(record)'),_=(e,t)=>'// npm install bazhuayu-client\nimport { Client } from "bazhuayu-client";\n\nconst client = new Client({ baseUrl: "'.concat(c,'", apiKey: "<YOUR_API_KEY>" });\nconst run = await client.call("').concat(e,'", ').concat(t,"); // Submit and wait for the terminal state\nfor await (const record of client.iterateRecords(run.run_id)) { // Auto-paginate through all results\n console.log(record);\n}"),x=e=>{let t=e.split("/").pop()||e;return"# JSONL: one record per line â good for streaming and incremental ingestion\ncurl -H 'Authorization: Bearer <YOUR_API_KEY>' \\\n '".concat(c,"/v1/runs/<run_id>/records?format=jsonl' > ").concat(t,".jsonl\n\n# CSV: fields selects columns, limit caps a single request at 10000 records\ncurl -H 'Authorization: Bearer <YOUR_API_KEY>' \\\n '").concat(c,"/v1/runs/<run_id>/records?format=csv&limit=10000' > ").concat(t,".csv")}},18099:function(e,t,n){"use strict";n.d(t,{r:function(){return x}});var a,r=n(51875),c=n(50959),i=n(64819),o=n(46211),s=n(50785),l=n(81502);let p=(e,t)=>{var n;return{id:(0,o.fj)(t),name:t.identity.name,summary:t.identity.summary,logo:(0,s.Rt)(t.labels),pricingLabel:(0,l.jx)(e,t.pricing),publisher:null!==(a=null===(n=t.publisher)||void 0===n?void 0:n.name)&&void 0!==a?a:"",savedAt:t.saved_at?Date.parse(t.saved_at):Date.now()}},d="datahub.favorites.v1",u=()=>{try{var e;let t=JSON.parse(null!==(e=window.localStorage.getItem(d))&&void 0!==e?e:"[]");if(!Array.isArray(t))return[];return t.map(e=>e&&"object"==typeof e?e.id:null).filter(e=>"string"==typeof e&&e.includes("/"))}catch(e){return[]}},m=()=>{try{window.localStorage.removeItem(d)}catch(e){}},h={revalidateOnFocus:!1,shouldRetryOnError:!1},f=()=>{let e=window.location.pathname+window.location.search;window.location.href="/api/auth?nextUrl=".concat(encodeURIComponent(e))};async function g(){let e;try{e=(await (0,o.oB)()).items}catch(e){if(e instanceof o.n&&"UNAUTHORIZED"===e.code)return null;throw e}let t=await _(e);return null!=t?t:e}async function _(e){let t=new Set(e.map(o.fj)),n=u().filter(e=>!t.has(e));if(!n.length)return m(),null;let a=await Promise.allSettled(n.map(e=>(0,o.zl)(e))),r=a.some(e=>"rejected"===e.status&&!(e.reason instanceof o.n));
1return r||m(),(await (0,o.oB)()).items}let x=()=>{let{t:e}=(0,r.$G)("data-hub"),{data:t,mutate:n}=(0,i.ZP)("datahub/favorites",g,h),a=(null!=t?t:[]).map(t=>p(e,t)),s=(0,c.useCallback)(e=>{let a="string"==typeof e?e:e.id;if(null===t){f();return}if(void 0===t)return;let r=t.some(e=>(0,o.fj)(e)===a),c=r?t.filter(e=>(0,o.fj)(e)!==a):[...t,j(a)];n(async()=>(await (r?(0,o.gk)(a):(0,o.zl)(a)),(await (0,o.oB)()).items),{optimisticData:c,rollbackOnError:!0,revalidate:!1}).catch(e=>{e instanceof o.n&&"UNAUTHORIZED"===e.code&&f()})},[t,n]);return{items:a,ready:void 0!==t,toggle:s,has:e=>a.some(t=>t.id===e)}},j=e=>{var t;let[,n=e]=e.split("/");return{namespace:null!==(t=e.split("/")[0])&&void 0!==t?t:null,app_name:n,status:"published",identity:{app_name:n,name:n,summary:""},discovery:{},saved_at:null}}},11391:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSP:function(){return S}});var a=n(11527),r=n(16981),c=n(62592),i=n(33369),o=n(50785),s=n(46211),l=n(55266),p=n(18099),d=n(73548),u=n(64621),m=n(22258),h=n(92605),f=n(57866),g=n(67531),_=n(51875),x=n(90919),j=n.n(x),b=n(32506),y=n.n(b),v=n(51122),k=n(50959),w=n(48898),A=n.n(w);let N="octoparse_datahub",L=e=>{if(!e)return[];let t=Array.isArray(e)?e:[e];return[...new Set(t.flatMap(e=>e.split(",")).map(e=>e.trim()).filter(Boolean))]},C=e=>{var t;let{apps:n}=e,{t:c}=(0,_.$G)("open-platform"),{t:x}=(0,_.$G)("data-hub"),b=(0,v.useRouter)(),[w,C]=(0,k.useState)(""),[S,P]=(0,k.useState)([]),[R,U]=(0,k.useState)([]),[T,O]=(0,k.useState)(!1),[I,K]=(0,k.useState)(!1),[B,Y]=(0,k.useState)("json"),[z,E]=(0,k.useState)("apikey"),[H,D]=(0,k.useState)(!1),F=(0,k.useRef)(!1),{items:G,ready:q}=(0,p.r)(),Z=(0,k.useMemo)(()=>new Set(G.map(e=>e.id)),[G]);(0,k.useEffect)(()=>{if(!b.isReady)return;let e=L(b.query.add).filter(e=>n.some(t=>(0,s.fj)(t)===e));e.length&&P(e)},[n,b.isReady,b.query.add]),(0,k.useEffect)(()=>{if(!F.current){F.current=!0;return}D(!0);let e=setTimeout(()=>D(!1),1200);return()=>clearTimeout(e)},[S]);let M=(0,k.useMemo)(()=>n.filter(e=>(!I||Z.has((0,s.fj)(e)))&&(0,o.i6)(e,w)),[n,I,Z,w]),Q=(0,k.useMemo)(()=>n.filter(e=>S.includes((0,s.fj)(e))),[n,S]),X=(0,l.ix)(...Q.map(e=>(0,s.fj)(e))),W=null!==(t=l.LR.find(e=>e.key===B))&&void 0!==t?t:l.LR[0],$=W.snippet(X,N,z),J=Q.length>0,V=J?c("mcp.toolset.appCount",{count:Q.length}):c("mcp.toolset.default"),ee=J?(0,a.jsxs)(a.Fragment,{children:[c("mcp.configHint.boundPrefix"),(0,a.jsx)("b",{children:c("mcp.configHint.boundApps",{count:Q.length})}),c("mcp.configHint.boundSuffix")]}):c("mcp.configHint.default"),et=e=>{P(S.includes(e)?S.filter(t=>t!==e):[...S,e])},en=()=>{C(""),K(!1),U(S),O(!0)},ea=e=>{U(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},er=async(e,t)=>{await navigator.clipboard.writeText(e),g.N9.show({message:t,color:"green"})};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.Z,{title:c("mcp.meta.title"),description:c("mcp.meta.description")}),(0,a.jsx)(i.yG,{title:c("mcp.title"),desc:c("mcp.desc")}),(0,a.jsxs)("main",{className:A().content,children:[(0,a.jsxs)("section",{className:"".concat(A().configCard," ").concat(H?A().configFlash:""),children:[(0,a.jsxs)("div",{className:A().cardHeading,children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{children:c("mcp.config.title")}),(0,a.jsx)("p",{children:c("mcp.config.subtitle")})]}),(0,a.jsx)("span",{className:A().toolsetBadge,children:c("mcp.toolset.current",{label:V})})]}),(0,a.jsxs)("div",{className:A().authTabs,role:"tablist","aria-label":c("mcp.auth.ariaLabel"),children:[[["apikey",c("mcp.auth.apikey")],["oauth",c("mcp.auth.oauth")]].map(e=>{let[t,n]=e;return(0,a.jsx)("button",{type:"button",role:"tab","aria-selected":z===t,className:z===t?A().activeAuthTab:void 0,onClick:()=>E(t),children:n},t)}),(0,a.jsx)("span",{children:"apikey"===z?c("mcp.auth.apikeyDesc"):c("mcp.auth.oauthDesc")})]}),(0,a.jsxs)("div",{className:A().configNotice,children:[(0,a.jsx)("span",{children:ee}),H&&(0,a.jsx)("em",{children:c("mcp.configUpdated")})]}),(0,a.jsxs)("div",{className:A().configGrid,children:[(0,a.jsxs)("div",{className:A().configBlock,children:[(0,a.jsxs)("header",{children:[(0,a.jsx)("div",{className:A().clientTabs,role:"tablist","aria-label":c("mcp.client.ariaLabel"),children:l.LR.map(e=>(0,a.jsx)("button",{type:"button",role:"tab","aria-selected":B===e.key,className:B===e.key?A().activeClientTab:void 0,onClick:()=>Y(e.key),children:e.label},e.key))}),(0,a.jsxs)("button",{type:"button",onClick:()=>er($,c("mcp.copied.config",{client:W.label})),children:[(0,a.jsx)(d.KK,{})," ",J?c("mcp.copyToolsetConfig"):c("mcp.copyDefaultConfig")]})]}),(0,a.jsx)("div",{className:A().configLang,children:W.lang}),(0,a.jsx)("pre",{children:$})]}),(0,a.jsxs)("div",{className:A().configSide,children:[(0,a.jsxs)("div",{className:A().urlBlock,children:[(0,a.jsx)("b",{children:c("mcp.serverUrl")}),(0,a.jsx)("code",{children:X}),(0,a.jsx)(u.z,{variant:"default",leftSection:(0,a.jsx)(d.KK,{}),onClick:()=>er(X,c("mcp.copied.url")),children:c("mcp.copyUrl")})]}),(0,a.jsxs)("div",{className:A().promptBlock,children:[(0,a.jsx)("b",{children:c("mcp.prompt.title")}),(0,a.jsx)("span",{children:c("mcp.prompt.desc")}),(0,a.jsx)(u.z,{variant:"default",onClick:()=>er((0,l.Bk)(X,N),c("mcp.copied.installPrompt")),children:c("mcp.prompt.copy")})]})]})]}),(0,a.jsxs)("p",{className:A().authTip,children:[c("mcp.tip.generic"),"oauth"===z?(0,a.jsx)(a.Fragment,{children:c("mcp.tip.oauth")}):(0,a.jsxs)(a.Fragment,{children:[c("mcp.tip.apikey"),(0,a.jsx)(y(),{href:"/data-hub/console/api-keys",children:c("mcp.tip.viewKeys")})]})]})]}),(0,a.jsxs)("section",{className:A().toolsCard,children:[(0,a.jsxs)("div",{className:A().toolsHeader,children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h2",{children:[c("mcp.tools.title")," ",(0,a.jsx)("span",{children:c("mcp.tools.optional")}),J&&(0,a.jsx)("span",{children:c("mcp.tools.selectedCount",{count:Q.length})})]}),(0,a.jsx)("p",{children:c("mcp.tools.desc")})]}),(0,a.jsx)(u.z,{onClick:en,children:c("mcp.addApp")})]}),(0,a.jsxs)("div",{className:A().fixedToolsPanel,children:[(0,a.jsxs)("header",{children:[(0,a.jsx)("b",{children:c("mcp.fixedTools.title")}),(0,a.jsx)("span",{children:c("mcp.fixedTools.hint")})]}),l.h6.map(e=>{let t=l.I0.filter(t=>
1t.group===e.key);return(0,a.jsxs)("div",{className:A().toolGroup,children:[(0,a.jsx)("div",{className:A().groupLabel,children:(0,a.jsx)("b",{children:x(e.labelKey)})}),(0,a.jsx)("div",{className:A().toolOptions,children:t.map(e=>(0,a.jsxs)("div",{children:[(0,a.jsx)("code",{children:e.name}),(0,a.jsx)("span",{children:x(e.descKey)})]},e.name))})]},e.key)})]}),Q.length?(0,a.jsx)("ul",{className:A().selectedChips,children:Q.map(e=>(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:A().chipLogo,children:(0,o.Rt)(e.labels)?(0,a.jsx)(j(),{src:(0,o.Rt)(e.labels),alt:"",width:18,height:18}):(0,o.ng)(e.identity.name)}),(0,a.jsx)("span",{className:A().chipName,title:(0,o.l5)(e.labels).slice(0,2).join(" \xb7 ")||e.identity.summary,children:e.identity.name}),(0,a.jsx)("button",{type:"button","aria-label":c("mcp.removeApp",{name:e.identity.name}),onClick:()=>et((0,s.fj)(e)),children:(0,a.jsx)(d.XS,{})})]},(0,s.fj)(e)))}):(0,a.jsx)("p",{className:A().emptySelected,children:c("mcp.emptySelected")})]})]}),(0,a.jsxs)(m.u,{opened:T,title:c("mcp.picker.title"),size:720,onClose:()=>O(!1),children:[(0,a.jsx)("p",{className:A().modalHint,children:c("mcp.picker.hint")}),(0,a.jsxs)("div",{className:A().pickerToolbar,children:[(0,a.jsxs)("div",{className:A().quickFilters,role:"tablist","aria-label":c("mcp.picker.quickFilterAria"),children:[(0,a.jsxs)("button",{type:"button",role:"tab","aria-selected":!I,className:I?"":A().activeQuickFilter,onClick:()=>K(!1),children:[c("mcp.picker.all")," ",(0,a.jsx)("em",{children:n.length})]}),(0,a.jsxs)("button",{type:"button",role:"tab","aria-selected":I,className:I?A().activeQuickFilter:"",onClick:()=>K(!0),children:[c("mcp.picker.favorites")," ",(0,a.jsx)("em",{children:q?G.length:"â"})]})]}),(0,a.jsx)(h.o,{value:w,leftSection:(0,a.jsx)(d.l6,{}),rightSection:w?(0,a.jsx)(f.P,{size:"sm","aria-label":x("market.clearSearch"),onClick:()=>C("")}):void 0,placeholder:c("mcp.picker.searchPlaceholder"),onChange:e=>C(e.currentTarget.value)})]}),(0,a.jsx)("div",{className:A().appList,children:M.map(e=>{let t=R.includes((0,s.fj)(e));return(0,a.jsxs)("label",{className:t?A().selectedApp:void 0,children:[(0,a.jsx)("input",{type:"checkbox",checked:t,onChange:()=>ea((0,s.fj)(e))}),(0,a.jsx)("span",{className:A().logo,children:(0,o.Rt)(e.labels)?(0,a.jsx)(j(),{src:(0,o.Rt)(e.labels),alt:"",width:24,height:24}):(0,o.ng)(e.identity.name)}),(0,a.jsxs)("span",{className:A().appInfo,children:[(0,a.jsx)("b",{children:e.identity.name}),(0,a.jsx)("small",{children:(0,o.l5)(e.labels).slice(0,2).join(" \xb7 ")||e.identity.summary})]}),(0,a.jsx)(y(),{href:(0,s.l6)(e),target:"_blank",rel:"noreferrer",onClick:e=>e.stopPropagation(),children:c("mcp.picker.viewDetails")})]},(0,s.fj)(e))})}),!M.length&&(0,a.jsx)("div",{className:A().empty,children:I?c("mcp.picker.emptyFavorites"):c("mcp.picker.empty")}),(0,a.jsxs)("div",{className:"mt-4 flex justify-end gap-2",children:[(0,a.jsx)(u.z,{variant:"default",onClick:()=>O(!1),children:c("common.cancel")}),(0,a.jsx)(u.z,{onClick:()=>{P(R),O(!1)},children:c("mcp.picker.confirm",{count:R.length})})]})]})]})};C.getLayout=e=>(0,c.G)(e);var S=!0;t.default=C},48898:function(e){e.exports={page:"mcp_page__fdG2r",content:"mcp_content__zCNVl",configCard:"mcp_configCard__D_ORh",toolsCard:"mcp_toolsCard__bIBqu",configFlash:"mcp_configFlash__vUkRn","config-flash":"mcp_config-flash__3PBld",cardHeading:"mcp_cardHeading__ttosG",authTabs:"mcp_authTabs__BEOcQ",activeAuthTab:"mcp_activeAuthTab__7g27p",toolsetBadge:"mcp_toolsetBadge__FZXYt",configNotice:"mcp_configNotice__mrciQ",configGrid:"mcp_configGrid__OWvBD",configBlock:"mcp_configBlock___LukL",clientTabs:"mcp_clientTabs__u2x1d",activeClientTab:"mcp_activeClientTab__kYHhK",configLang:"mcp_configLang__pDXrl",configSide:"mcp_configSide__qxqkt",urlBlock:"mcp_urlBlock__fk4Ma",promptBlock:"mcp_promptBlock__0Oo1H",authTip:"mcp_authTip__DboLu",toolsHeader:"mcp_toolsHeader__52bzK",fixedToolsPanel:"mcp_fixedToolsPanel__thfLO",toolGroup:"mcp_toolGroup__yNqDz",groupLabel:"mcp_groupLabel__gV5P1",toolOptions:"mcp_toolOptions__KOi7X",selectedChips:"mcp_selectedChips__lAkPZ",chipLogo:"mcp_chipLogo__tr0Yj",chipName:"mcp_chipName__EecdA",emptySelected:"mcp_emptySelected__4e6CB",appList:"mcp_appList__2Ls_K",selectedApp:"mcp_selectedApp__Po3bA",logo:"mcp_logo__NYSs_",appInfo:"mcp_appInfo__pUZSi",empty:"mcp_empty__yclB9",modalHint:"mcp_modalHint__rtxHG",pickerToolbar:"mcp_pickerToolbar__4bGqO",quickFilters:"mcp_quickFilters__Yl6Fb",activeQuickFilter:"mcp_activeQuickFilter__yQ_L7"}}},function(e){e.O(0,[6841,6120,3765,9759,3953,6226,9257,1460,830,4980,9157,2592,4725,9774,2888,179],function(){return e(e.s=99554)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.