Изменения

2717 байт добавлено ,  1 месяц назад
Строка 73: Строка 73:     
Такая архитектура позволяет создать целостную экосистему, в которой модели ИИ могут беспрепятственно подключаться к постоянно растущему массиву внешних инструментов и источников данных
 
Такая архитектура позволяет создать целостную экосистему, в которой модели ИИ могут беспрепятственно подключаться к постоянно растущему массиву внешних инструментов и источников данных
 +
 +
=== JSON-RPC ===
 +
В основе MCP лежит формат сообщений J[[SON-RPC 2.0]] для всего взаимодействия между клиентами и серверами.
 +
 +
JSON-RPC — это облегчённый протокол удалённого вызова процедур, использующий JSON для кодирования параметров.
 +
 +
Это делает его:
 +
 +
* Человекочитаемым и простым в отладке
 +
* Независимым от языка, поддерживающим реализацию в любой среде программирования
 +
* Хорошо зарекомендовавшим себя, с чёткими спецификациями и широким распространением
 +
 +
Протокол определяет три типа сообщений:
 +
 +
'''1. Request (запрос)'''
 +
 +
Отправляется от Клиента Серверу для инициирования операции. Сообщение-запрос включает в себя:
 +
 +
* Уникальный идентификатор (id)
 +
* Имя вызываемого метода (например, tools/call)
 +
* Параметры метода (если есть)
 +
 +
Пример запроса:
 +
{
 +
  "jsonrpc": "2.0",
 +
  "id": 1,
 +
  "method": "tools/call",
 +
  "params": {
 +
    "name": "weather",
 +
    "arguments": {
 +
      "location": "San Francisco"
 +
    }
 +
  }
 +
}
 +
'''2. Response (ответ)'''
 +
 +
Отправляется от сервера клиенту в ответ на запрос. Ответное сообщение содержит:
 +
 +
* Тот же идентификатор, что и у соответствующего запроса
 +
* Результат (в случае успеха) или ошибку (в случае неудачи)
 +
 +
Пример ответа при успешном выполнении:
 +
{
 +
  "jsonrpc": "2.0",
 +
  "id": 1,
 +
  "result": {
 +
    "temperature": 62,
 +
    "conditions": "Partly cloudy"
 +
  }
 +
}
 +
Пример ответа об ошибке:
 +
{
 +
  "jsonrpc": "2.0",
 +
  "id": 1,
 +
  "error": {
 +
    "code": -32602,
 +
    "message": "Invalid location parameter"
 +
  }
 +
}
 +
'''3. Notification (уведомление)'''
 +
 +
Односторонние сообщения, не требующие ответа.
 +
 +
Обычно отправляются от сервера клиенту для предоставления обновлений или уведомлений о событиях.
 +
 +
Пример уведомления:
 +
{
 +
  "jsonrpc": "2.0",
 +
  "method": "progress",
 +
  "params": {
 +
    "message": "Processing data...",
 +
    "percent": 50
 +
  }
 +
}
    
== Внедрение ==
 
== Внедрение ==