The MCP Servers I Actually Use
mcp ai tools github docker howto
2025-04-22
The Model Context Protocol (MCP) ecosystem is changing quickly. While experimentation is interesting, I've found myself settling on a core set of MCP servers that I use day-to-day to when writing software with AI. These are the ones that have stuck:
Github MCP server
I primarily use the Github MCP server because it's the canonical implementation from Github itself. While you can run it in various ways, I prefer the statically compiled Go binary for simplicity. Building it is straightforward:
$ git clone https://github.com/github/github-mcp-server.git
$ cd github-mcp-server/cmd/github-mcp-server
$ go build .
$ cp ./github-mcp-server ~/.local/bin # or whatever is in your $PATH
It's great to be able to sign off an AI coding session with a natural language instruction like "commit the changes with message 'feat: Implement new widget', push the branch, open a PR against main, and write a brief PR description of the changes." This smooths the transition from AI interaction back to standard Git workflow.
I also find it really useful for manipulating branches in more complex ways directly from a text description, saving time digging through Git commands for less common operations.
Fetch
Often, I want to do my own research or find specific documentation before bringing the content into an AI session for analysis or summarization. The Fetch server is perfect for this.
It effectively replaces a manual step I used to perform with curl
piped into the excellent trafilatura Python library to extract main content and convert it to Markdown. Fetch handles fetching the URL and transforming the relevant content into clean Markdown automatically, ready for the AI.
As a small bonus, I also appreciate that Fetch is honest about its identity in its User-Agent
string.
Docker
My use case for the Docker MCP server is quite specific: discovery and use of docker-compose.yml files within a project.
While Claude Code is generally good at figuring out how to start a project, it's not perfect, especially in the presence of Makefile
, which Claude seems to treat at the only possible entrypoint into a running solution. This server's ability to discover and use docker-compose.yml
files is a useful fallback for quickly getting services running, especially in unfamiliar codebases, directly from the AI interface. It bridges that gap when the AI's initial setup instructions might be slightly off or incomplete.