- BrainTools - https://www.braintools.ru -

Этот MCP‑сервер можно было бы уложить в файле JSON

Сейчас много говорят о MCP (протоколе контекста модели). Я вообще не уверен, что он нужен

Сейчас много говорят о серверах стандарта MCP (протокол контекста модели) [1]. Идея проста: учим большие языковые модели (LLM) [2] взаимодействовать с другими программными системами. В процессе такой работы LLM могут учиться и давать реальный эффект. Например, вызвать веб‑сервер, чтобы позвонить по телефону, либо открыть инструмент для работы с интерфейсом командной строки (CLI) [3] и добавить пункт в список продуктов в приложении‑напоминалке для походов в магазин, и так далее. Чтобы выполнять такие операции, LLM должны знать, какие именно программы они вправе вызывать, и как это делать. Именно эту проблему и решает MCP: он сообщает LLM обо всех имеющихся в распоряжении программах, учит LLM ими пользоваться, а также прокладывает путь, по которому LLM может вызывать софт.

Разработчики пишут MCP‑серверы, обеспечивающие большие языковые модели ресурсамипромптами и инструментами. На сайте MCP эти концепции подробно обсуждаются [4], но в разделе Ключевые концепции MCP [5] они резюмированы так:

  1. Ресурсы [6]: файлоподобные данные, которые могут считываться клиентами (например, отклики API или содержимое файлов)

  2. Инструменты [7]: функции, которые LLM может вызывать (с одобрения пользователя)

  3. Промпты [8]: заранее написанные шаблоны, при помощи которых пользователи могут решать конкретные задачи

Эти категории сформулированы вольно и могут запутать. На первый взгляд кажется, что ресурсы доступны только для чтения, а инструменты — только для записи. Но в документации на сервере MCP инструменты рассматриваются на примере searchFlights [9] — это операция только для чтения. Потом они ещё сильнее всё запутывают, показывая поиск авиарейсов как ресурс. Вот какое определение инструмента они дают:

{
  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"]
  }
}

А вот определение ресурса в их трактовке:

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

Промпты — это просто статические определения в формате JSON [10], описывающие потенциальные действия пользователя.

Весь этот протокол кажется мне каким‑то лишним. Промпты — это просто статическая документация, ресурсы — статические определения URL, а инструменты выглядят как определения вызовов удалённых процедур (RPC) [11]. Я попросил ChatGPT 5 Thinking [12] преобразовать определение инструмента searchFlights в определение OpenAPI [13] (в сущности, это и есть определение RPC). Не удивительно, что это сразу сработало:

openapi: 3.0.0
info:
  title: Flights API
  version: "1.0.0"
paths:
  /searchFlights:
    get:
      operationId: searchFlights
      summary: Search for available flights
      description: Search for available flights
      parameters:
        - in: query
          name: origin
          required: true
          description: Departure city
          schema:
            type: string
        - in: query
          name: destination
          required: true
          description: Arrival city
          schema:
            type: string
        - in: query
          name: date
          required: true
          description: Travel date
          schema:
            type: string
            format: date
      responses:
        "200":
          description: Search results
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object

Поэтому напрашивается вопрос: а зачем нужен MCP для определения инструментов? У нас уже есть OpenAPI [14]gRPC [15] и CLI. ChatGPT понимает определения OpenAPI. Уже существуют миллионы веб‑сервисов, также предоставляющих определения OpenAPI. А ChatGPT уже превосходит большинство людей в обращении с CLI — сами посмотрите, как Codex [16] управляется с командами sed, awk и grep. Недавно друг рассказал мне, что ему удалось научить ChatGPT пользоваться tmux [17]Вот как об этом сказано в статье «MCP vs CLI: Benchmarking Tools for Coding Agents» [18]:

MCP в сравнении с CLI — это как шило на мыло: terminalcp в версии как с MCP, так и с CLI достигает успеха в 100% случаев. Версия с MCP оказалась на 23% бвстрее (51 m и 66 m) и на 2,5% дешевле ($19.45 против $19.95)..

MCP в сравнении с CLI — это как шило на мыло: terminalcp в версии как с MCP, так и с CLI достигает успеха в 100% случаев. Версия с MCP оказалась на 23% бвстрее (51 m и 66 m) и на 2,5% дешевле ($19.45 против $19.95).

Я видел ряд аргументов [19], призванных оправдать существование MCP:

  1. Контекстное окно у LLM ограничено. В свою очередь, документация OpenAPI занимает слишком много места в этом контексте.

  2. Многие сервисы не слишком хорошо документированы; к ним не предоставляется спецификация API.

  3. LLM нужно каким‑то образом обнаруживать, какие инструменты есть у неё в распоряжении.

Скептически к этому отношусь. Пожалуй, MCP действительно позволяет втиснуть в контекстное окно пару дополнительных инструментов. Может быть, с ним модели работают чуть‑чуть быстрее. Документация к OpenAPI действительно кажется несколько многословной. Но как долго это будет иметь значение?

В прошлом году речь шла о модели на миллион токенов. Теперь в OpenRouter [20] есть модели на 2 миллиона токенов [21]. Не стоят на месте исследования по более мелким моделям, тонкой настройке, в таком духе. С такой точки зрения [22] MCP кажется просто временным костылём.

Последний довод о том, что многие сервисы плохо документированы справедлив для внутрикорпоративных сервисов больших предприятий. Например, это отмечает Джейк Мэнникс [23] в своём треде [24]. Я слышал, что протокол MCP шире всего задействован именно в этом сегменте.

С клиентоориентированными SaaS API совсем другая история. Известно, насколько [25] хорошо документированы [26] многие из них [27]. Некоторые сложноваты, но часто это неотъемлемая сложность [28] (могу это подтвердить по опыту [29] работы с API WePay [30]).

Более того, аргумент создаёт впечатление [31], как будто те самые люди, которые написали плохие спецификации к OpenAPI, напишут хорошие спецификации к MCP. Неубедительно. (Опять же, даже если бы им это было под силу, почему бы не написать конечную точку в стиле OpenAPI или как инструмент CLI?)

пост

«Не понимаю этого баттла между CLI и MCP. Может быть, я что‑то упускаю?»

Почему MCP может послужить хорошей заменой такому локализованному инструменту как CLI? В лучшем случае, это кажется дискуссией об использовании песочниц, то есть, о том, где запускается MCP, а не где фактически работает — фактически же он интегрирован в сетевой уровень«.»

Что касается обнаружения сервисов — соглашусь, что LLM необходимо знать, где находятся инструменты, и как их использовать. Но это статическое содержимое. У нас уже есть AGENTS.md [33].github/instructions [34]openapi.json [35] и так далее

Разработчики [36] на это [37] реагируют [38]. В компании Bruin [39] MCP используется просто для предоставления документации [40]; инструменты они вызывают через обычные команды CLI. В Donobu [41] sпросто предоставляют спецификацию OpenAPI. Оба решения рабочие. Тем временем, в Google Trends тренд MCP выглядит бледно.

[42]

Интерес к запросу “mcp” по данным Google Trends за последнее время

Я не виню авторов MCP в таком беспорядке. В экосистеме ИИ всё происходит быстро. Протокол MCP — жертва собственного успеха. В MCP: An (Accidentally) Universal Plugin System [44] хорошо объяснена эта ситуация.

Нужно сделать шаг назад и обдумать, чего мы добиваемся. Нет такого закона, согласно которому LLM требовался бы новый протокол для взаимодействия с программами. Как правило, всё нужное уже есть. В тех случаях, когда чего‑то не хватает, нужно писать CLI, веб‑сервисы и документацию, опираясь на действующие стандарты.

Каков мой вывод? Может быть, лучше не спорить, что лучше — MCP или CLI — а начинать писать более качественные инструменты. Протокол — это просто прокладка. В данном случае важно, помогает ли ваш протокол агенту решать задачи или, наоборот, мешает.

‑Mario Zechner, MCP vs CLI: Benchmarking Tools for Coding Agents [18]

Книга

А ещё я написал книгу The Missing README: A Guide for the New Software Engineer [45], можете приобрести её для себя или для кого‑нибудь ещё.


Приобрести книгу:«README. Суровые реалии разработчиков» можно приобрести на нашем сайте. [46]

Автор: ph_piter

Источник [47]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/34871

URLs in this post:

[1] стандарта MCP (протокол контекста модели): https://modelcontextprotocol.io/

[2] большие языковые модели (LLM): https://en.wikipedia.org/wiki/Large_language_model

[3] интерфейсом командной строки (CLI): https://en.wikipedia.org/wiki/Command-line_interface

[4] эти концепции подробно обсуждаются: https://modelcontextprotocol.io/docs/learn/server-concepts

[5] Ключевые концепции MCP: https://modelcontextprotocol.io/docs/develop/build-server#core-mcp-concepts

[6] Ресурсы: https://modelcontextprotocol.io/docs/2026-07-28/learn/server-concepts#resources

[7] Инструменты: https://modelcontextprotocol.io/docs/learn/server-concepts#tools

[8] Промпты: https://modelcontextprotocol.io/docs/learn/server-concepts#prompts

[9] searchFlights: https://modelcontextprotocol.io/docs/learn/server-concepts#how-tools-work

[10] статические определения в формате JSON: https://modelcontextprotocol.io/docs/learn/server-concepts#example%3A-streamlined-workflows

[11] вызовов удалённых процедур (RPC): https://en.wikipedia.org/wiki/Remote_procedure_call

[12] ChatGPT 5 Thinking: https://openai.com/index/introducing-gpt-5/

[13] определение OpenAPI: https://swagger.io/specification/

[14] OpenAPI: https://www.openapis.org/

[15] gRPC: https://grpc.io/

[16] Codex: https://openai.com/codex/

[17] tmux: https://github.com/tmux/tmux/wiki

[18] Вот как об этом сказано в статье «MCP vs CLI: Benchmarking Tools for Coding Agents»: https://mariozechner.at/posts/2025-08-15-mcp-vs-cli/

[19] ряд аргументов: https://bsky.app/profile/did:plc:bjaceaxgoto5p7gor2rcov3g/post/3lxdmbcfsx226?ref_src=embed

[20] OpenRouter: https://openrouter.ai/

[21] на 2 миллиона токенов: https://x.com/OpenRouterAI/status/1964128504670540264

[22] зрения: http://www.braintools.ru/article/6238

[23] Джейк Мэнникс: https://www.linkedin.com/in/jakemannix

[24] своём треде: https://bsky.app/profile/yetanotheruseless.com/post/3lxdmbcpuac26

[25] насколько: https://docs.github.com/en/rest?apiVersion=2022-11-28

[26] документированы: https://plaid.com/docs/api/

[27] многие из них: https://auth0.com/docs/api/authentication

[28] неотъемлемая сложность: https://www.sciencedirect.com/topics/computer-science/inherent-complexity

[29] опыту: http://www.braintools.ru/article/6952

[30] API WePay: https://developer.wepay.com/api/

[31] впечатление: http://www.braintools.ru/article/2012

[32] пост: https://x.com/ianlivingstone/status/1965768133752262863

[33] AGENTS.md: http://AGENTS.md

[34] .github/instructions: http://.github/instructions

[35] openapi.json: https://swagger.io/specification/#openapi-description-structure

[36] Разработчики: https://x.com/sriramsubram/status/1960366044209467875

[37] на это: https://x.com/spencershum/status/1960379872490234342

[38] реагируют: https://x.com/kylemathews/status/1960365038918656093

[39] Bruin: https://getbruin.com/

[40] просто для предоставления документации: https://x.com/burakkarakann/status/1960391792202772956

[41] Donobu: https://www.donobu.com/

[42] : https://substackcdn.com/image/fetch/%24s_!cMux!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd7b8f6f-0253-49e7-82c7-23309e34ad02_1142x704.png

[43] Интерес к запросу «mcp» по данным Google Trends за последнее время: https://trends.google.com/trends/explore?geo=US&q=mcp&hl=en

[44] MCP: An (Accidentally) Universal Plugin System: https://worksonmymachine.ai/p/mcp-an-accidentally-universal-plugin

[45] The Missing README: A Guide for the New Software Engineer: https://www.amazon.com/Missing-README-Guide-Software-Engineer/dp/1718501838

[46] на нашем сайте.: https://www.piter.com/collection/all/product/readme-surovye-realii-razrabotchikov

[47] Источник: https://habr.com/ru/companies/piter/articles/1075812/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1075812

www.BrainTools.ru

Rambler's Top100