Skip to content
Pillar guide

What Is MCP? The Model Context Protocol Explained for 2026

GitShowcase Editorial · 14 min read · 2026-05-12
TL;DR
  • MCP (Model Context Protocol) is an open spec that lets LLM clients call external tools and read external data through a standard protocol — published by Anthropic in late 2024, now implemented by every major LLM client.
  • An "MCP server" is a small program that exposes tools and resources over the protocol. Examples: Postgres MCP, GitHub MCP, Slack MCP, Figma MCP.
  • MCP is different from OpenAI function calling — function calling is per-API-call inside one vendor; MCP is a long-lived protocol shared across vendors and clients.
  • Most production teams in 2026 run 3-5 MCP servers in their daily-driver stack. Beyond 5, agents spend too much context on tool discovery.
  • Start with three: GitHub MCP for code, Context7 MCP for library docs, one database MCP (Postgres or Supabase). Most other servers are workflow-specific from there.

What problem does MCP solve?

Before MCP, every LLM client that wanted to call external tools had to invent its own integration layer. ChatGPT had plugins (deprecated). OpenAI had per-call function calling. Anthropic had tool use. Each vendor maintained their own SDK shape, their own auth flow, their own tool-discovery format. Building an integration that worked across LLM clients was effectively impossible — you wrote four similar codebases and kept them in sync.

MCP fixed that with a small, focused spec: tools and resources, JSON-RPC, stdio or HTTP transport. Any client that speaks MCP can connect to any server that speaks MCP. Write the integration once, every client benefits. Write the client once, every integration is available.

The result, by 2026, is the largest dev-tool integration explosion since the move from "open this file in Notepad" to "open this file in any compatible editor." Hundreds of MCP servers exist. Most of the developer tools you use day-to-day have official MCP servers. The agent ecosystem is finally interoperable.

How does an MCP server actually work?

An MCP server is just a program. It exposes two main things:

  • Tools. Functions the LLM can call. Each tool declares its name, what it does, and a JSON schema for its inputs. Example: a tool called query_postgres that takes a SQL string and returns rows.
  • Resources. Data the LLM can read. Each resource has a URI and a content type. Example: a resource called postgres://schema/users that returns the columns of the users table.

When you start your MCP client (Claude Desktop, Cursor, Continue, etc.), it spawns each configured MCP server as a subprocess and connects over stdio. The client asks each server "what tools and resources do you have?" The server answers. From that point on, the LLM can call any tool or read any resource as part of its conversation — the client routes the call to the right server and returns the result to the LLM.

That is the entire protocol. It is small on purpose. Most MCP servers are a few hundred lines of code. The TypeScript and Python SDKs make writing one straightforward — declare your tools, write the handlers, register the server.

MCP vs function calling — when to use which?

This question comes up constantly so it is worth being precise.

Function calling is a vendor-specific API feature. You define functions inside your API call, the model can choose to call them, you handle the result, return it, model continues. Function calling is per-call: the functions exist only during that one API conversation. You build the loop yourself in your application code.

MCP is a long-lived protocol that lives at the LLM client layer. You configure MCP servers once in your client config. Every conversation has access to every tool and resource from every connected server. The client manages the loop.

Practical guidance:

  • If you are building a custom application that calls an LLM API — use function calling. You control the loop, you scope the functions to the use case, you keep the surface narrow.
  • If you are configuring tools for an LLM client that you (or your team) use day-to-day — use MCP. You want broad, always-available tooling.
  • Many production stacks use both: MCP for the developer-IDE workflow, function calling for the customer-facing application.

The 2026 MCP stack — what production teams actually run

From the 342-developer cohort surveyed for the Best MCP Servers ranking, a consistent stack pattern emerged. The median number of MCP servers per developer was 4. The shape was remarkably consistent across team sizes:

  1. A code server — almost always GitHub MCP or GitLab MCP. Used for PR diff reading, issue triage, code search, Actions orchestration.
  2. A docs server — almost always Context7 MCP. Used to stop the LLM from hallucinating library APIs that do not exist.
  3. A database serverPostgres MCP for self-hosted Postgres / RDS / Neon, Supabase MCP for Supabase customers. Used for read-mostly internal tooling and "ask your data" workflows.
  4. A team-context serverSlack MCP or Notion MCP. Used for standup digests, support triage, spec writing from existing context.
  5. One workflow-specific serverPlaywright MCP for QA-heavy work, Figma MCP for frontend, Azure MCP for on-call rotation.

How to choose your first MCP servers

If you are setting up MCP for the first time, do not try to install ten servers on day one. The discovery overhead in the agent context window is real and the diminishing returns kick in fast. Pick three:

  1. GitHub MCP. Free. Official. Works first try. Solves PR descriptions, issue triage, and code search across your repos. Every developer benefits day one.
  2. Context7 MCP. Free hosted SaaS. Stops your AI code assistant from inventing library APIs. The accuracy lift on library-specific code is the largest single quality improvement most developers experience from MCP.
  3. Postgres MCP (or Supabase MCP). Free. Read-only mode. Connects your AI assistant to your actual data so it can answer questions about your real schema instead of guessing.

Run those three for a week. Add a fourth (Slack, Notion, Playwright, or Figma depending on your workflow) when you have hit a specific limitation that the new server solves.

Are MCP servers safe?

Short answer: yes, when configured correctly, the security posture is better than the alternatives most developers were using before (one-off custom integrations, exposed API keys, dev-data access via shared spreadsheets). Long answer requires a few specifics.

Authentication. Every reputable MCP server supports a real auth flow — GitHub OAuth, Atlassian OAuth, Postgres roles, Azure Managed Identity. Avoid MCP servers that ask for service-role or admin secrets up front. The good ones inherit the user permissions of the connecting user.

Read vs write. Default to read-only mode wherever possible. Postgres MCP, Azure MCP, GitHub MCP all support read-only as a one-config-line switch. Production deploys should run read-only against prod and use a separate scratch environment for writes.

Secret management. MCP config files reference secrets — connection strings, service-role keys, OAuth tokens. Keep these out of version control. Use environment variables managed by 1Password, AWS Secrets Manager, or your existing secret store. Most MCP clients support $ENV_VAR interpolation in config files.

Audit logging. Every MCP tool invocation should be logged. Most MCP servers expose middleware hooks for this. At minimum, log who invoked what tool with what arguments and what the result was. This is your forensics layer if something goes wrong.

What is coming next

Two MCP trajectories worth watching in 2026 and into 2027:

  • HTTP-based MCP for remote servers. The original MCP spec was stdio-only (local subprocess). HTTP MCP is now stable and lets servers run remotely — your team can share one MCP server hosted in your infrastructure instead of every developer installing their own. This is how the SaaS-hosted MCP servers (Context7, etc.) work today, and it is becoming the default for company-internal MCP servers.
  • MCP marketplaces. mcpservers.org, mcpmarket.com, the GitHub awesome-mcp-servers repo, and our own MCP server reviews are all converging on the directory pattern. Discoverability is the bottleneck — there are too many MCP servers to evaluate manually, and the directories that surface reviewer signal and security posture will win that segment.

Where to go from here

If you have not installed an MCP server yet, the fastest path is: download Claude Desktop, follow the MCP quickstart, install the three servers above (GitHub MCP, Context7, Postgres MCP). 30 minutes of setup. The productivity lift is immediate and persistent.

From there, browse the MCP server directory for workflow-specific additions, or read the Best MCP Servers 2026 ranking for the developer-reviewed top 10.