Agent Tooling & Ecosystem · Blog Post

Awesome MCP Servers: how skills reach the outside world

A skill can teach Claude how to fill out a form; it still needs a way to actually reach your database, your issue tracker, or a live webpage. That's the Model Context Protocol's job, and punkpeye's directory is where you go to find a server for it before you consider writing your own.

By Mehadi Hasan 8 min read

What it is

The Model Context Protocol (MCP) is the open standard that lets Claude Code — and Cursor, Windsurf, Continue.dev, Cline, and a growing list of other assistants — connect to external tools, databases, and APIs instead of working only from whatever you paste into chat. awesome-mcp-servers by punkpeye is the largest curated directory of implementations: hundreds of servers, organized by function, language, and deployment scope, sitting at over 90,000 GitHub stars.

This entry is different from the other four on this list — it's not something you install, it's the map you consult before you build a connector yourself or trust a random server you found in a blog post.

Scope of the directory

90k+ GitHub stars
66+ Function categories
8 Languages tracked
4 Transport types

Servers are tagged by function (aggregators, databases, cloud platforms, browser automation, and dozens more — Aggregators alone lists 180+ entries), by implementation language (Python, TypeScript, Go, Rust, C#, Java, C/C++, Ruby), and by scope (cloud service, local process, embedded). Badges and emoji make the tags scannable at a glance rather than requiring you to open every linked repo.

The four transports, and which one to reach for

Once you've picked a server from the directory, registering it with Claude Code is the same regardless of which one you chose — only the transport differs:

HTTP (recommended)

claude mcp add --transport http notion https://mcp.notion.com/mcp

SSE (deprecated, still supported)

claude mcp add --transport sse asana https://mcp.asana.com/sse

stdio (local process)

claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
    -- npx -y airtable-mcp-server

WebSocket (JSON only)

claude mcp add-json events-server \
    '{"type":"ws","url":"wss://mcp.example.com/socket"}'

HTTP is Anthropic's current recommendation for remote, cloud-hosted servers — it supports OAuth and is the most widely implemented transport. SSE still works but is deprecated in favor of HTTP. stdio is for a local process (an npm package, a Python script) that needs direct filesystem or system access; everything after the -- is passed straight to that command untouched. WebSocket is reserved for servers that need to push events at Claude unprompted, and can only be configured via JSON, not the --transport flag.

Choosing a scope

The --scope flag decides who else sees the server:

Managing servers

claude mcp list              # see everything configured
claude mcp get github         # details for one server
claude mcp remove github      # remove it
/mcp                          # in-session status + OAuth

local (the default) keeps a server private to you, in the current project only. project writes it into a committed .mcp.json, shared with everyone who clones the repo — the right place for a database or API integration the whole team is meant to use, never for a personal token. user makes it available to you across every project on your machine.

Trust is the actual filter

Anthropic's own MCP documentation puts it bluntly: verify you trust a server before connecting it, since a server that fetches external content can carry prompt-injection risk the same way a skill can. A directory listing is a starting point for discovery, not a trust signal by itself — prefer servers with an active repo, a real maintainer, and where it matters, a listing in Anthropic's own connector directory, over an obscure fork with no recent commits.

My take

The honest reason this belongs on a "top 5 skills" list at all is that skills and MCP are two halves of the same capability — a skill teaches Claude the how, an MCP server gives it the where. If you've installed Anthropic's official skills or built a custom one that's supposed to read live data, this directory is what stands between "describe the schema in the prompt every time" and "just query it."

Where it won't help: it doesn't vet servers for you, and a list this large inevitably includes some abandoned or thin implementations. Budget a few minutes to actually read a server's source before pointing it at anything with real credentials attached.

Frequently asked questions

Is this list itself something I install?

No — it is a directory, not a package. You browse it to find a server that already does what you need (Postgres, GitHub, Slack, browser automation), then install and register that specific server with claude mcp add.

What is the actual command to connect a server?

For a remote HTTP server: claude mcp add --transport http <name> <url>. For a local process: claude mcp add --transport stdio <name> -- <command> [args...], where everything after -- is passed straight to the server. Use claude mcp list and the in-session /mcp panel to check status afterward.

How do I know a server is safe to connect?

Anthropic's own guidance is blunt: verify you trust a server before adding it, since any server that fetches external content can carry a prompt-injection risk. Prefer entries with an active repo, a real maintainer, and — where it matters — a listing in the official Anthropic connector directory over an obscure fork.

Local, project, or user scope — which should I pick?

local (the default) keeps a server private to you in the current project; project writes it to .mcp.json so it is shared with everyone who clones the repo; user makes it available to you across every project. Shared credentials belong in project scope only when the whole team is meant to use them.