(Кликните на слику изнад да бисте погледали видео лекцију)
Model Context Protocol (MCP) је моћан, стандардизован оквир који оптимизује комуникацију између великих језичких модела (LLMs) и спољашњих алата, апликација и извора података.
Овај водич ће вас провести кроз основне концепте MCP-а. Научићете о његовој клијент-сервер архитектури, кључним компонентама, механизмима комуникације и најбољим праксама за имплементацију.
-
Експлицитна сагласност корисника: Сваки приступ подацима и операције захтевају експлицитно одобрење корисника пре извршења. Корисници морају јасно разумети који ће подаци бити приступачни и које ће радње бити извршене, уз детаљну контролу над дозволама и овлашћењима.
-
Заштита приватности података: Кориснички подаци се излажу само уз експлицитну сагласност и морају бити заштићени робусним контролама приступа током целог животног циклуса интеракције. Имплементације морају спречити неовлашћен пренос података и одржавати строге границе приватности.
-
Безбедност извршавања алата: Свака активација алата захтева експлицитну сагласност корисника уз јасно разумевање функционалности алата, параметара и потенцијалног утицаја. Робусне безбедносне границе морају спречити ненамерно, небезбедно или злонамерно извршавање алата.
-
Безбедност транспортног слоја: Сви комуникациони канали треба да користе одговарајуће механизме за шифровање и аутентификацију. Удаљене везе треба да имплементирају безбедне транспортне протоколе и правилно управљање акредитивима.
- Управљање дозволама: Имплементирајте систем дозвола са детаљном контролом који омогућава корисницима да одреде којим серверима, алатима и ресурсима се може приступити
- Аутентификација и овлашћење: Користите безбедне методе аутентификације (OAuth, API кључеве) са правилним управљањем токенима и њиховим истеком
- Валидација уноса: Проверавајте све параметре и уносе података према дефинисаним шемама како бисте спречили нападе убризгавањем
- Аудит логови: Одржавајте свеобухватне записе свих операција ради праћења безбедности и усклађености
Ова лекција истражује основну архитектуру и компоненте које чине екосистем Model Context Protocol (MCP). Научићете о клијент-сервер архитектури, кључним компонентама и механизмима комуникације који покрећу MCP интеракције.
До краја ове лекције, моћи ћете да:
- Разумете MCP клијент-сервер архитектуру.
- Идентификујете улоге и одговорности Хостова, Клијената и Сервера.
- Анализирате основне карактеристике које MCP чине флексибилним слојем за интеграцију.
- Научите како информације протичу унутар MCP екосистема.
- Стекнете практична знања кроз примере кода у .NET, Java, Python и JavaScript.
Екосистем MCP је изграђен на клијент-сервер моделу. Ова модуларна структура омогућава AI апликацијама да ефикасно комуницирају са алатима, базама података, API-јевима и контекстуалним ресурсима. Хајде да разложимо ову архитектуру на њене основне компоненте.
У својој суштини, MCP прати клијент-сервер архитектуру где хост апликација може да се повеже са више сервера:
flowchart LR
subgraph "Your Computer"
Host["Host with MCP (Visual Studio, VS Code, IDEs, Tools)"]
S1["MCP Server A"]
S2["MCP Server B"]
S3["MCP Server C"]
Host <-->|"MCP Protocol"| S1
Host <-->|"MCP Protocol"| S2
Host <-->|"MCP Protocol"| S3
S1 <--> D1[("Local\Data Source A")]
S2 <--> D2[("Local\Data Source B")]
end
subgraph "Internet"
S3 <-->|"Web APIs"| D3[("Remote\Services")]
end
- MCP Хостови: Програми као што су VSCode, Claude Desktop, IDE-ови или AI алати који желе да приступе подацима преко MCP-а
- MCP Клијенти: Протокол клијенти који одржавају 1:1 везе са серверима
- MCP Сервери: Лагани програми који излажу специфичне могућности кроз стандардизован MCP
- Локални извори података: Фајлови, базе података и услуге на вашем рачунару којима MCP сервери могу безбедно приступити
- Удаљене услуге: Спољашњи системи доступни преко интернета којима MCP сервери могу приступити преко API-ја.
MCP протокол је еволутивни стандард који користи верзионисање засновано на датуму (YYYY-MM-DD формат). Тренутна верзија протокола је 2025-06-18. Најновија ажурирања спецификације протокола можете видети овде.
У Model Context Protocol (MCP), Хостови су AI апликације које служе као примарни интерфејс преко којег корисници комуницирају са протоколом. Хостови координишу и управљају везама са више MCP сервера креирањем посебних MCP клијената за сваку серверску везу. Примери Хостова укључују:
- AI апликације: Claude Desktop, Visual Studio Code, Claude Code
- Развојна окружења: IDE-ови и едитори кода са MCP интеграцијом
- Прилагођене апликације: Специјализовани AI агенти и алати
Хостови су апликације које координишу интеракције AI модела. Они:
- Оркестрирају AI моделе: Извршавају или комуницирају са LLM-овима ради генерисања одговора и координације AI токова рада
- Управљају клијентским везама: Креирају и одржавају једног MCP клијента по MCP серверској вези
- Контролишу кориснички интерфејс: Управљају током разговора, интеракцијама са корисником и приказом одговора
- Спроводе безбедност: Контролишу дозволе, безбедносна ограничења и аутентификацију
- Рукују корисничком сагласношћу: Управљају одобрењем корисника за дељење података и извршавање алата
Клијенти су суштинске компоненте које одржавају посебне један-на-један везе између Хостова и MCP сервера. Сваки MCP клијент је инстанциран од стране Хоста да би се повезао са одређеним MCP сервером, обезбеђујући организоване и безбедне комуникационе канале. Више клијената омогућава Хостовима да се истовремено повежу са више сервера.
Клијенти су конекторске компоненте унутар хост апликације. Они:
- Комуникација протокола: Шаљу JSON-RPC 2.0 захтеве серверима са упутствима и инструкцијама
- Преговарање могућности: Преговарају о подржаним функцијама и верзијама протокола са серверима током иницијализације
- Извршавање алата: Управљају захтевима за извршавање алата од модела и обрађују одговоре
- Ажурирања у реалном времену: Рукују обавештењима и ажурирањима у реалном времену од сервера
- Обрада одговора: Обрађују и форматирају одговоре сервера за приказ корисницима
Сервери су програми који пружају контекст, алате и могућности MCP клијентима. Они могу бити извршени локално (на истом рачунару као и Хост) или удаљено (на спољашњим платформама), и одговорни су за руковање захтевима клијената и пружање структуираних одговора. Сервери излажу специфичну функционалност кроз стандардизован Model Context Protocol.
Сервери су услуге које пружају контекст и могућности. Они:
- Регистрација функција: Региструју и излажу доступне примитиве (ресурсе, упите, алате) клијентима
- Обрада захтева: Примају и извршавају позиве алата, захтеве за ресурсима и упите од клијената
- Пружање контекста: Пружају контекстуалне информације и податке за побољшање одговора модела
- Управљање стањем: Одржавају стање сесије и рукују интеракцијама које захтевају стање када је потребно
- Обавештења у реалном времену: Шаљу обавештења о променама могућности и ажурирањима повезаним клијентима
Сервери могу бити развијени од стране било кога како би проширили могућности модела специјализованом функционалношћу, и подржавају и локалне и удаљене сценарије примене.
Сервери у Model Context Protocol (MCP) пружају три основна примитива која дефинишу основне грађевинске блокове за богате интеракције између клијената, хостова и језичких модела. Ови примитиви одређују типове контекстуалних информација и радњи доступних кроз протокол.
MCP сервери могу излагати било коју комбинацију следећих три основна примитива:
Ресурси су извори података који пружају контекстуалне информације AI апликацијама. Они представљају статички или динамички садржај који може побољшати разумевање и доношење одлука модела:
- Контекстуални подаци: Структурисане информације и контекст за AI модел
- Базе знања: Репозиторијуми докумената, чланци, приручници и истраживачки радови
- Локални извори података: Фајлови, базе података и информације локалног система
- Спољашњи подаци: Одговори API-ја, веб услуге и подаци удаљених система
- Динамички садржај: Подаци у реалном времену који се ажурирају на основу спољашњих услова
Ресурси се идентификују URI-јевима и подржавају откривање преко resources/list и преузимање преко resources/read метода:
file://documents/project-spec.md
database://production/users/schema
api://weather/current
Упити су поновљиви шаблони који помажу у структуирању интеракција са језичким моделима. Они пружају стандардизоване обрасце интеракције и шаблоне токова рада:
- Интеракције засноване на шаблонима: Унапред структуиране поруке и почетни упити
- Шаблони токова рада: Стандардизовани низови за уобичајене задатке и интеракције
- Примери Few-shot: Шаблони засновани на примерима за инструкције моделу
- Системски упити: Основни упити који дефинишу понашање и контекст модела
- Динамички шаблони: Параметризовани упити који се прилагођавају специфичним контекстима
Упити подржавају замену променљивих и могу се открити преко prompts/list и преузети са prompts/get:
Generate a {{task_type}} for {{product}} targeting {{audience}} with the following requirements: {{requirements}}Алати су извршиве функције које AI модели могу позвати ради извршења специфичних радњи. Они представљају "глаголе" MCP екосистема, омогућавајући моделима да комуницирају са спољашњим системима:
- Извршиве функције: Дискретне операције које модели могу позвати са специфичним параметрима
- Интеграција спољашњих система: Позиви API-ја, упити база података, операције над фајловима, прорачуни
- Јединствени идентитет: Сваки алат има јединствено име, опис и шему параметара
- Структурисани улаз/излаз: Алати прихватају валидиране параметре и враћају структурисане, типизиране одговоре
- Могућности акције: Омогућавају моделима да извршавају радње у стварном свету и добијају актуелне податке
Алати су дефинисани JSON шемом за валидацију параметара и откривају се преко tools/list и извршавају преко tools/call:
server.tool(
"search_products",
{
query: z.string().describe("Search query for products"),
category: z.string().optional().describe("Product category filter"),
max_results: z.number().default(10).describe("Maximum results to return")
},
async (params) => {
// Execute search and return structured results
return await productService.search(params);
}
);У Model Context Protocol (MCP), клијенти могу излагати примитиве који омогућавају серверима да захтевају додатне могућности од хост апликације. Ови примитиви на страни клијента омогућавају богатије, интерактивније имплементације сервера које могу приступити могућностима AI модела и интеракцијама са корисником.
Узорковање омогућава серверима да захтевају завршетке језичког модела од AI апликације клијента. Овај примитив омогућава серверима приступ LLM могућностима без уграђивања сопствених зависности модела:
- Приступ независан од модела: Сервери могу захтевати завршетке без укључивања LLM SDK-ова или управљања приступом моделу
- AI иницијатива сервера: Омогућава серверима да аутономно генеришу садржај користећи AI модел клијента
- Рекурзивне LLM интеракције: Подржава сложене сценарије где серверима треба AI помоћ за обраду
- Генерисање динамичког садржаја: Омогућава серверима да креирају контекстуалне одговоре користећи модел хоста
Узорковање се иницира преко sampling/complete методе, где сервери шаљу захтеве за завршетке клијентима.
Елицитација омогућава серверима да захтевају додатне информације или потврду од корисника преко интерфејса клијента:
- Захтеви за унос корисника: Сервери могу тражити додатне информације када су потребне за извршење алата
- Дијалози за потврду: Захтевају одобрење корисника за осетљиве или утицајне операције
- Интерактивни токови рада: Омогућавају серверима да креирају корак-по-корак интеракције са корисником
- Динамичко прикупљање параметара:
- JSON-RPC 2.0 Протокол: Сва комуникација користи стандардизовани JSON-RPC 2.0 формат порука за позиве метода, одговоре и обавештења
- Управљање животним циклусом: Обрађује иницијализацију везе, преговарање о могућностима и завршетак сесије између клијената и сервера
- Серверски примитиви: Омогућава серверима да пружају основну функционалност кроз алате, ресурсе и шаблоне
- Клијентски примитиви: Омогућава серверима да захтевају узорковање од LLM-ова, траже унос од корисника и шаљу поруке у дневник
- Обавештења у реалном времену: Подржава асинхрона обавештења за динамичка ажурирања без потребе за честим проверама
- Преговарање о верзији протокола: Користи верзионисање засновано на датуму (ГГГГ-ММ-ДД) ради осигурања компатибилности
- Откривање могућности: Клијенти и сервери размењују информације о подржаним функцијама током иницијализације
- Сесије са стањем: Одржава стање везе током више интеракција ради континуитета контекста
Транспортни слој управља комуникационим каналима, форматирањем порука и аутентификацијом између MCP учесника:
-
STDIO транспорт:
- Користи стандардне улазно/излазне токове за директну комуникацију процеса
- Оптималан за локалне процесе на истој машини без мрежног оптерећења
- Често се користи за локалне имплементације MCP сервера
-
Стримујући HTTP транспорт:
- Користи HTTP POST за поруке од клијента ка серверу
- Опционо Server-Sent Events (SSE) за стримовање од сервера ка клијенту
- Омогућава комуникацију са удаљеним серверима преко мрежа
- Подржава стандардну HTTP аутентификацију (токени, API кључеви, прилагођени хедери)
- MCP препоручује OAuth за сигурну аутентификацију засновану на токенима
Транспортни слој апстрахује детаље комуникације од слоја података, омогућавајући исти JSON-RPC 2.0 формат порука за све транспортне механизме. Ова апстракција омогућава апликацијама да лако прелазе између локалних и удаљених сервера.
MCP имплементације морају поштовати неколико кључних безбедносних принципа како би осигурале сигурне, поуздане и безбедне интеракције у свим операцијама протокола:
-
Пристанак и контрола корисника: Корисници морају дати изричиту сагласност пре приступа подацима или извршавања операција. Требало би да имају јасну контролу над тим који подаци се деле и које акције су одобрене, уз подршку интуитивних интерфејса за преглед и одобравање активности.
-
Приватност података: Кориснички подаци могу бити изложени само уз изричиту сагласност и морају бити заштићени одговарајућим контролама приступа. MCP имплементације морају спречити неовлашћен пренос података и осигурати да се приватност одржава током свих интеракција.
-
Безбедност алата: Пре позивања било ког алата, потребна је изричита сагласност корисника. Корисници треба да имају јасно разумевање функционалности сваког алата, а морају се спровести робусне безбедносне границе како би се спречило ненамерно или небезбедно извршавање алата.
Придржавањем ових безбедносних принципа, MCP осигурава да се поверење корисника, приватност и безбедност одржавају у свим интеракцијама протокола, истовремено омогућавајући моћне интеграције са вештачком интелигенцијом.
Испод су примери кода на неколико популарних програмских језика који илуструју како имплементирати кључне компоненте и алате MCP сервера.
Ово је практичан пример кода на .NET-у који демонстрира како имплементирати једноставан MCP сервер са прилагођеним алатима. Пример приказује како дефинисати и регистровати алате, обрађивати захтеве и повезати сервер користећи Model Context Protocol.
using System;
using System.Threading.Tasks;
using ModelContextProtocol.Server;
using ModelContextProtocol.Server.Transport;
using ModelContextProtocol.Server.Tools;
public class WeatherServer
{
public static async Task Main(string[] args)
{
// Create an MCP server
var server = new McpServer(
name: "Weather MCP Server",
version: "1.0.0"
);
// Register our custom weather tool
server.AddTool<string, WeatherData>("weatherTool",
description: "Gets current weather for a location",
execute: async (location) => {
// Call weather API (simplified)
var weatherData = await GetWeatherDataAsync(location);
return weatherData;
});
// Connect the server using stdio transport
var transport = new StdioServerTransport();
await server.ConnectAsync(transport);
Console.WriteLine("Weather MCP Server started");
// Keep the server running until process is terminated
await Task.Delay(-1);
}
private static async Task<WeatherData> GetWeatherDataAsync(string location)
{
// This would normally call a weather API
// Simplified for demonstration
await Task.Delay(100); // Simulate API call
return new WeatherData {
Temperature = 72.5,
Conditions = "Sunny",
Location = location
};
}
}
public class WeatherData
{
public double Temperature { get; set; }
public string Conditions { get; set; }
public string Location { get; set; }
}Овај пример демонстрира исти MCP сервер и регистрацију алата као у .NET примеру изнад, али имплементиран у Јави.
import io.modelcontextprotocol.server.McpServer;
import io.modelcontextprotocol.server.McpToolDefinition;
import io.modelcontextprotocol.server.transport.StdioServerTransport;
import io.modelcontextprotocol.server.tool.ToolExecutionContext;
import io.modelcontextprotocol.server.tool.ToolResponse;
public class WeatherMcpServer {
public static void main(String[] args) throws Exception {
// Create an MCP server
McpServer server = McpServer.builder()
.name("Weather MCP Server")
.version("1.0.0")
.build();
// Register a weather tool
server.registerTool(McpToolDefinition.builder("weatherTool")
.description("Gets current weather for a location")
.parameter("location", String.class)
.execute((ToolExecutionContext ctx) -> {
String location = ctx.getParameter("location", String.class);
// Get weather data (simplified)
WeatherData data = getWeatherData(location);
// Return formatted response
return ToolResponse.content(
String.format("Temperature: %.1f°F, Conditions: %s, Location: %s",
data.getTemperature(),
data.getConditions(),
data.getLocation())
);
})
.build());
// Connect the server using stdio transport
try (StdioServerTransport transport = new StdioServerTransport()) {
server.connect(transport);
System.out.println("Weather MCP Server started");
// Keep server running until process is terminated
Thread.currentThread().join();
}
}
private static WeatherData getWeatherData(String location) {
// Implementation would call a weather API
// Simplified for example purposes
return new WeatherData(72.5, "Sunny", location);
}
}
class WeatherData {
private double temperature;
private String conditions;
private String location;
public WeatherData(double temperature, String conditions, String location) {
this.temperature = temperature;
this.conditions = conditions;
this.location = location;
}
public double getTemperature() {
return temperature;
}
public String getConditions() {
return conditions;
}
public String getLocation() {
return location;
}
}У овом примеру приказујемо како изградити MCP сервер у Пајтону. Такође су приказана два различита начина за креирање алата.
#!/usr/bin/env python3
import asyncio
from mcp.server.fastmcp import FastMCP
from mcp.server.transports.stdio import serve_stdio
# Create a FastMCP server
mcp = FastMCP(
name="Weather MCP Server",
version="1.0.0"
)
@mcp.tool()
def get_weather(location: str) -> dict:
"""Gets current weather for a location."""
# This would normally call a weather API
# Simplified for demonstration
return {
"temperature": 72.5,
"conditions": "Sunny",
"location": location
}
# Alternative approach using a class
class WeatherTools:
@mcp.tool()
def forecast(self, location: str, days: int = 1) -> dict:
"""Gets weather forecast for a location for the specified number of days."""
# This would normally call a weather API forecast endpoint
# Simplified for demonstration
return {
"location": location,
"forecast": [
{"day": i+1, "temperature": 70 + i, "conditions": "Partly Cloudy"}
for i in range(days)
]
}
# Instantiate the class to register its tools
weather_tools = WeatherTools()
# Start the server using stdio transport
if __name__ == "__main__":
asyncio.run(serve_stdio(mcp))Овај пример приказује креирање MCP сервера у ЈаваСкрипту и како регистровати два алата повезана са временским условима.
// Using the official Model Context Protocol SDK
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod"; // For parameter validation
// Create an MCP server
const server = new McpServer({
name: "Weather MCP Server",
version: "1.0.0"
});
// Define a weather tool
server.tool(
"weatherTool",
{
location: z.string().describe("The location to get weather for")
},
async ({ location }) => {
// This would normally call a weather API
// Simplified for demonstration
const weatherData = await getWeatherData(location);
return {
content: [
{
type: "text",
text: `Temperature: ${weatherData.temperature}°F, Conditions: ${weatherData.conditions}, Location: ${weatherData.location}`
}
]
};
}
);
// Define a forecast tool
server.tool(
"forecastTool",
{
location: z.string(),
days: z.number().default(3).describe("Number of days for forecast")
},
async ({ location, days }) => {
// This would normally call a weather API
// Simplified for demonstration
const forecast = await getForecastData(location, days);
return {
content: [
{
type: "text",
text: `${days}-day forecast for ${location}: ${JSON.stringify(forecast)}`
}
]
};
}
);
// Helper functions
async function getWeatherData(location) {
// Simulate API call
return {
temperature: 72.5,
conditions: "Sunny",
location: location
};
}
async function getForecastData(location, days) {
// Simulate API call
return Array.from({ length: days }, (_, i) => ({
day: i + 1,
temperature: 70 + Math.floor(Math.random() * 10),
conditions: i % 2 === 0 ? "Sunny" : "Partly Cloudy"
}));
}
// Connect the server using stdio transport
const transport = new StdioServerTransport();
server.connect(transport).catch(console.error);
console.log("Weather MCP Server started");Овај ЈаваСкрипт пример демонстрира како креирати MCP клијент који се повезује са сервером, шаље упит и обрађује одговор укључујући позиве алата који су извршени.
MCP укључује неколико уграђених концепата и механизама за управљање безбедношћу и ауторизацијом током целог протокола:
-
Контрола дозвола за алате:
Клијенти могу одредити које алате модел сме да користи током сесије. Ово осигурава да су доступни само изричито одобрени алати, смањујући ризик од ненамерних или небезбедних операција. Дозволе се могу динамички конфигурисати на основу корисничких преференција, организационих политика или контекста интеракције. -
Аутентификација:
Сервери могу захтевати аутентификацију пре него што одобре приступ алатима, ресурсима или осетљивим операцијама. Ово може укључивати API кључеве, OAuth токене или друге шеме аутентификације. Правилна аутентификација осигурава да само поуздани клијенти и корисници могу позивати серверске могућности. -
Валидација:
Валидација параметара се спроводи за све позиве алата. Сваки алат дефинише очекиване типове, формате и ограничења за своје параметре, а сервер валидацију захтева у складу с тим. Ово спречава да неисправан или злонамеран унос дође до имплементације алата и помаже у одржавању интегритета операција. -
Ограничење брзине:
Да би се спречила злоупотреба и осигурало правично коришћење серверских ресурса, MCP сервери могу имплементирати ограничење брзине за позиве алата и приступ ресурсима. Ограничења брзине могу се примењивати по кориснику, по сесији или глобално, и помажу у заштити од напада ускраћивања услуге или прекомерне потрошње ресурса.
Комбинујући ове механизме, MCP пружа сигурну основу за интеграцију језичких модела са спољним алатима и изворима података, истовремено дајући корисницима и програмерима прецизну контролу над приступом и употребом.
MCP комуникација користи структуриране JSON-RPC 2.0 поруке за олакшавање јасних и поузданих интеракција између хостова, клијената и сервера. Протокол дефинише специфичне обрасце порука за различите типове операција:
initializeЗахтев: Успоставља везу и преговара о верзији протокола и могућностимаinitializeОдговор: Потврђује подржане функције и информације о серверуnotifications/initialized: Сигнализира да је иницијализација завршена и да је сесија спремна
tools/listЗахтев: Открива доступне алате са сервераresources/listЗахтев: Листира доступне ресурсе (изворе података)prompts/listЗахтев: Преузима доступне шаблоне упита
tools/callЗахтев: Извршава одређени алат са датим параметримаresources/readЗахтев: Преузима садржај из одређеног ресурсаprompts/getЗахтев: Преузима шаблон упита са опционим параметрима
sampling/completeЗахтев: Сервер захтева завршетак LLM-а од клијентаelicitation/request: Сервер захтева унос корисника преко клијентског интерфејса- Поруке дневника: Сервер шаље структуриране поруке у дневник клијенту
notifications/tools/list_changed: Сервер обавештава клијента о променама алатаnotifications/resources/list_changed: Сервер обавештава клијента о променама ресурсаnotifications/prompts/list_changed: Сервер обавештава клијента о променама шаблона
Све MCP поруке прате JSON-RPC 2.0 формат са:
- Захтевима: Укључују
id,methodи опционеparams - Одговорима: Укључују
idи илиresultилиerror - Обавештењима: Укључују
methodи опционеparams(безidили очекиваног одговора)
Ова структурирана комуникација осигурава поуздане, пратљиве и прошириве интеракције које подржавају напредне сценарије као што су ажурирања у реалном времену, ланчање алата и робусно руковање грешкама.
- Архитектура: MCP користи архитектуру клијент-сервер где хостови управљају више клијентских веза са серверима
- Учесници: Екосистем укључује хостове (AI апликације), клијенте (конектори протокола) и сервере (пружаоце могућности)
- Транспортни механизми: Комуникација подржава STDIO (локално) и стримујући HTTP са опционим SSE (удаљено)
- Основни примитиви: Сервери излажу алате (извршиве функције), ресурсе (изворе података) и шаблоне (упите)
- Клијентски примитиви: Сервери могу захтевати узорковање (LLM завршетке), тражење уноса (кориснички унос) и евидентирање од клијената
- Основе протокола: Заснован на JSON-RPC 2.0 са верзионисањем заснованим на датуму (тренутно: 2025-06-18)
- Могућности у реалном времену: Подржава обавештења за динамичка ажурирања и синхронизацију у реалном времену
- Безбедност на првом месту: Изричита сагласност корисника, заштита приватности података и сигуран транспорт су основни захтеви
Дизајнирајте једноставан MCP алат који би био користан у вашој области. Дефинишите:
- Како би се алат звао
- Које параметре би прихватао
- Какав излаз би враћао
- Како би модел могао да користи овај алат за решавање проблема корисника
Следеће: Поглавље 2: Безбедност
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква неспоразумевања или погрешна тумачења настала услед коришћења овог превода.
