9 Best MCP Servers for Claude Code in 2026 A hands-on review of nine MCP servers for Claude Code found that E2B's standalone MCP server is no longer actively maintained, despite appearing on multiple ranked 'best of 2026' lists. The review, based on actual installation and testing, emphasizes that connecting too many servers degrades tool selection quality and that star counts do not reflect real-world usability. EODHD's official MCP server, offering 72 read-only tools across 150,000+ tickers and 70+ exchanges, is highlighted as a top choice for financial data. Most “best MCP servers” lists are GitHub star counts with paragraphs attached. This one comes from actually running each server against Claude Code, including the one that turned out to be abandoned. Search “best MCP servers for Claude Code” and count how many of the top results are directories. I did. Half the first page is a leaderboard, an awesome-list, or a marketplace with install counts. The editorial results mostly re-rank the same GitHub repos by stars, which tells you what other developers clicked, not what survives contact with a real project. So I installed them. Every server below went into an actual Claude Code session on an actual repository, and I checked whether the tools registered, whether auth worked, and whether Claude Code chose to call them without being told twice. If you’re: this is the list. Every MCP server you connect costs you context. When Claude Code starts a session, it loads the tool schemas from every configured server. A server with 70 tools does not sit quietly until you need it. It occupies space in the same window your codebase is competing for. Connect eight servers and you get a measurable drop in tool selection quality. The agent has more options and less room to reason about them. I’ve watched Claude Code reach for a browser automation tool when a plain file read would have worked, purely because the tool list had gotten crowded. The directories never mention this. They’re incentivized to list more, not less. There’s a second problem. Nobody checks whether the thing still works. While testing for this article, I found that E2B’s standalone MCP server repository carries a public notice that the project is no longer actively maintained. It appears on multiple ranked “best of 2026” lists with no such caveat. That’s what happens when a list is assembled from stars instead of installs. It’s whether the server earns its context. A good MCP server for Claude Code does one job the agent genuinely cannot do on its own, exposes a small number of well-described tools, and authenticates without you pasting a key into a config file. That’s the standard I used. Not tool count, not GitHub stars, not how many marketplaces list it. Same process for all nine: Step 4 is the one most guides skip. A server that connects but never gets chosen is dead weight. Want the setup I actually run? I keep a short list of the three servers that stay connected across every project, plus the CLAUDE.md rules that make Claude Code use them.→More on my technical writing and projects If you build anything that touches markets, this is the server that removes an entire integration layer. EODHD’s official MCP server exposes 72 read-only tools covering historical prices, fundamentals, technical indicators, news sentiment, US options, Treasury rates, ESG, and macro indicators, across 150,000+ tickers and 70+ exchanges. The official MCP documentation https://eodhd.com/financial-apis/mcp-server-for-financial-data-by-eodhd lists two versions with identical tools. The only difference is how you authenticate: v1 API key : https://mcp.eodhd.com/v1/mcp?apikey=YOUR API KEYv2 OAuth 2.1 : https://mcp.eodhd.com/v2/mcp For Claude Code, the cleanest route is the official plugin https://github.com/EodHistoricalData/eodhd-claude-skills , which ships an .mcp.json pointing at the v2 OAuth endpoint alongside workflow skills and slash commands: /plugin marketplace add anthropics/claude-plugins-community/plugin install eodhd-api@claude-community Two design decisions here are worth stealing if you ever build your own MCP server. First, resolve ticker. It converts a company name, partial ticker, or ISIN into the correct SYMBOL.EXCHANGE format, so "Deutsche Bank" becomes DBK.XETRA rather than a failed lookup. When a company trades on several exchanges it returns the alternatives instead of guessing. This is the single most common failure point in financial agents and they solved it at the protocol level. Second, retrieve description by id. The server embeds 100+ pages of EODHD's own API documentation as MCP resources, so the agent can look up endpoint parameters and plan coverage without consuming API calls . Most servers make the model guess at parameters or burn a request to find out. This one hands it the manual for free. There are also three prompt templates that chain multiple tools into finished workflows: analyze stock, compare stocks, and market overview. Both server versions are open source if you want to read the implementation or run it locally: v1 API key https://github.com/EodHistoricalData/EODHD-MCP-Server and v2 OAuth https://github.com/EodHistoricalData/EODHD-MCP-Server-v2 . Worth checking the pricing tiers https://eodhd.com/pricing before you wire it into anything, since tool access is gated by plan. Pros Cons Best for: Fintech projects, portfolio tooling, and any analysis where you’d otherwise write another requests.get wrapper. Building with financial data? EODHD gives Claude Code 72 read-only tools across 150,000+ tickers and 70+ exchanges, with embedded docs that cost zero API calls. Free plan available to test the MCP server before you commit.→Get your free EODHD API key Context7 pulls version-specific documentation and code examples from source repositories into your prompt. Instead of Claude Code writing against whatever it absorbed during training, it writes against the docs as they exist today. This is the highest-leverage server on the list. Hallucinated API signatures are the most common way agentic coding wastes your afternoon, and this addresses the cause rather than the symptom. Install for all projects: claude mcp add --scope user context7 -- npx -y @upstash/context7-mcp --api-key YOUR API KEY Or connect to the hosted endpoint instead of spawning a local process: claude mcp add --scope user \ --header "CONTEXT7 API KEY: YOUR API KEY" \ --transport http context7 https://mcp.context7.com/mcp It exposes two tools: resolve-library-id to match a library name to a Context7 identifier, and query-docs to fetch the documentation. Two tools is the right number. There’s also a Claude Code plugin https://context7.com/docs/clients/claude-code that installs a skill alongside the MCP server, which triggers documentation lookups automatically instead of requiring you to type “use context7” every time. The library index https://context7.com/ is worth browsing first to check your stack is covered. Pros Cons Best for: Anyone who has debugged code an AI wrote against a version of the library that no longer exists. Claude Code forgets your project between sessions. Mem0 connects it to a hosted memory layer with semantic search, so the architectural decision you explained three weeks ago is still there. Single command: npx mcp-add \ --name mem0-mcp \ --type http \ --url "https://mcp.mem0.ai/mcp/" \ --clients "claude code" That gives you the MCP tools. The full plugin from the marketplace adds lifecycle hooks that capture learnings automatically at session boundaries, which is the version you actually want. The MCP-only install requires you to trigger memory operations manually. One behavioral note worth knowing: the plugin does not inject memories before every single response. It installs a decision rubric at session start and lets the agent decide when to search. That’s a deliberate design choice to avoid burning context on irrelevant recall, and it means results depend on how well your CLAUDE.md tells the agent when memory matters. Your user ID derives deterministically from your API key, so the same key gives you the same memory identity across machines. The Claude Code integration docs https://docs.mem0.ai/integrations/claude-code cover the lifecycle hooks in detail, and there’s a walkthrough on their blog https://mem0.ai/blog/claude-code-memory comparing it against Claude Code’s built-in memory. Pros Cons Best for: Long-running projects where you keep re-explaining the same architectural decisions. The official Qdrant MCP server turns a vector database into a semantic memory layer for Claude Code. Store code snippets with natural language descriptions, then retrieve them by meaning rather than by keyword. The configuration is more involved than the others, because you’re describing to the agent what the tools are for: claude mcp add code-search \ -e QDRANT URL="http://localhost:6333" \ -e COLLECTION NAME="code-repository" \ -e EMBEDDING MODEL="sentence-transformers/all-MiniLM-L6-v2" \ -e TOOL STORE DESCRIPTION="Store code snippets with descriptions. The 'information' parameter should contain a natural language description of what the code does, while the actual code should be included in the 'metadata' parameter as a 'code' property." \ -- uvx mcp-server-qdrant Those tool descriptions are not decoration. They’re how Claude Code decides when to call qdrant-store versus qdrant-find, and the defaults are generic enough that customizing them changes the hit rate noticeably. Set QDRANT READ ONLY if you only want retrieval and no writes. The official repository https://github.com/qdrant/mcp-server-qdrant documents every environment variable, and Qdrant ran a live session using it with Claude Code https://qdrant.tech/blog/webinar-vibe-coding-rag/ that shows the store-then-retrieve loop in practice. Pros Cons Best for: Large codebases where finding the existing implementation is harder than writing a new one. Claude Code cannot check a competitor’s pricing page or read documentation that lives behind JavaScript rendering. Browserbase gives it a cloud browser with Stagehand-powered automation on top. claude mcp add --transport http browserbase \ "https://mcp.browserbase.com/mcp?browserbaseApiKey=YOUR BROWSERBASE API KEY" The hosted Streamable HTTP transport is the recommended path. There’s a local stdio option through @browserbasehq/mcp if you need it, though note that the older reference implementation repository is archived, so use the current documented setup rather than a config you found in an old blog post. The tool surface is small and well scoped: create a session, navigate, act, observe, extract, end. Six verbs that map cleanly onto how you’d describe browsing to a person. Their setup docs https://docs.browserbase.com/integrations/mcp/setup list the current options, and the automation layer underneath is Stagehand https://github.com/browserbase/stagehand , which is worth reading separately if you build browser agents. Pros Cons Best for: Research tasks, competitive monitoring, and anything where the data only exists on a rendered page. Most MCP servers assume one user, your machine, your API key in a config file. Arcade.dev takes a different position: it’s a gateway that handles OAuth on behalf of end users, so a tool can act as you against Gmail or GitHub without the model ever seeing the token. Add a gateway as a remote HTTP server in Claude Code, then ask it to use one of the tools from that gateway. The same gateway URL works across Claude Code, Claude Desktop, Cursor, VS Code, and ChatGPT, which means configuring once instead of repeating the setup for every client. For building your own, the arcade-mcp Python framework is genuinely pleasant: python from arcade mcp server import Context, MCPAppfrom arcade mcp server.auth import Reddit app = MCPApp python @app.tool requires auth=Reddit scopes= "read" async def get posts context: Context, subreddit: str - str: token = context.get auth token or empty the LLM never sees this token ... Then point Claude Desktop at it: arcade configure claude The auth model is the differentiator. The token gets injected into the tool’s context at execution time, never into the conversation. Their Claude Code guide https://docs.arcade.dev/en/get-started/mcp-clients/claude-code covers gateway setup, and the arcade-mcp framework https://github.com/ArcadeAI/arcade-mcp is one of the better-documented references if you’re writing your own server in Python. Pros Cons Best for: Teams, or anyone whose agent needs to act against services that require real user credentials. Composio inverts the usual model. Instead of connecting a separate MCP server per application, you connect one Tool Router endpoint that loads tools on demand from a large catalog. The pitch addresses the context problem directly: rather than every tool schema sitting in your window from session start, the router serves the tools relevant to the current task. It also handles the OAuth flows for each connected service, which is the part that makes most multi-app setups tedious. In practice, this is the pragmatic choice when you need Claude Code to touch five or six SaaS products and you don’t want five or six auth configurations. Browse the toolkit catalog https://composio.dev/toolkits to check your integrations exist before committing to the approach. Pros Cons Best for: Workflows spanning several SaaS products where per-app MCP setup would take a full afternoon. DataForSEO puts live search data behind an MCP interface: Google, Bing, and Yahoo SERPs, keyword volumes and CPC, backlink profiles, on-page crawls, domain analytics, and business listings. Remote install, which is the path their docs recommend: claude mcp add --header "Authorization: Basic