Blog post

What Is MCP (Model Context Protocol)? A Practical Guide

10 min read
Share:

Table of Contents

Show

MCP (Model Context Protocol) is an open standard that lets AI agents connect to external software, discover available tools, and take actions on your behalf. Instead of being trapped in a chat window, your AI can search databases, manage projects, update profiles, and interact with any service that runs an MCP server.

You've probably seen MCP mentioned everywhere lately. Twitter threads, blog posts, product announcements. Every AI company seems to be shipping an "MCP server" and every developer tool is adding "MCP support." But if you've tried to figure out what MCP actually is, you've probably run into a wall of jargon and protocol specs.

I'm going to cut through that.

MCP in plain English

Anthropic introduced MCP in November 2024. In December 2025, they donated it to the Agentic AI Foundation under the Linux Foundation, with OpenAI, Block, and others as co-stewards. It's a genuinely open protocol now.

Here's the problem it solves. When you use Claude or ChatGPT, the AI can talk to you, but it can't actually do anything outside that conversation. It can't check your calendar, search a database, file a bug report, or look up what roles are open in your stack. It's stuck inside a text box.

MCP changes that. It's a universal plug that lets an AI agent reach into other software and take actions on your behalf. Search a job board. Update a project. Star a company. Send a message. Whatever the connected service supports.

Yeah, I know, the USB analogy is the cliche everyone uses for MCP. But it's accurate, so I'll use it anyway: before USB, every device had its own proprietary connector. Printers, keyboards, cameras, all different cables. USB standardized the physical connection. MCP standardizes the AI-to-software connection.

How it actually works

Under the hood, MCP uses JSON-RPC 2.0 as its wire protocol. If you've worked with LSP (Language Server Protocol), the architecture will feel familiar. There are two sides to every MCP connection:

The client is your AI agent. Claude Desktop, Claude Code, Cursor, VS Code, Codex, ChatGPT, Windsurf, Cline. These are the apps where you type prompts and have conversations. They speak MCP natively.

The server is whatever tool or service you want the agent to access. A GitHub MCP server lets your agent manage repos and issues. A Notion MCP server lets it read and write documents. A Remoet MCP server lets it search the public tech job board, match companies by their real tech stack, and manage your developer profile.

When a client connects to a server, the server advertises its capabilities through three primitives:

  • Tools: Actions the agent can execute. Searching jobs, creating a profile entry, saving a role with notes. These are the most commonly used primitive.

  • Resources: Data the agent can read, like files, database records, or configuration. Think of these as GET endpoints.

  • Prompts: Predefined templates that guide the agent through specific workflows. Less common but useful for complex multi-step tasks.

Each tool has a name, a description, and a JSON Schema defining its inputs. The AI reads those descriptions and figures out which tools to call based on what you ask.

So when you say "find me companies hiring React developers," the agent looks at the available tools, picks the search tool, fills in the right parameters, calls it, and returns the results. You never have to know the tool exists. You just describe what you want.

MCP vs function calling

This is the confusion I see most often. Function calling is a model-level feature where the AI can output structured JSON to invoke predefined functions. It's been around since 2023. MCP is the transport and discovery layer that sits on top of function calling.

Think of it this way: function calling is the engine. MCP is the road network.

Without MCP, every developer has to manually define function schemas, wire them up to API clients, handle authentication, and build the plumbing for each integration from scratch. MCP standardizes all of that. The server describes its tools once, any MCP client can discover and use them, and the client's function calling capability handles the actual invocation.

So they're complementary, not competing. Function calling is what lets the model decide to call a tool. MCP is what lets the model discover tools dynamically from external servers and execute them over a standardized transport.

MCP vs A2A (Agent-to-Agent Protocol)

Google released their Agent-to-Agent (A2A) protocol on April 9, 2025, at Google Cloud Next, and I keep seeing people ask whether it competes with MCP. Short answer: no. They solve different problems.

MCP connects an agent to tools and data. A2A connects an agent to another agent. MCP is about giving one agent hands to interact with software. A2A is about letting multiple agents collaborate with each other on a task. You'd likely use both in a mature agentic system, with MCP for tool access and A2A for multi-agent coordination.

The three primitives in practice

I mentioned Tools, Resources, and Prompts above, but it's worth seeing how they play out in a real MCP server.

Remoet exposes a full suite of MCP tools covering job search, company discovery, stars, the personal feed, saved jobs, profile and link trees. When your agent connects, it receives all the tool definitions with their descriptions and parameter schemas. The agent doesn't need documentation. It reads the tool descriptions and figures out the right calls.

Ask "find companies using Go and Kubernetes" and the agent picks the company search tool. Ask "what senior Go roles are open in Berlin above 90k" and it picks the public job search. Ask "update my summary" and it picks the profile update tool. All from the same conversational interface. No menus, no navigation, no context switching.

This is a different model from a traditional API integration. With an API, a developer writes code to call specific endpoints with specific parameters. With MCP, you describe your intent in natural language and the AI handles the routing.

Security: OAuth 2.1, PKCE, and prompt injection

I won't sugarcoat this: connecting AI agents to live services introduces real security considerations.

On the authentication side, MCP supports OAuth 2.1 with PKCE (Proof Key for Code Exchange). This is the same security standard used by major web applications. Each connection requires explicit user authorization, and you can revoke access at any time. Remoet's OAuth flow requires PKCE on every authorization, and its MCP server is stateless: each request carries its own credential and nothing is held open between calls, so there is no long-lived session to steal.

The trickier risk is prompt injection. If an MCP server returns malicious content in tool results, it could theoretically trick the agent into taking unintended actions. Good MCP implementations mitigate this by treating all tool results as untrusted data (Remoet's server instructions explicitly tell agents to do this), but it's an active area of research. The MCP spec itself is evolving to add better guardrails here.

If you're evaluating MCP servers, look for ones that support OAuth 2.1 rather than only API keys, enforce PKCE, and document their approach to prompt injection defense.

Who supports MCP today

The ecosystem has grown fast. Thousands of MCP servers exist now, and the number climbs weekly.

On the client side:

  • Claude Desktop and claude.ai have native MCP support, through custom connectors with OAuth

  • Claude Code supports MCP servers out of the box via the CLI

  • Cursor has built-in MCP configuration

  • VS Code has native MCP support through GitHub Copilot

  • Codex supports remote MCP servers from its config file or codex mcp add

  • ChatGPT connects to remote MCP servers from its own settings in the desktop app, and through the Plugins surface on the web

  • Gemini CLI, Windsurf (now Devin Desktop), Cline and Continue also support MCP

  • Hermes and OpenClaw support it too, and add a skills layer on top

On the server side, the ecosystem spans every category:

CategoryExamples
DevelopmentGitHub, Linear, Sentry
ProductivityNotion, Slack, Google Drive
DataSupabase, PostgreSQL, various database connectors
SearchBrave Search, Context7 (documentation search)
Career & JobsRemoet (tech job search, company stack matching, profile management), Indeed, Himalayas
Automationn8n, Zapier

MCP servers have spread well past developer tools by now. Job platforms, finance tools, CRM systems, e-commerce, the list keeps growing.

Why this matters for you

If you're a developer, MCP means you can automate a huge chunk of your workflow through conversation. Instead of context-switching between 15 browser tabs, you tell your agent what you need and it handles the tool-hopping.

If you're job hunting, this is where it gets interesting. Traditional job boards make you do all the work: search, filter, scroll, click into each listing, apply one by one. An MCP-connected job platform flips that. You tell your agent "what is open for my stack, senior, above 90k, remote or Berlin" and it does the searching, filtering, and shortlisting for you.

That's what Remoet does. Connect your AI agent once, and it handles the rest: searching the open board, finding companies that match your stack, keeping the roles you liked on file with your notes, and surfacing the URLs you need when you decide to apply. Your agent becomes your career assistant.

But beyond any single platform, the bigger shift is this: software is becoming conversational. Instead of learning each app's UI, you describe what you want and your agent figures out the tools. MCP is what makes that possible at scale.

Getting started

If you want to try MCP yourself, the setup is simpler than you'd expect. Most MCP-compatible AI apps let you add servers through a configuration file or a settings page. You typically need an API key or an OAuth sign-in from the service you want to connect, and then you're up and running.

We've got a detailed setup guide covering Claude Code, Claude Desktop, Cursor, VS Code, Codex, Windsurf and ChatGPT in our post on how to set up MCP servers.

For a complete walkthrough of what AI-powered job search looks like in practice, check out our agent job search guide.

The questions people keep asking me about MCP

Is MCP only for Claude?

No. MCP is an open protocol governed by the Linux Foundation. While Anthropic created it, it's been adopted by Claude, Cursor, VS Code, Codex, ChatGPT, Gemini CLI, Windsurf, Cline, Continue, and others. Any AI client can implement MCP support. OpenAI added it to its Agents SDK in early 2025 and now supports remote MCP servers in both Codex and ChatGPT.

Do I need to be a developer to use MCP?

Not necessarily. Some setups require editing a JSON config file, which is a bit technical. But claude.ai and ChatGPT both support remote servers through a point-and-click sign-in that requires zero coding, and the connector directories are making one-click installs the default. The trend is clearly toward making MCP accessible to everyone.

Is MCP secure?

MCP supports OAuth 2.1 with PKCE for authentication, which is the same security standard used by major web applications. Each connection requires explicit authorization. You control which services your agent can access and can revoke access at any time. The main emerging concern is prompt injection through tool results, which is an active area of research in the MCP community.

What's the difference between MCP and a browser extension or plugin?

Browser extensions and plugins are specific to one application. A Chrome extension only works in Chrome. A ChatGPT plugin only worked in ChatGPT (and OpenAI deprecated them). MCP is standardized across all compatible AI clients. Build one MCP server and it works with Claude, Cursor, VS Code, Codex, ChatGPT, and any future client that supports the protocol. Build once, work everywhere.

How many MCP servers can I connect at once?

There's no hard protocol limit. You can connect as many MCP servers as your AI client supports, though free plans on the hosted clients often cap custom connectors at one. Most people connect 3 to 10 servers depending on their workflow, covering things like code management, documentation, search, and whatever domain-specific tools they need.

What are you plugging in?

The protocol moves fast enough that some of the above will be out of date before long (the client list in particular changes every few weeks). So if you spot something I've got wrong, or you've wired up a server combination that turned out to be unreasonably good, come tell me in Discord. I'd rather hear it from you than find out later.

Find your next role

Browse hundreds of tech companies by stack. Let your AI agent handle the search. Free to start.