Описание проблемы
Сервер yandex-cloud-documentation (доступный по адресу https://docs.mcp.cloud.yandex.net/mcp) в ответ на запрос resources/list возвращает null в поле resources вместо пустого массива []. Это нарушает спецификацию протокола MCP и приводит к сбою MCP-клиентов, которые не ожидают null на этом месте.
Как воспроизвести
Подключиться к серверу через mcp-remote и выполнить следующую последовательность JSON-RPC запросов:
npx -y mcp-remote https://docs.mcp.cloud.yandex.net/mcp
Затем отправить в stdin:
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
{"jsonrpc":"2.0","id":2,"method":"resources/list","params":{}}
Фактический результат
{"jsonrpc":"2.0","id":2,"result":{"resources":null}}
Ожидаемый результат
Согласно спецификации MCP, если сервер не предоставляет ресурсов, он должен вернуть пустой массив:
{"jsonrpc":"2.0","id":2,"result":{"resources":[]}}
Что примечательно
При этом в ответе на initialize сервер объявляет поддержку resources:
"capabilities": {
"resources": {"subscribe": true, "listChanged": true},
"tools": {"listChanged": true}
}
То есть сервер заявляет о поддержке Resources, но возвращает null при их запросе — это противоречие.
Последствия
Данная проблема приводит к NullReferenceException в клиентской библиотеке ModelContextProtocol в Visual Studio (GitHub Copilot), из-за чего сервер отображается как неработающий (статус "Сбой"), хотя инструмент documentation_generative_search технически доступен.
Воспроизводится в Visual Studio 2026 с GitHub Copilot и библиотекой ModelContextProtocol.
Предлагаемое исправление
Вернуть пустой массив вместо null в методе resources/list:
Это однострочное исправление на стороне сервера устранит проблему для всех MCP-клиентов, строго следующих спецификации.
Описание проблемы
Сервер
yandex-cloud-documentation(доступный по адресуhttps://docs.mcp.cloud.yandex.net/mcp) в ответ на запросresources/listвозвращаетnullв полеresourcesвместо пустого массива[]. Это нарушает спецификацию протокола MCP и приводит к сбою MCP-клиентов, которые не ожидаютnullна этом месте.Как воспроизвести
Подключиться к серверу через
mcp-remoteи выполнить следующую последовательность JSON-RPC запросов:Затем отправить в stdin:
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}} {"jsonrpc":"2.0","method":"notifications/initialized","params":{}} {"jsonrpc":"2.0","id":2,"method":"resources/list","params":{}}Фактический результат
{"jsonrpc":"2.0","id":2,"result":{"resources":null}}Ожидаемый результат
Согласно спецификации MCP, если сервер не предоставляет ресурсов, он должен вернуть пустой массив:
{"jsonrpc":"2.0","id":2,"result":{"resources":[]}}Что примечательно
При этом в ответе на
initializeсервер объявляет поддержку resources:То есть сервер заявляет о поддержке Resources, но возвращает
nullпри их запросе — это противоречие.Последствия
Данная проблема приводит к
NullReferenceExceptionв клиентской библиотекеModelContextProtocolв Visual Studio (GitHub Copilot), из-за чего сервер отображается как неработающий (статус "Сбой"), хотя инструментdocumentation_generative_searchтехнически доступен.Воспроизводится в Visual Studio 2026 с GitHub Copilot и библиотекой
ModelContextProtocol.Предлагаемое исправление
Вернуть пустой массив вместо
nullв методеresources/list:{"resources": []}Это однострочное исправление на стороне сервера устранит проблему для всех MCP-клиентов, строго следующих спецификации.