# Useful MCP servers to connect to Claude first

You do not need to build your own server to get value from MCP. The catalogue
of ready-made ones keeps growing. This guide covers four worth wiring up first,
the exact way to add them, and how to judge a server before you trust it. If the
host/client/server split is new to you, read [MCP Fundamentals](/guides/mcp-fundamentals) first.

## Which MCP servers are still maintained?

The original reference-servers repo was split. Many early first-party servers
(an old GitHub one, a Postgres one, and others) were moved to an archived,
read-only repo and are no longer maintained. A few carry known security holes.
So the habit that matters most is checking a server is current before you
install it, not just that it exists. The picks below are the maintained ones as
of writing.The trap is reaching for a familiar `@modelcontextprotocol/server-*` name from memory, or grabbing the top npm hit, and landing on a package that was moved to the archived repo months ago. Those still install fine and some carry known security holes, so check the repo for recent commits and an open-issues response before you wire one in.

## GitHub

Use GitHub's own server, not the old archived `server-github` package. The
recommended setup is the remote one with a fine-grained personal access token:

```bash
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_TOKEN"
```

Now the agent can [read issues and pull requests, search code, and open PRs](/guides/connect-claude-to-github)
without you leaving the terminal. Scope the token to the exact repos you want it
to touch, and no more.Do not paste the raw token into the command. It lands in your shell history and the MCP config in plaintext for anything that reads either. Put it in an env var and use `${VAR}` expansion in the header instead.

## How do I stop the model guessing at library APIs?

A docs server fixes this. It pulls current, version-specific documentation into
context, so the model stops guessing at library APIs and getting them wrong,
which bites hardest with fast-moving packages. Context7 is a popular one:

```bash
claude mcp add --transport stdio context7 -- npx -y @upstash/context7-mcp
```

Plenty of individual products (error trackers, payment APIs, and so on) also
ship their own official remote servers. Prefer those when you work with that
product a lot.

## Filesystem

The filesystem server gives the agent scoped, safe access to local files. You
pass the directories it is allowed to touch as arguments. It reaches nothing
else:

```bash
claude mcp add --transport stdio filesystem -- \
  npx -y @modelcontextprotocol/server-filesystem ~/projects
```

That allow-list is the whole point. The server can read and write inside
`~/projects` and nowhere else, so a stray instruction cannot reach the rest of
your disk.

## Databases

Let an agent [query your data](/guides/connect-claude-to-your-database), but do it carefully. Skip the archived Postgres
server. A maintained option like Postgres MCP Pro brings the safety you want: a
configurable read-only mode, safe SQL parsing, and health checks. Run queries
through that rather than a raw connection, and keep it read-only unless you have
a real reason not to.

## How do I choose an MCP server safely?

Before you install anything, run it through five quick checks (the [MCP security basics](/guides/mcp-security-basics) guide goes deeper on what to allow and what to block):

- **Provenance** · prefer the vendor's own server (the one shipped by GitHub,
  Stripe, Notion) or the maintained reference set. Confirm it is not in the
  archived repo.
- **Maintenance** · recent commits and releases, and someone answering issues. A
  stale server is a liability.
- **Scope** · grant the least it needs. Filesystem gets only the right folders, a
  database gets read-only, a token is scoped to specific repos.
- **Auth** · prefer OAuth or short-lived tokens for remote servers, and never
  commit secrets. Use `${VAR}` expansion and keep credentialed servers at local
  scope.
- **Isolation** · an stdio server runs with your user's privileges. For anything
  you do not fully trust, run it in a container.

Get those habits right and MCP delivers what it promises: your agent, plugged
into the systems you already use, with not one integration hand-wired by you.
