1"use strict";(self.webpackChunkquicklead_ui=self.webpackChunkquicklead_ui||[]).push([[1298],{1298:(O,p,r)=>{r.r(p),r.d(p,{AiAssistantModule:()=>M});var l=r(6895),d=r(396),m=r(8341),e=r(8256),g=r(9751),u=r(5571);function _(o,i){if(1&o){const t=e.EpF();e.TgZ(0,"button",64),e.NdJ("click",function(){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.selectClient(s.id))}),e._UZ(1,"i"),e.TgZ(2,"span",65),e._uU(3),e.qZA(),e.TgZ(4,"span",66),e._uU(5),e.qZA()()}if(2&o){const t=i.$implicit,n=e.oxw();e.ekj("is-active",n.selectedClient===t.id),e.uIk("aria-selected",n.selectedClient===t.id),e.xp6(1),e.Tol(t.icon),e.xp6(2),e.Oqu(t.name),e.xp6(2),e.Oqu(t.hint)}}function f(o,i){1&o&&(e.TgZ(0,"p",67),e._UZ(1,"i",68),e.TgZ(2,"span"),e._uU(3," Your token could not be read from this session, so the snippet shows a placeholder. Log out and back in, then reopen this page for a ready-to-paste configuration. "),e.qZA()())}function h(o,i){if(1&o){const t=e.EpF();e.TgZ(0,"button",69),e.NdJ("click",function(){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.copy(s,"Prompt"))}),e._UZ(1,"i",47),e.TgZ(2,"span"),e._uU(3),e.qZA(),e._UZ(4,"i",70),e.qZA()}if(2&o){const t=i.$implicit;e.xp6(3),e.Oqu(t)}}function b(o,i){if(1&o&&(e.TgZ(0,"code",77),e._uU(1),e.qZA()),2&o){const t=i.$implicit;e.xp6(1),e.Oqu(t)}}function C(o,i){if(1&o&&(e.TgZ(0,"li",71)(1,"span",72),e._UZ(2,"i"),e.qZA(),e.TgZ(3,"div")(4,"h4",73)(5,"span"),e._uU(6),e.qZA(),e._uU(7),e.qZA(),e.TgZ(8,"p",74),e._uU(9),e.qZA(),e.TgZ(10,"p",75),e.YNc(11,b,2,1,"code",76),e.qZA()()()),2&o){const t=i.$implicit,n=i.index;e.xp6(2),e.Tol(t.icon),e.xp6(4),e.hij("",n+1,"."),e.xp6(1),e.hij(" ",t.title,""),e.xp6(2),e.Oqu(t.text),e.xp6(2),e.Q6J("ngForOf",t.tools)}}function k(o,i){if(1&o){const t=e.EpF();e.TgZ(0,"button",69),e.NdJ("click",function(){const s=e.CHM(t).$implicit,c=e.oxw();return e.KtG(c.copy(s,"Prompt"))}),e._UZ(1,"i",47),e.TgZ(2,"span"),e._uU(3),e.qZA(),e._UZ(4,"i",70),e.qZA()}if(2&o){const t=i.$implicit;e.xp6(3),e.Oqu(t)}}function q(o,i){1&o&&(e.TgZ(0,"span",86),e._uU(1,"Makes changes"),e.qZA())}function y(o,i){if(1&o&&(e.TgZ(0,"li")(1,"code",77),e._uU(2),e.qZA(),e.YNc(3,q,2,0,"span",84),e.TgZ(4,"p",85),e._uU(5),e.qZA()()),2&o){const t=i.$implicit;e.xp6(2),e.Oqu(t.name),e.xp6(1),e.Q6J("ngIf",t.writes),e.xp6(2),e.Oqu(t.description)}}function v(o,i){if(1&o&&(e.TgZ(0,"article",78)(1,"h4",79)(2,"span",80),e._UZ(3,"i"),e.qZA(),e._uU(4),e.TgZ(5,"span",81),e._uU(6),e.qZA()(),e.TgZ(7,"ul",82),e.YNc(8,y,6,3,"li",83),e.qZA()()),2&o){const t=i.$implicit;e.xp6(3),e.Tol(t.icon),e.xp6(1),e.hij(" ",t.name," "),e.xp6(2),e.Oqu(t.tools.length),e.xp6(2),e.Q6J("ngForOf",t.tools)}}const x=function(o,i){return{"fa-eye-slash":o,"fa-eye":i}},w=[{path:"",component:(()=>{class o{constructor(t,n){this.localStorageService=t,this.toastrService=n,this.endpoint=m.Jx.FINAL_PATH+"user/mcp",this.token="",this.tokenVisible=!1,this.selectedClient="claude-code",this.clients=[{id:"claude-code",name:"Claude Code",hint:"Terminal, VS Code, JetBrains",icon:"fas fa-terminal"},{id:"claude-desktop",name:"Claude Desktop",hint:"macOS and Windows app",icon:"fas fa-desktop"},{id:"cursor",name:"Cursor",hint:"Editor with MCP support",icon:"fas fa-i-cursor"},{id:"curl",name:"Test with curl",hint:"Verify the endpoint by hand",icon:"fas fa-flask"}],this.examplePrompts=["Which campaigns are running right now?","Who replied to me this week?","Summarise my notes on this lead before I message them","How many contacts are in my Founders list?","Did I hit any sending limits today?"],this.builderPrompts=["Build a LinkedIn campaign for https://yourcompany.com","Import 200 leads from this Sales Navigator search and write a campaign for them: <paste link>","Show me how my messages will read for three of the imported leads"],this.builderSteps=[{title:"Pick the LinkedIn account",text:"Your assistant lists the LinkedIn accounts you can use, checks which have Premium and Sales Navigator, and asks which one to use if you have more than one.",icon:"fab fa-linkedin-in",tools:["quicklead_list_linkedin_accounts","quicklead_get_sender_context"]},{title:"Describe your ideal customer",text:"Give it your website. It reads the site, drafts your ideal customer profile (ICP) and saves it once you agree.",icon:"fas fa-bullseye",tools:["quicklead_save_icp"]},{title:"Find the leads",text:"It builds a Sales Navigator search if you have it, otherwise a People Search. Add location or industry in LinkedIn and paste the link back - or paste a search link of your own.",icon:"fas fa-search",tools:["quicklead_build_linkedin_
1search_url"]},{title:"Import them",text:"Say how many you want (100 by default). The leads go into a new list and are scored against your ICP.",icon:"fas fa-file-import",tools:["quicklead_import_leads","quicklead_get_import_status"]},{title:"Review the messages",text:"The sequence visits the profile, likes a post, sends an invite (with a note only on Premium), then a message and two follow-ups. You see each message filled in for real leads and can change anything.",icon:"fas fa-comment-dots",tools:["quicklead_preview_sequence_messages"]},{title:"Start it yourself",text:"The campaign is saved under Campaigns > Drafts. Check it there and press Start when you are ready - your assistant cannot start it for you.",icon:"fas fa-flag-checkered",tools:["quicklead_create_sequence_campaign"]}],this.snippetLabels={"claude-code":"Terminal","claude-desktop":"claude_desktop_config.json",cursor:".cursor/mcp.json",curl:"Terminal"},this.tools=[{group:"Campaign builder",name:"quicklead_list_linkedin_accounts",description:"Lists the LinkedIn accounts you can act as, with Premium, Sales Navigator and invite-note limits."},{group:"Campaign builder",name:"quicklead_get_sender_context",description:"Profile, import credit left today and recent ICPs for the sending account."},{group:"Campaign builder",name:"quicklead_save_icp",description:"Saves an ideal customer profile so imported leads are scored against it.",writes:!0},{group:"Campaign builder",name:"quicklead_build_linkedin_search_url",description:"Turns job titles, keywords and company into a Sales Navigator or People Search link."},{group:"Campaign builder",name:"quicklead_import_leads",description:"Imports leads from a People Search or Sales Navigator link into a list.",writes:!0},{group:"Campaign builder",name:"quicklead_get_import_status",description:"Whether an import is still running, and how many leads have arrived."},{group:"Campaign builder",name:"quicklead_stop_import",description:"Stops a running import. Leads already imported stay in the list.",writes:!0},{group:"Campaign builder",name:"quicklead_preview_sequence_messages",description:"Shows the invite note and messages filled in for real leads, and checks them."},{group:"Campaign builder",name:"quicklead_create_sequence_campaign",description:"Saves the sequence as a draft for you to review and start.",writes:!0},{group:"Campaigns",name:"quicklead_list_campaigns",description:"Searches campaigns with status, type, schedule and progress."},{group:"Campaigns",name:"quicklead_list_campaign_names",description:"Id, name and type of every campaign, to turn a name into an id."},{group:"Campaigns",name:"quicklead_get_campaign",description:"Full detail for one campaign, including its messages and counters."},{group:"Campaigns",name:"quicklead_get_campaign_counts",description:"Campaign totals per status, and any sending limits hit today."},{group:"Campaigns",name:"quicklead_list_campaign_contacts",description:"Contacts in one campaign with their send status."},{group:"Campaigns",name:"quicklead_create_invitation_campaign",description:"Creates a connection invite campaign as a draft.",writes:!0},{group:"Campaigns",name:"quicklead_create_message_campaign",description:"Creates a message campaign for existing connections as a draft.",writes:!0},{group:"Campaigns",name:"quicklead_create_inmail_campaign",description:"Creates an InMail campaign as a draft.",writes:!0},{group:"Campaigns",name:"quicklead_create_email_finder_campaign",description:"Creates an email finder campaign as a draft.",writes:!0},{group:"Campaigns",name:"quicklead_create_personalized_campaign",description:"Creates an AI-personalised message campaign as a draft.",writes:!0},{group:"Campaigns",name:"quicklead_set_campaign_status",description:"Starts, pauses or archives a campaign. Campaigns your assistant built can only be started by you.",writes:!0},{group:"Campaigns",name:"quicklead_pause_all_campaigns",description:"Pauses every running campaign at once.",writes:!0},{group:"Campaigns",name:"quicklead_rename_campaign",description:"Renames a campaign.",writes:!0}
1,{group:"Campaigns",name:"quicklead_set_campaign_timezone",description:"Sets the time zone a campaign sends in.",writes:!0},{group:"Campaigns",name:"quicklead_update_invite_message",description:"Changes an invite campaign's note.",writes:!0},{group:"Campaigns",name:"quicklead_update_send_message",description:"Changes a message campaign's message.",writes:!0},{group:"Campaigns",name:"quicklead_update_inmail_message",description:"Changes an InMail campaign's subject and message.",writes:!0},{group:"Campaigns",name:"quicklead_update_personalized_message_settings",description:"Changes what the AI writes about in a personalised campaign.",writes:!0},{group:"Campaigns",name:"quicklead_add_lists_to_campaign",description:"Adds the contacts of one or more lists to a campaign.",writes:!0},{group:"Campaigns",name:"quicklead_remove_campaign_contacts",description:"Takes contacts out of a campaign.",writes:!0},{group:"Campaigns",name:"quicklead_remove_overlapping_contacts",description:"Takes out contacts who are already in another campaign.",writes:!0},{group:"Contacts and lists",name:"quicklead_list_connections",description:"Searches your LinkedIn connections."},{group:"Contacts and lists",name:"quicklead_list_contact_lists",description:"Every contact list with its id and contact count."},{group:"Contacts and lists",name:"quicklead_search_contacts",description:"Searches contacts across the account or in one list."},{group:"Contacts and lists",name:"quicklead_get_contact",description:"The full stored profile of one contact."},{group:"Contacts and lists",name:"quicklead_get_contact_notes",description:"Notes saved against one contact."},{group:"Contacts and lists",name:"quicklead_create_contact_list",description:"Creates an empty contact list.",writes:!0},{group:"Contacts and lists",name:"quicklead_rename_contact_list",description:"Renames a contact list.",writes:!0},{group:"Contacts and lists",name:"quicklead_delete_contact_list",description:"Deletes a list and the contacts in it.",writes:!0},{group:"Contacts and lists",name:"quicklead_move_contacts",description:"Moves contacts to another list.",writes:!0},{group:"Contacts and lists",name:"quicklead_delete_contacts",description:"Deletes contacts.",writes:!0},{group:"Contacts and lists",name:"quicklead_add_contact_note",description:"Adds a note to a contact.",writes:!0},{group:"Contacts and lists",name:"quicklead_delete_contact_note",description:"Deletes a contact note.",writes:!0},{group:"Inbox and templates",name:"quicklead_list_inbox",description:"LinkedIn conversations, filterable by reply state and tags."},{group:"Inbox and templates",name:"quicklead_get_inbox_unread_counts",description:"Unread counts for the inbox and archive."},{group:"Inbox and templates",name:"quicklead_update_conversations",description:"Marks conversations read, starred or archived.",writes:!0},{group:"Inbox and templates",name:"quicklead_delete_conversations",description:"Deletes conversations from the inbox.",writes:!0},{group:"Inbox and templates",name:"quicklead_set_reminder",description:"Sets a follow-up reminder.",writes:!0},{group:"Inbox and templates",name:"quicklead_delete_reminder",description:"Deletes a reminder.",writes:!0},{group:"Inbox and templates",name:"quicklead_list_templates",description:"Your saved message templates."},{group:"Inbox and templates",name:"quicklead_save_template",description:"Creates or updates a message template.",writes:!0},{group:"Inbox and templates",name:"quicklead_delete_template",description:"Deletes a message template.",writes:!0},{group:"Messaging",name:"quicklead_send_message",description:"Sends one LinkedIn message outside a campaign.",writes:!0},{group:"Messaging",name:"quicklead_send_inmail",description:"Sends one InMail outside a campaign.",writes:!0},{group:"Tags",name:"quicklead_list_tags",description:"Every tag in the account."},{group:"Tags",name:"quicklead_create_tag",description:"Creates a tag.",writes:!0},{group:"Tags",name:"quicklead_assign_tag",description:"Adds a tag to, or removes it from, contacts, connections or conversations.",writes:!0},{group:"Tags",name:"quicklead_delete_tag",description:"Deletes a tag.",writes:!0},{group:"Settings and account",name:"quicklead_whoami",description:"Which Quicklead account the connection is using, with plan and workspace."},{group:"Settings and account",name:"quicklead_get_daily_limits",description:"Your daily sending limits."},{group:"Settings and account",name:"quicklead_set_daily_limit",description:"Changes a daily sending limit.",writes:!0}],this.toolGroups=[{name:"Campaign builder",icon:"fas fa-magic",tools:[]},{name:"Campaigns",icon:"fas fa-bullhorn",tools:[]},{name:"Contacts and lists",icon:"fas fa-address-book",tools:[]},{name:"Inbox and templates",icon:"fas fa-inbox",tools:[]},{name:"Messaging",icon:"fas fa-paper-plane",tools:[]},{name:"Tags",icon:"fas fa-tags",tools:[]},{name:"Settings and account",icon:"fas fa-sliders-h",tools:[]}],this.writeCount=this.tools.filter(a=>a.writes).length}ngOnInit(){this.token=this.localStorageService.get(m.tl.ACCESS_TOKEN_COOKIE)||"",this.toolGroups.forEach(t=>t.tools=this.tools.filter(n=>n.group===t.name))}getSnippetLabel(){return this.snippetLabels[this.selectedClient]||"Configuration"}get maskedToken(){return this.token?this.tokenVisible?this.token:this.token.length>12?"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"+this.token.slice(-6):"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022":""}toggleTokenVisibility(){this.tokenVisible=!this.tokenVisible}selectClient(t){this.selectedClient=t}snippetFor(t){const n=this.token||"<YOUR_QUICKLEAD_TOKEN>";
1return"claude-code"===t?"claude mcp add --transport http quicklead \\\n "+this.endpoint+' \\\n --header "Authorization: Bearer '+n+'"':"claude-desktop"===t?'{\n "mcpServers": {\n "quicklead": {\n "command": "npx",\n "args": [\n "-y",\n "mcp-remote",\n "'+this.endpoint+'",\n "--header",\n "Authorization: Bearer '+n+'"\n ]\n }\n }\n}':"cursor"===t?'{\n "mcpServers": {\n "quicklead": {\n "url": "'+this.endpoint+'",\n "headers": {\n "Authorization": "Bearer '+n+'"\n }\n }\n }\n}':"curl -X POST "+this.endpoint+' \\\n -H "Authorization: Bearer '+n+'" \\\n -H "Content-Type: application/json" \\\n -H "Accept: application/json, text/event-stream" \\\n -d \'{"jsonrpc":"2.0","id":1,"method":"tools/list"}\''}fileHintFor(t){return"claude-code"===t?"Run this once in your terminal, then start Claude Code and ask it to list your Quicklead campaigns.":"claude-desktop"===t?"Add this to claude_desktop_config.json (Settings > Developer > Edit Config), then restart Claude Desktop. Claude Desktop speaks MCP over stdio, so mcp-remote bridges it to this HTTP endpoint - it needs Node.js installed.":"cursor"===t?"Add this to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json to enable it everywhere.":"A successful call returns a JSON-RPC result listing every available tool. A 401 means the token is missing or expired."}copy(t,n){if(!t)return;const a=()=>this.toastrService.showSuccess(n+" copied to clipboard");navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(t).then(a,()=>this.copyFallback(t,a)):this.copyFallback(t,a)}copyFallback(t,n){try{const a=document.createElement("textarea");a.value=t,a.setAttribute("readonly",""),a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a),n()}catch{this.toastrService.showError("Could not copy. Please select the text and copy it manually.")}}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(g.n),e.Y36(u._))},o.\u0275cmp=e.Xpm({type:o,selectors:[["app-ai-assistant"]],decls:182,vars:20,consts:[[1,"pg-header"],[1,"pg-header__title"],[1,"pg-header__subtitle"],[1,"mcp"],[1,"mcp-hero"],[1,"mcp-hero__text"],[1,"mcp-eyebrow"],[1,"fas","fa-plug"],[1,"mcp-hero__title"],[1,"mcp-hero__sub"],[1,"mcp-hero__chips"],[1,"fas","fa-user-check"],[1,"fas","fa-shield-alt"],[1,"fas","fa-bolt"],[1,"mcp-hero__mark"],[1,"fas","fa-robot"],[1,"mcp-step"],[1,"mcp-step__head"],[1,"mcp-step__num"],[1,"mcp-step__title"],[1,"mcp-step__sub"],[1,"mcp-step__body"],[1,"mcp-fields"],[1,"mcp-field"],["for","mcpEndpoint",1,"mcp-label"],[1,"mcp-input"],["id","mcpEndpoint","type","text","readonly","",3,"value"],["type","button","title","Copy server URL",1,"mcp-icon-btn",3,"click"],[1,"fas","fa-copy"],["for","mcpToken",1,"mcp-label"],["id","mcpToken","type","text","readonly","","placeholder","Log in again to load your token",3,"value"],["type","button",1,"mcp-icon-btn","mcp-icon-btn--plain",3,"title","click"],[1,"fas",3,"ngClass"],["type","button","title","Copy access token",1,"mcp-icon-btn",3,"disabled","click"],[1,"mcp-warn"],["role","tablist","aria-label","AI client",1,"mcp-clients"],["type","button","class","mcp-client","role","tab",3,"is-active","click",4,"ngFor","ngForOf"],[1,"mcp-hint"],[1,"fas","fa-info-circle"],[1,"mcp-code"],[1,"mcp-code__bar"],[1,"mcp-code__dots"],[1,"mcp-code__file"],["type","button",1,"mcp-code__copy",3,"click"],["class","mcp-hint mcp-hint--warn",4,"ngIf"],[1,"mcp-prompts"],["type","button","class","mcp-prompt","title","Copy this prompt",3,"click",4,"ngFor","ngForOf"],[1,"fas","fa-magic"],[1,"mcp-flow"],["class","mcp-flow__item",4,"ngFor","ngForOf"],[1,"mcp-label","mcp-flow__try"],[1,"mcp-tools"],[1,"mcp-tools__head"],[1,"mcp-tools__grid"],["class","mcp-group",4,"ngFor","ngForOf"],[1,"mcp-notes"],[1,"mcp-step__title","mcp-notes__title"],[1,"mcp-notes__grid"],[1,"mcp-note__icon"],[1,"fab","fa-linkedin-in"],[1,"fas","fa-envelope-open-text"],[1,"fas","fa-clock"],[1,"fas","fa-comments"],[1,"fas","fa-layer-group"],["type","button","role","tab",1,"mcp-client",3,"click"],[1,"mcp-client__name"],[1,"mcp-client__hint"],[1,"mcp-hint","mcp-hint--warn"],[1,"fas","fa-exclamation-circle"],["type","button","title","Copy this prompt",1,"mcp-prompt",3,"click"],[1,"fas","fa-copy","mcp-prompt__copy"],[1,"mcp-flow__item"],[1,"mcp-flow__icon"],[1,"mcp-flow__title"],[1,"mcp-flow__text"],[1,"mcp-flow__tools"],["class","mcp-tool__name",4,"ngFor","ngForOf"],[1,"mcp-tool__name"],[1,"mcp-group"],[1,"mcp-group__title"],[1,"mcp-group__icon"],[1,"mcp-group__count"],[1,"mcp-group__list"],[4,"ngFor","ngForOf"],["class","mcp-tool__badge",4,"ngIf"],[1,"mcp-tool__desc"],[1,"mcp-tool__badge"]],template:function(t,n){1&t&&(e.TgZ(0,"div",0)(1,"div")(2,"h1",1),e._uU(3,"MCP Server"),e.qZA(),e.TgZ(4,"p",2),e._uU(5,"Connect Quicklead to Claude, Cursor or any MCP client."),e.qZA()()(),e.TgZ(6,"div",3)(7,"section",4)(8,"div",5)(9,"span",6),e._UZ(10,"i",7),e._uU(11," Model Context Protocol"),e.qZA(),e.TgZ(12,"h2",8),e._uU(13,"Let your AI assistant work in your Quicklead account"),e.qZA(),e.TgZ(14,"p",9),e._uU(15," Connect once, then ask in plain language instead of clicking through screens. Your assistant can look up campaigns, contacts and the inbox, and build a new LinkedIn campaign from your website for you to review \u2014 all scoped to your account. "),e.qZA(),e.TgZ(16,"ul",10)(17,"li"),e._UZ(18,"i",11),e._uU(19," You start every campaign"),e.qZA(),e.TgZ(20,"li"),e._UZ(21,"i",12),e._uU(22," Your account only"),e.qZA(),e.TgZ(23,"li"),e._UZ(24,"i",13),e._uU(25," Set up in two minutes"),e.qZA()()(),e.TgZ(26,"span",14),e._UZ(27,"i",15),e.qZA()(),e.TgZ(28,"section",16)(29,"div",17)(30,"span",18),e._uU(31,"1"),e.qZA(),e.TgZ(32,"div")(33,"h3",19),e._uU(34,"Copy your connection details"),e.qZA(),e.TgZ(35,"p",20),e._uU(36,"Your assistant needs the server address and a token that proves it is you."),e.qZA()()(),e.TgZ(37,"div",21)(38,"div",22)(39,"div",23)(40,"label",24),e._uU(41,"Server URL"),e.qZA(),e.TgZ(42,"div",25),e._UZ(43,"input",26),e.TgZ(44,"button",27),e.NdJ("click",function(){return n.copy(n.endpoint,"Server URL")}),e._UZ(45,"i",28),e._uU(46," Copy "),e.qZA()()(),e.TgZ(47,"div",23)(48,"label",29),e._uU(49,"Access token"),e.qZA(),e.TgZ(50,"div",25),e._UZ(51,"input",30),e.TgZ(52,"button",31),e.NdJ("click",function(){return n.toggleTokenVisibility()}),e._UZ(53,"i",32),e.qZA(),e.TgZ(54,"button",33),e.NdJ("click",function(){return n.copy(n.token,"Access token")}),e._UZ(55,"i",28),e._uU(56," Copy "),e.qZA()()()(),e.TgZ(57,"p",34),e._UZ(58,"i",12),e.TgZ(59,"span")(60,"strong"),e._uU(61,"Treat this token like your password."),e.qZA(),e._uU(62," Anyone holding it can read and change your Quicklead data until it expires. Keep it out of shared documents, screenshots and public repositories \u2014 if it leaks, change your password to invali
1date it. "),e.qZA()()()(),e.TgZ(63,"section",16)(64,"div",17)(65,"span",18),e._uU(66,"2"),e.qZA(),e.TgZ(67,"div")(68,"h3",19),e._uU(69,"Set up your AI client"),e.qZA(),e.TgZ(70,"p",20),e._uU(71,"Pick what you use, then copy the configuration across."),e.qZA()()(),e.TgZ(72,"div",21)(73,"div",35),e.YNc(74,_,6,7,"button",36),e.qZA(),e.TgZ(75,"p",37),e._UZ(76,"i",38),e.TgZ(77,"span"),e._uU(78),e.qZA()(),e.TgZ(79,"figure",39)(80,"figcaption",40)(81,"span",41),e._UZ(82,"i")(83,"i")(84,"i"),e.qZA(),e.TgZ(85,"span",42),e._uU(86),e.qZA(),e.TgZ(87,"button",43),e.NdJ("click",function(){return n.copy(n.snippetFor(n.selectedClient),"Configuration")}),e._UZ(88,"i",28),e._uU(89," Copy "),e.qZA()(),e.TgZ(90,"pre")(91,"code"),e._uU(92),e.qZA()()(),e.YNc(93,f,4,0,"p",44),e.qZA()(),e.TgZ(94,"section",16)(95,"div",17)(96,"span",18),e._uU(97,"3"),e.qZA(),e.TgZ(98,"div")(99,"h3",19),e._uU(100,"Ask it something"),e.qZA(),e.TgZ(101,"p",20),e._uU(102,"Restart your client so it picks up the new server, then try one of these."),e.qZA()()(),e.TgZ(103,"div",21)(104,"div",45),e.YNc(105,h,5,1,"button",46),e.qZA()()(),e.TgZ(106,"section",16)(107,"div",17)(108,"span",18),e._UZ(109,"i",47),e.qZA(),e.TgZ(110,"div")(111,"h3",19),e._uU(112,"Build a campaign with your assistant"),e.qZA(),e.TgZ(113,"p",20),e._uU(114," From your website to a draft campaign in one conversation. Your assistant asks before each step. "),e.qZA()()(),e.TgZ(115,"div",21)(116,"ol",48),e.YNc(117,C,12,6,"li",49),e.qZA(),e.TgZ(118,"p",50),e._uU(119,"Try saying"),e.qZA(),e.TgZ(120,"div",45),e.YNc(121,k,5,1,"button",46),e.qZA(),e.TgZ(122,"p",34),e._UZ(123,"i",11),e.TgZ(124,"span")(125,"strong"),e._uU(126,"Nothing is sent until you press Start."),e.qZA(),e._uU(127," Campaigns your assistant builds are saved as drafts under Campaigns, and it cannot start them for you. Importing leads does use your LinkedIn account and today's import credit. "),e.qZA()()()(),e.TgZ(128,"section",51)(129,"div",52)(130,"h3",19),e._uU(131,"What your assistant can do"),e.qZA(),e.TgZ(132,"p",20),e._uU(133),e.qZA()(),e.TgZ(134,"div",53),e.YNc(135,v,9,5,"article",54),e.qZA()(),e.TgZ(136,"section",55)(137,"h3",56),e._uU(138,"Good to know"),e.qZA(),e.TgZ(139,"div",57)(140,"article")(141,"span",58),e._UZ(142,"i",11),e.qZA(),e.TgZ(143,"h4"),e._uU(144,"You stay in control"),e.qZA(),e.TgZ(145,"p"),e._uU(146," Most AI clients ask you before a tool changes or deletes something. Campaigns your assistant builds are saved as drafts, and only you can start them. "),e.qZA()(),e.TgZ(147,"article")(148,"span",58),e._UZ(149,"i",59),e.qZA(),e.TgZ(150,"h4"),e._uU(151,"More than one LinkedIn account?"),e.qZA(),e.TgZ(152,"p"),e._uU(153," Your assistant asks which account to use and sends it with every request, so leads and campaigns land in the right place. "),e.qZA()(),e.TgZ(154,"article")(155,"span",58),e._UZ(156,"i",60),e.qZA(),e.TgZ(157,"h4"),e._uU(158,"Invite notes need Premium"),e.qZA(),e.TgZ(159,"p"),e._uU(160," LinkedIn only sends invite notes from Premium accounts. Your assistant checks this, and keeps notes within your account's length limit. "),e.qZA()(),e.TgZ(161,"article")(162,"span",58),e._UZ(163,"i",61),e.qZA(),e.TgZ(164,"h4"),e._uU(165,"The token expires"),e.qZA(),e.TgZ(166,"p"),e._uU(167," It follows your normal login session. When your assistant starts reporting authentication errors, come back here, copy the new token and update your client. "),e.qZA()(),e.TgZ(168,"article")(169,"span",58),e._UZ(170,"i",62),e.qZA(),e.TgZ(171,"h4"),e._uU(172,"Use names, not ids"),e.qZA(),e.TgZ(173,"p"),e._uU(174," Mention a campaign or list by name and your assistant resolves it to the right id itself, so plain questions work. "),e.qZA()(),e.TgZ(175,"article")(176,"span",58),e._UZ(177,"i",63),e.qZA(),e.TgZ(178,"h4"),e._uU(179,"Pages start at 1"),e.qZA(),e.TgZ(180,"p"),e._uU(181," Listing tools return 10 records per page by default and 50 at most, so a narrow search beats asking for the whole account at once. "),e.qZA()()()()()),2&t&&(e.xp6(43),e.Q6J("value",n.endpoint),e.xp6(8),e.Q6J("value",n.maskedToken),e.xp6(1),e.Q6J("title",n.tokenVisible?"Hide token":"Show token"),e.xp6(1),e.Q6J("ngClass",e.WLB(17,x,n.tokenVisible,!n.tokenVisible)),e.xp6(1),e.Q6J("disabled",!n.token),e.xp6(20
1),e.Q6J("ngForOf",n.clients),e.xp6(4),e.Oqu(n.fileHintFor(n.selectedClient)),e.xp6(8),e.Oqu(n.getSnippetLabel()),e.xp6(6),e.Oqu(n.snippetFor(n.selectedClient)),e.xp6(1),e.Q6J("ngIf",!n.token),e.xp6(12),e.Q6J("ngForOf",n.examplePrompts),e.xp6(12),e.Q6J("ngForOf",n.builderSteps),e.xp6(4),e.Q6J("ngForOf",n.builderPrompts),e.xp6(12),e.lnq(" ",n.tools.length," tools: ",n.tools.length-n.writeCount," look things up and ",n.writeCount," make changes. Ask in plain language \u2014 your assistant picks the right one. "),e.xp6(2),e.Q6J("ngForOf",n.toolGroups))},dependencies:[l.mk,l.sg,l.O5],styles:["[_nghost-%COMP%]{display:block;width:100%}.mcp[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem;width:100%}.mcp-eyebrow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border:1px solid var(--ql-brand-border, #d9dbff);border-radius:999px;background:var(--ql-surface, #fff);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ql-brand-ink, #4a4de0)}.mcp-hero[_ngcontent-%COMP%]{position:relative;overflow:hidden;display:flex;align-items:center;gap:2rem;padding:2rem 2rem 1.85rem;border:1px solid var(--ql-brand-border, #d9dbff);border-radius:20px;background:radial-gradient(70% 130% at 8% -20%,rgba(105,108,255,.18) 0%,rgba(105,108,255,0) 55%),radial-gradient(60% 120% at 95% 0%,rgba(167,139,250,.18) 0%,rgba(167,139,250,0) 55%),linear-gradient(180deg,#fbfbff 0%,#ffffff 70%)}.mcp-hero__text[_ngcontent-%COMP%]{position:relative;max-width:46rem}.mcp-hero__title[_ngcontent-%COMP%]{margin:.85rem 0 .5rem;font-size:1.625rem;font-weight:800;letter-spacing:-.025em;line-height:1.2;color:var(--ql-ink, #2f3349)}.mcp-hero__sub[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;line-height:1.65;color:var(--ql-body, #5a6376)}.mcp-hero__chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.15rem 0 0;padding:0;list-style:none}.mcp-hero__chips[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .75rem;border:1px solid var(--ql-line, #e6e8f0);border-radius:999px;background:rgba(255,255,255,.9);font-size:.8125rem;font-weight:500;color:var(--ql-body, #5a6376)}.mcp-hero__chips[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.6875rem;color:var(--ql-brand, #696cff)}.mcp-hero__mark[_ngcontent-%COMP%]{position:absolute;right:1.5rem;bottom:-1.5rem;font-size:8rem;line-height:1;color:#696cff12;pointer-events:none}.mcp-step[_ngcontent-%COMP%]{border:1px solid var(--ql-line, #e6e8f0);border-radius:18px;background:var(--ql-surface, #fff);box-shadow:0 1px 2px #2f33490d;overflow:hidden}.mcp-step__head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.9rem;padding:1.35rem 1.75rem;border-bottom:1px solid var(--ql-line-soft, #f0f2f7);background:linear-gradient(180deg,#fcfcff 0%,#ffffff 100%)}.mcp-step__num[_ngcontent-%COMP%]{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:linear-gradient(135deg,#7a7dff 0%,#5f62f5 100%);color:#fff;font-size:.875rem;font-weight:800;box-shadow:0 6px 14px #696cff4d}.mcp-step__title[_ngcontent-%COMP%]{margin:0 0 .2rem;font-size:1.0625rem;font-weight:700;letter-spacing:-.01em;color:var(--ql-ink, #2f3349)}.mcp-step__sub[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;line-height:1.5;color:var(--ql-muted, #8a93ad)}.mcp-step__body[_ngcontent-%COMP%]{padding:1.5rem 1.75rem 1.75rem}.mcp-field[_ngcontent-%COMP%] + .mcp-field[_ngcontent-%COMP%]{margin-top:1.1rem}@media (min-width: 1200px){.mcp-fields[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.25rem}.mcp-fields[_ngcontent-%COMP%] .mcp-field[_ngcontent-%COMP%] + .mcp-field[_ngcontent-%COMP%]{margin-top:0}}.mcp-label[_ngcontent-%COMP%]{display:block;margin-bottom:.4rem;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ql-muted, #8a93ad)}.mcp-input[_ngcontent-%COMP%]{display:flex;align-items:stretch;border:1px solid var(--ql-line, #e6e8f0);border-radius:12px;background:var(--ql-canvas, #f7f8fc);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.mcp-input[_ngcontent-%COMP%]:focus-within{border-color:var(--ql-brand-border, #d9dbff);box-shadow:0 0 0 3px #696cff1f}.mcp-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;min-width:0;padding:.7rem .9rem;border:none;background:transparent;font-family:SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.8125rem;color:var(--ql-ink, #2f3349);outline:none;text-overflow:ellipsis}.mcp-icon-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.35rem;padding:0 .9rem;border:none;
1border-left:1px solid var(--ql-line, #e6e8f0);background:var(--ql-surface, #fff);font-size:.8125rem;font-weight:600;color:var(--ql-brand-ink, #4a4de0);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.mcp-icon-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--ql-brand-soft, #eef0ff)}.mcp-icon-btn[_ngcontent-%COMP%]:disabled{color:var(--ql-faint, #b4bbcb);cursor:not-allowed}.mcp-icon-btn--plain[_ngcontent-%COMP%]{color:var(--ql-muted, #8a93ad)}.mcp-warn[_ngcontent-%COMP%], .mcp-hint[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.6rem;margin:1.25rem 0 0;font-size:.8125rem;line-height:1.6;color:var(--ql-body, #5a6376)}.mcp-warn[_ngcontent-%COMP%]{padding:.85rem 1rem;border:1px solid rgba(176,125,23,.25);border-radius:12px;background:var(--ql-warning-soft, #fdf4e3);color:#7a5a10}.mcp-warn[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{margin-top:.15rem;color:var(--ql-warning, #b07d17)}.mcp-hint[_ngcontent-%COMP%]{margin:0 0 1rem;color:var(--ql-muted, #8a93ad)}.mcp-hint[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{margin-top:.2rem;color:var(--ql-brand, #696cff)}.mcp-hint--warn[_ngcontent-%COMP%]{margin:1rem 0 0;color:var(--ql-warning, #b07d17)}.mcp-hint--warn[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{color:var(--ql-warning, #b07d17)}.mcp-clients[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:1.25rem}.mcp-client[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.9rem 1rem;border:1px solid var(--ql-line, #e6e8f0);border-radius:14px;background:var(--ql-surface, #fff);text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease}.mcp-client[_ngcontent-%COMP%]:hover{border-color:var(--ql-brand-border, #d9dbff);transform:translateY(-2px)}.mcp-client[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]{margin-bottom:.45rem;font-size:.9375rem;color:var(--ql-brand, #696cff)}.mcp-client__name[_ngcontent-%COMP%]{font-size:.875rem;font-weight:700;color:var(--ql-ink, #2f3349)}.mcp-client__hint[_ngcontent-%COMP%]{font-size:.75rem;color:var(--ql-muted, #8a93ad)}.mcp-client.is-active[_ngcontent-%COMP%]{border-color:var(--ql-brand, #696cff);background:linear-gradient(160deg,#f4f4ff 0%,#ffffff 100%);box-shadow:0 0 0 3px #696cff1f}.mcp-code[_ngcontent-%COMP%]{margin:0;border-radius:14px;overflow:hidden;background:#1b1f30;box-shadow:0 12px 30px #181b2a38}.mcp-code__bar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem .6rem 1rem;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.07)}.mcp-code__dots[_ngcontent-%COMP%]{display:flex;gap:.3rem}.mcp-code__dots[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.16)}.mcp-code__file[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.75rem;color:#ffffff8c}.mcp-code__copy[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;padding:.35rem .7rem;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(255,255,255,.06);font-size:.75rem;font-weight:600;color:#fff;cursor:pointer;transition:background .15s ease}.mcp-code__copy[_ngcontent-%COMP%]:hover{background:rgba(255,255,255,.14)}.mcp-code[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:0;padding:1.1rem 1.15rem;white-space:pre-wrap;word-break:break-all;font-family:SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.8125rem;line-height:1.7;color:#e6e9f5}.mcp-code[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:none;padding:0;color:inherit}.mcp-prompts[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.65rem}.mcp-prompt[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.6rem;padding:.8rem .95rem;border:1px solid var(--ql-line, #e6e8f0);border-radius:12px;background:var(--ql-surface, #fff);font-size:.8125rem;line-height:1.45;text-align:left;color:var(--ql-body, #5a6376);cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease}.mcp-prompt[_ngcontent-%COMP%]:hover{border-color:var(--ql-brand-border, #d9dbff);background:var(--ql-brand-soft, #eef0ff);color:var(--ql-ink, #2f3349)}.mcp-prompt[_ngcontent-%COMP%] > i[_ngcontent-%COMP%]:first-child{flex-shrink:0;font-size:.75rem;color:var(--ql-brand, #696cff)}.mcp-prompt[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1}.mcp-prompt__copy[_ngcontent-%COMP%]{flex-shrink:0;font-size:.6875rem;color:var(--ql-faint, #b4bbcb)}.mcp-prompt[_ngcontent-%COMP%]:hover .mcp-prompt__copy[_ngcontent-%COMP%]{color:var(--ql-brand, #696cff)}.mcp-tools[_ngcontent-%COMP%]{border:1px solid var(--ql-line, #e
16e8f0);border-radius:18px;background:var(--ql-surface, #fff);box-shadow:0 1px 2px #2f33490d;overflow:hidden}.mcp-tools__head[_ngcontent-%COMP%]{padding:1.35rem 1.75rem;border-bottom:1px solid var(--ql-line-soft, #f0f2f7);background:linear-gradient(180deg,#fcfcff 0%,#ffffff 100%)}.mcp-tools__grid[_ngcontent-%COMP%]{column-count:2;column-gap:0;column-rule:1px solid var(--ql-line-soft, #f0f2f7);background:var(--ql-surface, #fff)}.mcp-group[_ngcontent-%COMP%]{break-inside:avoid;padding:1.35rem 1.75rem 1.5rem}.mcp-group[_ngcontent-%COMP%] + .mcp-group[_ngcontent-%COMP%]{border-top:1px solid var(--ql-line-soft, #f0f2f7)}.mcp-group__title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.55rem;margin:0 0 1rem;font-size:.9375rem;font-weight:700;color:var(--ql-ink, #2f3349)}.mcp-group__icon[_ngcontent-%COMP%]{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#eef0ff 0%,#f4f0ff 100%);color:var(--ql-brand, #696cff);font-size:.75rem}.mcp-group__count[_ngcontent-%COMP%]{margin-left:auto;padding:.12rem .5rem;border-radius:999px;background:var(--ql-line-soft, #f0f2f7);font-size:.6875rem;font-weight:700;color:var(--ql-muted, #8a93ad)}.mcp-group__list[_ngcontent-%COMP%]{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.9rem}.mcp-group__list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] + li[_ngcontent-%COMP%]{padding-top:.9rem;border-top:1px solid var(--ql-line-soft, #f0f2f7)}.mcp-tool__name[_ngcontent-%COMP%]{display:inline-block;padding:.12rem .4rem;border-radius:6px;background:var(--ql-brand-soft, #eef0ff);font-family:SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.75rem;font-weight:600;color:var(--ql-brand-ink, #4a4de0)}.mcp-tool__desc[_ngcontent-%COMP%]{margin:.4rem 0 0;font-size:.8125rem;line-height:1.55;color:var(--ql-body, #5a6376)}.mcp-tool__badge[_ngcontent-%COMP%]{margin-left:.4rem;padding:.1rem .45rem;border-radius:999px;background:var(--ql-warning-soft, #fdf4e3);font-size:.6875rem;font-weight:600;color:#7a5a10}.mcp-step__num[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.75rem}.mcp-flow[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;margin:0 0 1.5rem;padding:0;list-style:none}.mcp-flow__item[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.8rem;padding:1rem 1.1rem;border:1px solid var(--ql-line, #e6e8f0);border-radius:14px;background:var(--ql-canvas, #f7f8fc)}.mcp-flow__icon[_ngcontent-%COMP%]{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:11px;background:linear-gradient(135deg,#eef0ff 0%,#f4f0ff 100%);color:var(--ql-brand, #696cff);font-size:.8125rem}.mcp-flow__title[_ngcontent-%COMP%]{margin:0 0 .25rem;font-size:.9rem;font-weight:700;color:var(--ql-ink, #2f3349)}.mcp-flow__title[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--ql-brand, #696cff)}.mcp-flow__text[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;line-height:1.55;color:var(--ql-body, #5a6376)}.mcp-flow__tools[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.3rem;margin:.55rem 0 0}.mcp-flow__try[_ngcontent-%COMP%]{margin-bottom:.6rem}.mcp-notes__title[_ngcontent-%COMP%]{margin-bottom:1rem}.mcp-notes__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.mcp-notes__grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{padding:1.25rem 1.35rem 1.35rem;border:1px solid var(--ql-line, #e6e8f0);border-radius:16px;background:var(--ql-surface, #fff);box-shadow:0 1px 2px #2f33490d}.mcp-note__icon[_ngcontent-%COMP%]{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#eef0ff 0%,#f4f0ff 100%);color:var(--ql-brand, #696cff);font-size:.8125rem}.mcp-notes__grid[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:.8rem 0 .3rem;font-size:.9375rem;font-weight:700;color:var(--ql-ink, #2f3349)}.mcp-notes__grid[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;line-height:1.6;color:var(--ql-body, #5a6376)}@media screen and (max-width: 991px){.mcp-clients[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.mcp-tools__grid[_ngcontent-%COMP%]{column-count:1}.mcp-hero__mark[_ngcontent-%COMP%]{display:none}}@media screen and (max-width: 767px){.mcp-hero[_ngcontent-%COMP%], .mcp-step__head[_ngcontent-%COMP%], .mcp-step__body[_ngcontent-%COMP%], .mcp-tools__head[_ngcontent-%COMP%], .mcp-group[_ngcontent-%COMP%]{padding:1.25rem}.mcp-hero__title[_ngcontent-%COMP%]{font-size:1.375rem}.mcp-clients[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.mcp-input[_ngcontent-%COMP%]{flex-wrap:wrap}.mcp-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex-basis:100%;
1border-bottom:1px solid var(--ql-line, #e6e8f0)}.mcp-icon-btn[_ngcontent-%COMP%]{flex:1;justify-content:center;padding:.6rem;border-left:none}.mcp-icon-btn[_ngcontent-%COMP%] + .mcp-icon-btn[_ngcontent-%COMP%]{border-left:1px solid var(--ql-line, #e6e8f0)}}"]}),o})()}];let Z=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[d.Bz.forChild(w),d.Bz]}),o})();var A=r(3303);let M=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[l.ez,Z,A.m]}),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.