1"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9031],{28453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>a});var o=s(96540);const t={},r=o.createContext(t);function i(e){const n=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),o.createElement(r.Provider,{value:n},e.children)}},46608:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"developer-tools/mcp-servers","title":"MCP Servers","description":"The Model Context Protocol (MCP) extends CLI agents with specialized capabilities\u2014code research, web grounding, browser automation. While IDE-based assistants (Copilot\'s agent mode in VS Code, Zed, Cursor) increasingly ship these capabilities, CLI agents (Claude Code, Copilot CLI, Aider) rely on MCP servers to add functionality beyond basic file operations \u2014 MCP is now the shared extension standard across both surfaces.","source":"@site/docs/developer-tools/mcp-servers.md","sourceDirName":"developer-tools","slug":"/developer-tools/mcp-servers","permalink":"/developer-tools/mcp-servers","draft":false,"unlisted":false,"editUrl":"https://github.com/agenticoding/agenticoding.github.io/tree/main/website/docs/developer-tools/mcp-servers.md","tags":[],"version":"current","lastUpdatedAt":1791191121000,"frontMatter":{"title":"MCP Servers"},"sidebar":"tutorialSidebar","previous":{"title":"Modern CLI Tools","permalink":"/developer-tools/cli-tools"},"next":{"title":"About","permalink":"/about"}}');var t=s(74848),r=s(28453);const i={title:"MCP Servers"},a=void 0,l={},d=[{value:"Code Research",id:"code-research",level:2},{value:"ChunkHound",id:"chunkhound",level:3},{value:"Browser Automation",id:"browser-automation",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"https://modelcontextprotocol.io",children:"Model Context Protocol (MCP)"})," extends CLI agents with specialized capabilities\u2014code research, web grounding, browser automation. While IDE-based assistants (Copilot's agent mode in VS Code, Zed, Cursor) increasingly ship these capabilities, CLI agents (Claude Code, Copilot CLI, Aider) rely on MCP servers to add functionality beyond basic file operations \u2014 MCP is now the shared extension standard across both surfaces."]}),"\n",(0,t.jsx)(n.p,{children:"These MCP servers address the critical gaps in AI-assisted development workflows."}),"\n",(0,t.jsx)(n.h2,{id:"code-research",children:"Code Research"}),"\n",(0,t.jsx)(n.h3,{id:"chunkhound",children:"ChunkHound"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://chunkhound.ai",children:"ChunkHound"})," provides semantic code search and structured sub-agent research for large codebases."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"What it does:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Multi-hop semantic search through code relationships"}),"\n",(0,t.jsx)(n.li,{children:"Hybrid semantic + symbol search (conceptual discovery, then exhaustive regex)"}),"\n",(0,t.jsxs)(n.li,{children:["Map-reduce synthesis with architectural relationships and ",(0,t.jsx)(n.code,{children:"file:line"})," citations"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"When to use it:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"10,000-100,000 LOC:"})," Valuable when repeatedly connecting components across the codebase"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"100,000+ LOC:"})," Highly valuable as autonomous agents show incomplete findings"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"1,000,000+ LOC:"})," Essential\u2014only approach with progressive aggregation at extreme scale"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Key trade-off:"})," Higher token cost (1-2x) vs autonomous search, but maintains first-iteration accuracy through context isolation."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Installation:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",metastring:'narration="ChunkHound is installed as a standalone command-line tool with the uv package manager, so it lives in its own environment instead of your project. Provider selection and API key configuration are completed separately before first use."',children:"uv tool install chunkhound\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Requires Python 3.10+ and the uv package manager. See ",(0,t.jsx)(n.a,{href:"https://github.com/chunkhound/chunkhound",children:"ChunkHound on GitHub"})," for API key configuration and setup details."]}),"\n",(0,t.jsx)(n.p,{children:"ChunkHound exposes its tools over stdio. Register it with pi's built-in MCP client:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",metastring:'narration="One
1command registers ChunkHound with pi. The server talks stdio, so pi launches the chunkhound binary itself and keeps it out of the prompt until research asks for it."',children:"pi mcp add chunkhound -- chunkhound mcp\n"})}),"\n",(0,t.jsxs)(n.p,{children:["MCP is a built-in extension in pi 1.0, so no adapter package is involved. Server tools default to ",(0,t.jsx)(n.code,{children:"codemode"})," exposure: their schemas stay out of the fixed prompt, and ",(0,t.jsx)(n.code,{children:"codemode"})," scripts or ",(0,t.jsx)(n.code,{children:"tool_search"})," reach them on demand. See ",(0,t.jsx)(n.a,{href:"https://pi.dev/docs/latest/mcp",children:"pi MCP servers"})," for configuration, exposure modes, and OAuth."]}),"\n",(0,t.jsxs)(n.p,{children:["ChunkHound also handles web research \u2014 searching documentation, CVEs, changelogs, and current information beyond training data. Multi-source grounding is described in ",(0,t.jsx)(n.a,{href:"/workflow-grounding#phase-1-grounding",children:"Grounding"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"browser-automation",children:"Browser Automation"}),"\n",(0,t.jsxs)(n.p,{children:["Browser automation for AI agents is handled by the ",(0,t.jsx)(n.strong,{children:"agent-browser CLI"}),"\u2014a purpose-built tool that delivers consistently better results than MCP-based alternatives."]}),"\n",(0,t.jsxs)(n.p,{children:["See ",(0,t.jsx)(n.a,{href:"/developer-tools/cli-tools#agent-browser",children:"agent-browser in CLI Tools"})," for installation and usage."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Why CLI over MCP for browser automation:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Better results:"})," Ref-based accessibility tree produces deterministic, reliable element selection"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Token efficient:"})," 500-2000 tokens per snapshot vs 5,000-15,000 for MCP DOM dumps"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Simpler setup:"})," No MCP configuration, works with any shell-capable agent"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Faster iteration:"})," Native Rust CLI with instant command parsing"]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{title:"Deprecated: MCP Browser Servers",type:"note",children:(0,t.jsx)(n.p,{children:"Previous recommendations included Playwright MCP and Chrome DevTools MCP. These are now deprecated for agentic workflows\u2014agent-browser's ref-based approach delivers more reliable automation with lower token overhead. The MCP servers remain available for legacy integrations but are not recommended for new projects."})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Related Course Content:"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"/reliability-levers",children:"Reliability Levers"})," - Multi-agent workflows that leverage MCP capabilities"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}}}]);
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.