Writing /MCP servers /2026-07-27

The Best MCP Servers for Developers in 2026: A Curated Guide

There are hundreds of MCP servers now. Most aren't worth your time. These are the ones I use, have built, or would recommend to another developer who ships code daily.

Written by
Read time
8 minutes
Topic
MCP servers

There are hundreds of MCP servers now. Most of them are weekend projects that break on edge cases. Someone reads the spec, builds a wrapper around an API, publishes it to GitHub, and moves on. That’s fine for learning, but it’s not fine for a workflow you depend on daily.

This is not a comprehensive directory. It’s the servers I’ve used, tested, or built, organized by what problem they solve. If something isn’t here, it either didn’t meet my bar or I haven’t spent enough time with it to have an opinion.

Code Intelligence

When you’re pairing with an AI agent on a real codebase, the agent needs to understand your code at a structural level instead of grepping through files.

Scry is one I built specifically for this problem. It pre-computes a full code index (definitions, references, callers, callees, implementations) and serves queries in under 10ms. The speed matters because agents make dozens of lookups per task, and if each one takes 2 seconds, the whole session drags. Best for agent-heavy coding workflows where you need the AI to understand call graphs and symbol relationships. I wrote about the design decisions in Building Scry.

GitHub MCP Server (official) handles repository access, PR management, issue tracking, and code search across your GitHub organizations. It’s well-maintained by GitHub’s team, the tool descriptions are clear, and it handles pagination correctly. That sounds basic, and plenty of community servers still get it wrong. If you touch PRs or issues at all, start here.

Database and Data

Every non-trivial project has a database, and agents need to understand your schema to write correct queries.

Tome is another one I built. It does live schema introspection with foreign key navigation. You point it at a database and it tells the agent about tables, columns, relationships, enums, and constraints, without the agent running raw SQL to find out. Best for any database-backed project where you want the agent to write correct queries on the first try. You can find it on GitHub.

PostgreSQL MCP Server (community) gives you direct SQL query execution through MCP. It works, and it’s useful when you need the agent to run queries rather than just understand the schema. Configure it with read-only credentials. I’ve watched someone hand an MCP server production write access and then be surprised when an agent dropped a table while poking around.

Git and Version Control

Git history is one of the most underused sources of context for AI agents. The code tells you what. The history tells you why.

Lore is pre-indexed git intelligence: blame, co-change analysis, contributor history, and commit intent. I built it because agents kept running raw git log commands and getting back walls of text they couldn’t parse efficiently. Lore structures that data so the agent can answer questions like “who last changed this function and why” or “what files usually change together with this one” in milliseconds. Best for understanding why code is the way it is.

Git MCP Server (official reference implementation) covers basic git operations: status, diff, commit, branch management. It’s fine for simple workflows where the agent needs to commit code or check what’s changed. Nothing fancy, but reliable.

Web and APIs

Agents need web access for documentation lookups, API exploration, and data gathering. The quality gap between servers here is enormous.

Trawl is tiered web scraping designed for AI pipelines. It starts with fast HTTP fetching, falls back to headless Chrome for JavaScript-rendered pages, and outputs clean markdown that fits well in context windows. It handles rate limiting, respects robots.txt, and doesn’t choke on modern SPAs. Best for any workflow where the agent needs to pull information from the web. I covered the architecture in Building Trawl.

Fetch MCP Server (official reference) does simple HTTP fetching. It’s fine for hitting APIs that return JSON, but it falls over on anything that requires JavaScript rendering or cookie handling. Use it for simple cases, reach for something more capable when you need it.

Communication and Productivity

These are the glue servers that connect your AI workflows to the tools your team uses.

Slack MCP Server lets agents read channels, search message history, and post messages. Useful for building automation that responds to questions in Slack or summarizes channel activity. The official one from Slack’s team is solid.

Linear MCP Server handles issue management, which means creating, updating, and querying issues and projects. If your team uses Linear for project tracking, this lets agents file bugs, update status, and pull context about what’s being worked on. The tool descriptions are well-written, which means agents pick the right tool without much prompting.

Infrastructure

This category comes with a warning: giving AI agents access to infrastructure tools is powerful and dangerous in roughly equal measure.

Docker MCP Server handles container management: listing containers, reading logs, starting and stopping services. Useful for local development workflows where you want the agent to check if a service is running or restart a crashed container.

Kubernetes MCP Server provides cluster operations: pods, deployments, services, logs. In a dev cluster it is great for debugging. In production, one bad agent decision takes down services, so gate it behind read-only RBAC and leave delete permissions off until you have thought about the blast radius.

What Makes a Good MCP Server

After building several and evaluating dozens more, here’s what I look for:

Tool descriptions that help the agent decide. The description isn’t documentation for humans. It’s decision-making context for the model. A good description tells the agent when to use this tool versus alternatives. A bad one just says what the tool does mechanically.

Structured return formats. Agents parse structured data far more reliably than free-form text. Servers that return well-organized JSON or typed objects produce better downstream reasoning than servers that return raw text dumps.

Fast response times. Agents make many tool calls per task. If your server takes 3 seconds per call, a 20-call task just added a minute of wall-clock time. Sub-second responses keep the workflow feeling interactive.

Good error handling. When something fails, the error message should tell the agent what went wrong and whether retrying makes sense. “Internal server error” is useless. “Rate limited, retry after 2 seconds” is actionable.

Narrow scope. The best servers do one thing well. Servers that try to be a Swiss Army knife usually have tools that overlap confusingly, and the agent wastes time picking between them.

What to Avoid

Servers with overly broad tool permissions. If a server’s tool list includes “execute arbitrary command” or “write to any file path,” think carefully about whether you trust the agent’s judgment in all possible contexts. Scope tools narrowly.

Servers that require API keys you’re uncomfortable sharing. Your MCP server configuration file contains every secret those servers need. A server holding your AWS root credentials or a GitHub token with delete permissions is one bad tool call from ruining your week.

Servers that haven’t been updated in months. MCP is evolving fast. The protocol has had several meaningful updates in 2026 alone. A server that was last touched in 2025 probably doesn’t handle current protocol features correctly, and it definitely hasn’t been tested against recent client implementations.

Servers with no error handling. Call a tool with bad input and see what happens. If you get an unhandled exception or a timeout with no message, move on. The agent will get stuck in retry loops with servers that don’t communicate failures clearly.

Build Your Own

Half the servers I rely on are ones I wrote, not because the public ones are bad but because I know my own workflow better than someone building for the general case.

If you have a repetitive task that fetches data from somewhere, transforms it, and hands it to an agent, that’s a server waiting to be built. The protocol is simple enough that you can have something running in an afternoon.

I wrote a complete guide to building MCP servers in Go that covers the architecture, the SDK, testing, and deployment. Go is my language of choice for this because the servers end up as single static binaries with no runtime dependencies, but the same principles apply regardless of what language you use.

The ecosystem is young enough that a lot of the obvious tools still don’t exist. If an existing server keeps annoying you in the same specific way, that’s usually worth an afternoon.

Questions

What are the best MCP servers for developers?

The best MCP servers depend on your workflow, but top picks include GitHub MCP Server for repository management, Scry for code intelligence, Tome for database schema introspection, and Trawl for web scraping. The key differentiator is whether the server was built for production use or is a weekend project that breaks on edge cases.

What MCP servers should I install first?

Start with the servers that match your daily workflow. If you write code with AI agents, a code intelligence server like Scry or the GitHub MCP Server is essential. If you work with databases, Tome or the PostgreSQL MCP Server will save you time. Add more as you hit friction points, not before.

Is there a list of recommended MCP servers?

The official MCP server registry and community directories list hundreds of servers, but most of them are unmaintained. This guide covers the servers that have proven reliable in daily production use across code intelligence, databases, git, web scraping, communication, and infrastructure categories.

How do I choose between similar MCP servers?

Evaluate MCP servers on five criteria: quality of tool descriptions (does the agent know when to use it?), response time (sub-second matters), structured error handling, scope (servers that try to do too much are usually bad at everything), and maintenance activity. A server that hasn't been updated in three months is a liability.

A draft for Jeff

Review and edit this message. Nothing has been sent. Opening your email app gives you another chance to review before sending.

Open in your email app ↗

To jeff@hooton.codes · Closing this draft discards it.