Loading

Model Context Protocol (MCP) is a communication layer that provides Claude with context and tools without requiring you to write a bunch of tedious integration code. Instead of building every tool function yourself, MCP shifts that burden to specialized servers that handle the heavy lifting.

Our server's MCP Client connects to two MCP Servers that each hold tools, prompts and resources and call an outside service.

When you first encounter MCP, you'll see diagrams showing the basic architecture: an MCP Client (your server) connects to MCP Servers that contain tools, prompts, and resources. Each MCP Server acts as an interface to outside services like GitHub, AWS, or databases.

The Problem MCP Solves

Let's say you're building a chat interface where users can ask Claude about their GitHub data - questions like "What open pull requests are there across all my repositories?" To handle this without MCP, you'd need to create tools for every GitHub operation you want to support.

Mockup of the sample chat app: the user question quoted above, an AI reply showing three dots, and a Send button.

GitHub has massive functionality - repositories, pull requests, issues, projects, and much more. Building a complete GitHub integration means authoring an incredible number of tool schemas and functions:

Our server holding eight GitHub tools such as get_repos and search_issues, each with its own schema and function.

This creates a lot of code that you have to write, test, and maintain. That's where MCP comes in.

How MCP Works

MCP shifts the burden of tool definitions and execution from your server to dedicated MCP Servers. Instead of writing all those GitHub tools yourself, you connect to a GitHub MCP Server that already has them implemented.

Our server holds the get_repos tool with its "schema" and "fn", and exchanges messages with an empty MCP Server and Claude.

The MCP Server acts as a wrapper around the outside service, providing pre-built tools that Claude can use. You get access to all that GitHub functionality without writing any of the integration code yourself.

Our server talks both ways with Claude and a GitHub MCP server whose get_repos tool, a schema and a function, calls GitHub.

Common Questions

Who authors MCP Servers?

Anyone can create an MCP Server implementation. Often, service providers themselves will make their own official implementations. For example, AWS might release an official MCP Server with tools for their various services.

How is this different from calling APIs directly?

When you call a service's API directly, you still have to write the tool schemas and function implementations yourself. MCP Servers provide those tool schemas and functions already defined for you, saving you development time.

Question and answer table on who authors MCP Servers, how they differ from calling an API directly, and from tool use.

Isn't MCP just the same as tool use?

This is a common misconception. MCP Servers and tool use are complementary but different concepts. Tool use is about Claude calling functions to accomplish tasks. MCP is about who provides those functions - instead of you writing them, someone else has already implemented them in an MCP Server.

The key insight is that MCP Servers provide tool schemas and functions already defined for you, while direct tool use requires you to author everything yourself. Both involve Claude using tools, but MCP dramatically reduces the development work required on your end.