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
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.