0% found this document useful (0 votes)
11 views6 pages

MCP3

Model Context Protocol 3

Uploaded by

veenapillai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views6 pages

MCP3

Model Context Protocol 3

Uploaded by

veenapillai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Server Concepts

Understanding MCP server concepts

MCP servers are programs that expose specific capabilities to AI applications through standardized protocol
interfaces. Each server provides focused functionality for a particular domain.

Common examples include file system servers for document management, email servers for message
handling, travel servers for trip planning, and database servers for data queries. Each server brings domain-
specific capabilities to the AI application.

Core Building Blocks

Servers provide functionality through three building blocks:

Building
Purpose Who Controls It Real-World Example
Block

Search flights, send messages, create calendar


Tools For AI actions Model-controlled
events

Application-
Resources For context data Documents, calendars, emails, weather data
controlled

For interaction “Plan a vacation”, “Summarize my meetings”,


Prompts User-controlled
templates “Draft an email”

Tools - AI Actions

Tools enable AI models to perform actions through server-implemented functions. Each tool defines a specific
operation with typed inputs and outputs. The model requests tool execution based on context.

Overview

Tools are schema-defined interfaces that LLMs can invoke. MCP uses JSON Schema for validation. Each tool
performs a single operation with clearly defined inputs and outputs. Most importantly, tool execution requires
explicit user approval, ensuring users maintain control over actions taken by a model.

Protocol operations:

Method Purpose Returns

tools/list Discover available tools Array of tool definitions with schemas

tools/call Execute a specific tool Tool execution result

Example tool definition:

{
name: "searchFlights",
description: "Search for available flights",
inputSchema: {
type: "object",
properties: {
origin: { type: "string", description: "Departure city" },
destination: { type: "string", description: "Arrival city" },
date: { type: "string", format: "date", description: "Travel date" }
},
required: ["origin", "destination", "date"]
}
}

Example: Taking Action

Tools enable AI applications to perform actions on behalf of users. In a travel planning scenario, the AI
application might use several tools to help book a vacation.

First, it searches for flights using

searchFlights(origin: "NYC", destination: "Barcelona", date: "2024-06-15")

searchFlights queries multiple airlines and returns structured flight options. Once flights are selected, it
creates a calendar event with

createCalendarEvent(title: "Barcelona Trip", startDate: "2024-06-15", endDate: "2024-06-22")

to mark the travel dates. Finally, it sends an out-of-office notification using

sendEmail(to: "team@work.com", subject: "Out of Office", body: "...")

to inform colleagues about the absence.

Each tool execution requires explicit user approval, ensuring full control over actions taken.

User Interaction Model

Tools are model-controlled, meaning AI models can discover and invoke them automatically. However, MCP
emphasizes human oversight through several mechanisms. Applications should clearly display available tools
in the UI and provide visual indicators when tools are being considered or used. Before any tool execution,
users must be presented with clear approval dialogs that explain exactly what the tool will do.

For trust and safety, applications often enforce manual approval to give humans the ability to deny tool
invocations. Applications typically implement this through approval dialogs, permission settings for pre-
approving certain safe operations, and activity logs that show all tool executions with their results.

Resources - Context Data

Resources provide structured access to information that the host application can retrieve and provide to AI
models as context.

Overview

Resources expose data from files, APIs, databases, or any other source that an AI needs to understand
context. Applications can access this information directly and decide how to use it - whether that’s selecting
relevant portions, searching with embeddings, or passing it all to the model.
Resources use URI-based identification, with each resource having a unique URI such as
file:///path/to/document.md. They declare MIME types for appropriate content handling and support two
discovery patterns: direct resources with fixed URIs, and resource templates with parameterized URIs.

Resource Templates enable dynamic resource access through URI templates. A template like
travel://activities/{city}/{category} would access filtered activity data by substituting both {city} and
{category} parameters. For example, travel://activities/barcelona/museums would return all museums in
Barcelona. Resource Templates include metadata such as title, description, and expected MIME type, making
them discoverable and self-documenting.

Protocol operations:

Method Purpose Returns

resources/list List available direct resources Array of resource descriptors

resources/templates/list Discover resource templates Array of resource template definitions

resources/read Retrieve resource contents Resource data with metadata

resources/subscribe Monitor resource changes Subscription confirmation

Example: Accessing Context Data

Continuing with the travel planning example, resources provide the AI application with access to relevant
information:

Calendar data (calendar://events/2024) - To check availability


Travel documents (file:///Documents/Travel/passport.pdf) - For important information
Previous itineraries (trips://history/barcelona-2023) - User selects which past trip style to follow

Instead of manually copying this information, resources provide raw information to AI applications. The
application can choose how to best handle the data. Applications might choose to select a subset of data,
using embeddings or keyword search, or pass the raw data from a resource directly to a model. In our
example, during the planning phase, the AI application can pass the calendar data, weather data and travel
preferences, so that the model can check availability, look up weather patterns, and reference travel
preferences.

Resource Template Examples:

{
"uriTemplate": "weather://forecast/{city}/{date}",
"name": "weather-forecast",
"title": "Weather Forecast",
"description": "Get weather forecast for any city and date",
"mimeType": "application/json"
}

{
"uriTemplate": "travel://flights/{origin}/{destination}",
"name": "flight-search",
"title": "Flight Search",
"description": "Search available flights between cities",
"mimeType": "application/json"
}

These templates enable flexible queries. For weather data, users can access forecasts for any city/date
combination. For flights, they can search routes between any two airports. When a user has input “NYC” as the
origin airport and begins to input “Bar” as the destination airport, the system can suggest “Barcelona (BCN)”
or “Barbados (BGI)”.

Parameter Completion

Dynamic resources support parameter completion. For example:

Typing “Par” as input for weather://forecast/{city} might suggest “Paris” or “Park City”
The system helps discover valid values without requiring exact format knowledge

User Interaction Model

Resources are application-driven, giving hosts flexibility in how they retrieve, process, and present available
context. Common interaction patterns include tree or list views for browsing resources in familiar folder-like
structures, search and filter interfaces for finding specific resources, automatic context inclusion based on
heuristics or AI selection, and manual selection interfaces.

Applications are free to implement resource discovery through any interface pattern that suits their needs. The
protocol doesn’t mandate specific UI patterns, allowing for resource pickers with preview capabilities, smart
suggestions based on current conversation context, bulk selection for including multiple resources, or
integration with existing file browsers and data explorers.

Prompts - Interaction Templates

Prompts provide reusable templates. They allow MCP server authors to provide parameterized prompts for a
domain, or showcase how to best use the MCP server.

Overview

Prompts are structured templates that define expected inputs and interaction patterns. They are user-
controlled, requiring explicit invocation rather than automatic triggering. Prompts can be context-aware,
referencing available resources and tools to create comprehensive workflows. Like resources, prompts
support parameter completion to help users discover valid argument values.

Protocol operations:

Method Purpose Returns

prompts/list Discover available prompts Array of prompt descriptors

prompts/get Retrieve prompt details Full prompt definition with arguments

Example: Streamlined Workflows

Prompts provide structured templates for common tasks. In the travel planning context:

“Plan a vacation” prompt:


{
"name": "plan-vacation",
"title": "Plan a vacation",
"description": "Guide through vacation planning process",
"arguments": [
{ "name": "destination", "type": "string", "required": true },
{ "name": "duration", "type": "number", "description": "days" },
{ "name": "budget", "type": "number", "required": false },
{ "name": "interests", "type": "array", "items": { "type": "string" } }
]
}

Rather than unstructured natural language input, the prompt system enables:

1. Selection of the “Plan a vacation” template


2. Structured input: Barcelona, 7 days, \$3000, [“beaches”, “architecture”, “food”]
3. Consistent workflow execution based on the template

User Interaction Model

Prompts are user-controlled, requiring explicit invocation. Applications typically expose prompts through
various UI patterns such as slash commands (typing “/” to see available prompts like /plan-vacation),
command palettes for searchable access, dedicated UI buttons for frequently used prompts, or context menus
that suggest relevant prompts.

The protocol gives implementers freedom to design interfaces that feel natural within their application. Key
principles include easy discovery of available prompts, clear descriptions of what each prompt does, natural
argument input with validation, and transparent display of the prompt’s underlying template.

How It All Works Together

The real power of MCP emerges when multiple servers work together, combining their specialized capabilities
through a unified interface.

Example: Multi-Server Travel Planning

Consider an AI application with three connected servers:

1. Travel Server - Handles flights, hotels, and itineraries


2. Weather Server - Provides climate data and forecasts
3. Calendar/Email Server - Manages schedules and communications

The Complete Flow

1. User invokes a prompt with parameters:

{
"prompt": "plan-vacation",
"arguments": {
"destination": "Barcelona",
"departure_date": "2024-06-15",
"return_date": "2024-06-22",
"budget": 3000,
"travelers": 2
}
}

2. User selects resources to include:

calendar://my-calendar/June-2024 (from Calendar Server)


travel://preferences/europe (from Travel Server)
travel://past-trips/Spain-2023 (from Travel Server)

3. AI processes the request:

The AI first reads all selected resources to gather context. From the calendar, it identifies available
dates. From travel preferences, it learns preferred airlines and hotel types. From past trips, it discovers
previously enjoyed locations. From weather data, it checks climate conditions for the travel period.

Using this context, the AI then requests user approval to execute a series of coordinated actions:
searching for flights from NYC to Barcelona, finding hotels within the specified budget, creating a
calendar event for the trip duration, and sending confirmation emails with the trip details.

You might also like