Ten MCP Servers Worth Installing First, in Priority Order for Developers
A ranked starter set of MCP servers for AI coding assistants, from Context7 and GitHub to Postgres and memory, with install configs and permission cautions.
This article is published in English.
Sources: Stop Installing Random MCP Servers. Start With These 10.
At first MCP servers felt like magic. In a few months there was a server for GitHub, Postgres, browser automation, memory, documentation and scraping, and one for nearly every other developer tool. The first instinct is to install all of them and expect an unstoppable assistant.
Real projects don't work that way. An agent handed too many tools doesn't get better by default. It can get slower, more confused and riskier. What pays off is giving the assistant the right context at the right moment, and the count of servers has little to do with it.
What follows is a priority order for developers who want an assistant that understands their project, reads current documentation, inspects code, debugs browser problems, works with GitHub, queries databases and helps ship software.
What MCP is
MCP stands for Model Context Protocol. In one line, it's a standard way of connecting AI assistants to outside tools, data and systems.
Without it, an assistant mostly depends on whatever gets pasted into the chat. It can explain code, propose fixes and write examples, yet it usually can't see the things that matter most: project files, GitHub issues, the database schema, browser logs, current documentation or the state of the latest deployment.
An MCP server is a bridge between the assistant and one particular tool. Some examples:
- The GitHub server lets the assistant work with repositories, pull requests, issues and workflows.
- The filesystem server allows reading and editing local files inside one controlled folder.
- The Playwright server opens a real browser and exercises user flows.
- The Postgres server inspects database schemas and runs safe queries.
With those in place the assistant stops guessing. It can check, inspect and verify, and it works from real context and not from isolated snippets.
There's a catch, though. These servers touch real systems, so careless configuration creates real risk. A filesystem server can read files, a GitHub server reaches repositories, a database server can query data and a browser server can interact with pages. The aim is to install only what improves the workflow, and to grant the smallest permissions that do the job.
The order to install them
A clean setup for a developer in 2026 wouldn't begin with ten servers. It would begin with five.
Context7 comes first, since outdated documentation is among the biggest reasons generated code breaks. GitHub MCP follows, because so much real development work sits around repositories, issues, pull requests and CI. Filesystem MCP is third, since an assistant can't help with a codebase it can't see. Playwright MCP and Chrome DevTools MCP round out the five, because frontend code ought to be tested in an actual browser and not just imagined from source files.
More servers can be added depending on the project:
- Git MCP for better local version-control workflows.
- Postgres MCP when the application leans heavily on PostgreSQL.
- Firecrawl MCP for live web research or scraping.
- Sequential Thinking MCP when a task is complex and needs careful planning.
- Memory MCP when the same project runs for months and the same context keeps getting repeated.
That gives this ranking:
- Context7
- GitHub MCP server
- Filesystem MCP
- Playwright MCP
- Chrome DevTools MCP
- Git MCP
- Postgres MCP, or Postgres MCP Pro
- Firecrawl MCP
- Sequential Thinking MCP
- Memory MCP
The order follows real developer habits: docs, then project context, then browser checks, then version control, databases, research, planning and finally memory.
1. Context7
Most AI coding failures don't mean the model can't code. They happen because it's working from stale information. Ask for a Next.js example and it produces an old routing pattern. Ask for LangChain and it mixes versions. Ask for a Supabase auth flow and it writes plausible code against an API that changed.
Context7 gives the assistant fresh, version-specific documentation. Rather than relying only on training data, the assistant pulls current docs into context before it writes code. A normal assistant might answer "here's how to configure middleware in Next.js", while one using Context7 can answer for the current version of Next.js. That gap matters.
Consider a SaaS dashboard built from Next.js, Supabase, Stripe and a modern UI library. Each of those changes over time, and with old documentation you can spend longer debugging generated code than you would have spent writing it. Context7 makes current docs part of the workflow.
Take adding authentication middleware to a Next.js 15 project. Without Context7 the assistant may base its answer on older middleware behavior, and the code looks clean until the app runs and fails. With it, you can ask for the correct middleware setup using the latest Next.js documentation, and the result is far more likely to match the current framework.
Here's the config entry:
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"],
"description": "Fresh, version-specific documentation for AI coding assistants"
}
}
}
Context7 earns its place whenever a task relies on a framework, library, SDK or API that changes frequently, including frontend frameworks, AI SDKs, cloud services, auth libraries, vector databases, ORMs and current Python or JavaScript tooling.
It handles public, popular libraries well. Private internal packages are a different matter: the assistant won't understand them unless their docs come through an indexed or connected source.
2. GitHub MCP server
An assistant that sees only a pasted file handles small tasks. One that can read a repository, pull requests, issues and workflow failures helps with the real thing, which is why this server ranks so high.
With GitHub MCP the assistant talks to GitHub itself. Reviewing pull requests, summarizing issues, reading code, checking CI failures, creating branches and following project history all become possible for it.
Say a payment bug appears after yesterday's deploy. Without the server, you browse GitHub by hand, check recently merged pull requests, read the changed files and CI logs, then paste pieces into the assistant. With it, you can ask the assistant to find yesterday's merges that touched the payment service, summarize risky changes and check whether the related workflows passed.
The config entry:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
},
"description": "GitHub repositories, pull requests, issues, actions, and code search"
}
}
}
Use it if your team keeps code, issues, pull requests, reviews, CI/CD or release management on GitHub. It's particularly helpful where much of the engineering context sits outside the code itself.
Don't hand the assistant full GitHub access by default. Begin with read-only permissions where you can, use scoped tokens, and switch on write actions only when they're truly needed.
3. Filesystem MCP
This one sounds dull. It doesn't browse the web, open DevTools or manage pull requests. It simply gives the assistant controlled access to local files and folders, and that plain ability underpins much of what makes AI coding useful.
With no file access the assistant is blind and can reason only about what you paste in. That's fine for small snippets and falls apart in a real application, which has configuration files, routes, services, components, tests, environment examples, utilities and hidden dependencies between modules. The filesystem server lets the assistant inspect all of that structure.
Picture joining a project with poor documentation. The README is outdated, authentication logic is scattered across middleware, API routes and helpers, and the previous developer has left. Without the server you paste files into the chat one at a time and hope the assistant pieces them together. With it, you can ask how authentication works from login through to protected routes, and the answer comes from the real codebase.
Config entry:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/your/project"
],
"description": "Controlled local file access for project inspection and editing"
}
}
}
It suits local development, refactoring, debugging, onboarding, documentation work and project exploration. It also pairs well with Git MCP, because the filesystem shows what exists now and Git shows what changed.
Never expose the whole machine. Limit access to the project folder the assistant needs, and keep out directories holding secrets, personal files, SSH keys or unrelated projects.
4. Playwright MCP
Frontend bugs annoy because the code can look right and still break in the browser. A login form can render properly and fail on submit, a modal can open behind its overlay, a checkout button can stay disabled thanks to a single wrong state variable, and a dropdown can work by mouse yet fail with the keyboard.
An assistant that only reads source has to guess what happens in the browser, and Playwright MCP cuts down the guessing. It lets the assistant open a browser, navigate, click, fill forms and verify behavior. For frontend and full-stack work that's a big step up, since the assistant can test user flows and not just generate code.
Suppose you ask it to build a checkout page. It edits the React component, adds form validation and declares the job done. The real question is whether checkout works. With Playwright MCP you can tell it to open localhost:3000, add a product to the cart, proceed to checkout, fill the form with test data, submit and confirm that the confirmation page appears. Now it's checking behavior in a real browser.
Config entry:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"],
"description": "Browser automation and UI testing with Playwright"
}
}
}
Good fits include end-to-end tests, frontend checks, QA passes, reproducing bugs, forms, sign-in, checkout and onboarding flows, and internal dashboards. It matters most where the user journey must be right and the snippet itself is secondary.
Browser automation can be slow and heavy on resources, so save it for important workflows and skip it for every small UI tweak.
5. Chrome DevTools MCP
Playwright MCP helps the assistant use the browser, while Chrome DevTools MCP helps it understand the browser. The difference is real. When a page is slow, Playwright can interact with it but DevTools can read the performance trace. When an API request fails, Playwright may only see an error message and DevTools can inspect the network request. When the page throws a runtime error, DevTools exposes the console output.
That makes it one of the most useful servers for frontend debugging, because it supplies runtime evidence. Instead of guessing that a large image might be at fault, the assistant can inspect the page and report that the largest contentful paint is delayed because an image loads late and isn't preloaded. That's a different level of help.
Imagine a landing page with poor performance. A plain assistant offers generic advice, such as optimizing images, trimming JavaScript and lazy loading. It may be true, but it isn't specific. With DevTools MCP you can ask it to open the page, read the performance trace, work out what hurts LCP and suggest the smallest fix, so it works from evidence in the browser and not from boilerplate.
Config entry:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"],
"description": "Chrome DevTools debugging, performance analysis, console, and network inspection"
}
}
}
Use it for frontend debugging, performance analysis, console errors, network inspection, layout problems, runtime behavior and browser verification. Frontend developers, full-stack developers and teams shipping user-facing web apps get the most out of it.
It's powerful but doesn't replace ordinary testing discipline. Treat it as a debugging helper, and don't read its output as a guarantee that the whole app is ready for production.
6. Git MCP
GitHub MCP covers repository workflows on GitHub, and Git MCP covers the local repository. That split matters because plenty of tasks happen before anything is pushed. You may want to review a local diff, understand what a refactor changed, compare branches, read commit history or prepare a tidy commit message.
Git MCP gives the assistant local Git context, and changes are easier to review when it sees the diff and not just the final files.
After three hours refactoring a service, the working tree holds edits across many files. Some belong to the refactor, some are temporary debug edits, and some shouldn't share a commit. With Git MCP you can ask the assistant to review the staged changes, group them by purpose, flag the risky ones and draft a clean commit message. That beats asking it to summarize a pasted diff.
Config entry:
{
"mcpServers": {
"git": {
"command": "uvx",
"args": [
"mcp-server-git",
"--repository",
"/path/to/your/repo"
],
"description": "Local Git repository inspection, diffs, history, and commit support"
}
}
}
Use it before commits, during refactors, when comparing branches, when reviewing local changes and when trying to pin down when a bug appeared. It gets better when combined with Filesystem MCP: the filesystem explains the current project and Git explains how the project changed.
Be careful with write operations. Start with inspection, summaries, diffs and commit message drafts.
7. Postgres MCP and Postgres MCP Pro
Many backend bugs sit in the database layer. The handler looks fine, the API gives a vague error and the logs explain little, until an hour in you find a missing index, a bad join, a null, a migration mismatch or a query that only breaks at production scale.
A Postgres server adds database context. Depending on configuration, the assistant can look at schemas and tables, run safe queries, read query plans and propose optimizations.
Say an API endpoint takes four seconds in production, though the code looks normal and the ORM query seems simple. With the server you can ask the assistant to inspect the endpoint's query, explain why it's slow and recommend the safest index. It can now reason about the database layer and not just the application code.
Config entry:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://YOUR_USER:YOUR_PASSWORD@YOUR_HOST:5432/YOUR_DATABASE"
},
"description": "PostgreSQL schema inspection and natural language SQL queries"
}
}
}
Other setups use Postgres MCP Pro or open-source Postgres implementations. Here's one such alternative:
{
"mcpServers": {
"postgres-pro": {
"command": "uvx",
"args": ["postgres-mcp"],
"env": {
"DATABASE_URI": "postgresql://YOUR_USER:YOUR_PASSWORD@YOUR_HOST:5432/YOUR_DATABASE"
},
"description": "PostgreSQL development, query analysis, and optimization"
}
}
}
Use it for backend debugging, SQL analysis, schema exploration, analytics, query tuning and database-heavy applications. SaaS products, dashboards, marketplaces, CRMs, internal tools and reporting systems benefit most.
Never begin with write access to production. Start with read-only credentials. On production systems, restrict permissions carefully and review each query before any destructive operation is allowed.
8. Firecrawl MCP
Helpful context isn't always inside the repo. The assistant may need a docs page, a changelog, a rival's pricing page, a public API reference, a support article or a release note from the open web.
Firecrawl MCP lets the assistant search, scrape and extract structured information from the live web. That helps because many developer tasks need current outside information: comparing pricing pages, checking whether an API changed, pulling documentation from a site, or gathering data from pages without a clean API. It isn't the first server to install for daily coding, but it becomes very useful once a workflow depends on research.
Suppose a manager asks for your product's pricing compared with three competitors. Without the server you open several tabs, copy text by hand, clean up messy pages and build the table yourself. With it, you ask the assistant to visit those pricing pages, extract plan names, monthly prices, limits and enterprise features, and return a comparison table. It's a practical case of web access becoming part of development work.
Config entry:
{
"mcpServers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_FIRECRAWL_API_KEY"
},
"description": "Live web search, scraping, structured extraction, and page interaction"
}
}
}
Use it for documentation research, competitive intelligence, market analysis, changelog monitoring, API documentation audits and pulling structured data from websites.
Respect robots.txt, site terms, authentication boundaries and rate limits, and don't use scraping to get around access restrictions.
9. Sequential Thinking MCP
Some failures come from an assistant moving too fast. It leaps to a solution, edits too many files, treats a symptom and misses the root cause, proposes a migration with no rollback plan, and answers confidently before it understands the constraints.
Sequential Thinking MCP encourages more structured problem solving. It helps the assistant split a problem into steps, revise assumptions, compare approaches and reason carefully before it acts.
Imagine migrating a monolithic API into smaller services. A weak assistant might suggest a folder structure at once and begin generating code. A better one slows down and asks a few things first:
- Which module should move first?
- Which database tables are shared?
- Which endpoints carry the most risk?
- Which tests have to pass before deployment?
- What's the rollback plan?
This server helps produce that sort of structured approach.
Config entry:
{
"mcpServers": {
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"],
"description": "Structured reasoning and step-by-step planning for complex development tasks"
}
}
}
Use it for architecture decisions, migration planning, hard debugging, incident analysis, multi-step refactors and any task where mistakes are expensive.
It doesn't belong on every task. For simple work it adds overhead, so use it when plan quality matters more than speed.
10. Memory MCP
Anyone who works with AI assistants has repeated the same project context over and over:
- The project is multi-tenant.
- Every database query has to include tenant_id.
- The generated API client must not be edited.
- The staging database resets every Sunday.
- All admin routes need role-based permissions.
Beyond being tedious, this repetition causes mistakes, since an assistant that forgets a project rule can produce code that violates the architecture. Memory MCP gives the assistant persistent memory across sessions. It can keep stable project facts, conventions, decisions and relationships in a local memory system, which helps when the same project runs for weeks or months.
Consider a B2B SaaS product where every query must be scoped by tenant_id. If the assistant forgets that rule it may write a security bug. With Memory MCP the rule can be stored once, by telling the assistant that the project is multi-tenant and every query must include tenant_id unless documented otherwise. In later sessions the assistant retrieves that context and nobody has to repeat it.
Config entry:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"description": "Persistent project memory using a knowledge graph"
}
}
}
It fits long-running projects, solo work, small teams, architecture-heavy apps and codebases with plenty of conventions nobody wrote down.
Memory turns harmful when it holds wrong or outdated facts. Keep secrets out of it, skip temporary assumptions and don't let it become a junk drawer. Good memory helps and bad memory misleads.
A starter mcp.json
A practical starter configuration covers the first five servers:
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"],
"description": "Fresh, version-specific documentation for coding agents"
},
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
},
"description": "GitHub repositories, pull requests, issues, actions, and code search"
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/your/project"
],
"description": "Controlled local file access"
},
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"],
"description": "Browser automation and UI testing"
},
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest"],
"description": "Chrome DevTools debugging and performance analysis"
}
}
}
Swap the placeholders for your real project path and credentials. For example, the text below lists the values that need replacing:
/path/to/your/project
YOUR_GITHUB_PAT
YOUR_USER
YOUR_PASSWORD
YOUR_HOST
YOUR_DATABASE
YOUR_FIRECRAWL_API_KEY
The most common mistake
The biggest mistake is installing too many servers too quickly. It feels productive and looks impressive, yet it often produces a worse agent. The assistant has more tools to pick from, the permission model gets harder to audit, the chance of exposing sensitive data rises, the workflow gets noisy, and when something breaks, debugging the AI setup becomes harder than debugging the application.
A good setup feels boring and obvious. The assistant already knows when docs are needed, when to read files, when to look at GitHub, when to launch the browser and when to hit the database.
What to take from this
MCP is shifting how assistants operate by wiring them into the systems and context developers touch every day. The advantage won't come from the biggest server count, but from knowing exactly where each server belongs in the workflow.
A sensible build order is fresh docs first, so generated code stops being outdated. Repository access comes next, giving the assistant issues, pull requests and history. Then comes controlled local access to the codebase, followed by a browser and DevTools so it can test and debug what end users really see.
Databases, web research, structured planning and memory should wait until each one answers a real need. That is the line between an assistant that only proposes code and one that helps you build, test, debug and ship.