Содержание
Как подключить MCP-инструменты к DeepSeek
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Материал редакции Зерокодера. Счёт по выдаче снят собственным прогоном 12 октября 2026 года; цитаты источников приведены дословно. Обновлено: октябрь 2026.
Как подключить MCP-инструменты к DeepSeek: в официальном DeepSeek Harness работа с внешними MCP-серверами идёт через пакет @deepseek-ai/dsh-mcp-client. Вы добавляете запись конфигурации на каждый сервер, указываете уникальное имя и транспорт, и после старта инструменты сервера появляются в списке инструментов модели. Ни один сервер не включён по умолчанию.
Что такое MCP и кто здесь клиент
Model Context Protocol — открытый стандарт, по которому AI-приложение подключает внешние источники данных и инструменты. В связке с DeepSeek роли распределяются так: модель DeepSeek формирует запрос, DeepSeek Harness выступает хостом и клиентом, а внешний процесс или сервис предоставляет инструменты. Официальная документация пакета mcp-client в репозитории deepseek-ai/deepseek-harness описывает мост так: dsh-mcp-client даёт модели вызывать инструменты и читать ресурсы внешних MCP-серверов.
Важное следствие для читателя: мост живёт внутри Harness. Веб-чат chat.deepseek.com эту возможность сам по себе не получает. Отдельная документация по function calling на api-docs.deepseek.com описывает API, совместимый с форматами OpenAI и Anthropic: меняя конфигурацию, вы можете использовать SDK или программы, совместимые с этими API, для доступа к DeepSeek. Инструменты вроде Claude Code, GitHub Copilot или OpenCode могут работать с DeepSeek как с backend-моделью.
В группе mcp/ есть два пакета: mcp-client подключает один MCP-сервер и открывает его инструменты, инструкции и операции с ресурсами, а mcp-resources даёт общие инструменты обнаружения и чтения ресурсов с явным выбором сервера. Готовые профили Harness уже монтируют mcp-resources однократно, поэтому настраивать нужно только записи mcp-client.
Числовой срез выдачи, снятый редакцией: скачали подборку результатов веб-поиска по запросу «Как подключить MCP-инструменты к DeepSeek»: текст отдали 8 из 10. Медиана объёма читаемого текста топа — 1404 слова. Метку 2026 года несут 4 из 8 прочитанных страниц.
Требования и где брать реквизиты
Свои реквизиты вы берёте у владельца MCP-сервера, к которому подключаетесь. Это адрес endpoint для сетевого сервиса, токен или ключ доступа, иногда имя рабочей папки. Документация пакета mcp-client показывает оба способа: токен GitHub передаётся через переменную окружения GITHUB_TOKEN, а для сетевого сервера заголовок Authorization собирается из переменной MCP_TOKEN.
По официальной документации пакета требования к подключению такие:
| Поле | Обязательно | Смысл |
|---|---|---|
transport |
да | stdio или streamable-http |
serverName |
да | Пространство имён для названий инструментов сервера, от 1 до 32 символов из набора [A-Za-z0-9_-], уникально внутри области регистрации |
command / args / env / cwd |
для stdio | Исполняемый файл, аргументы, дополнительные переменные окружения поверх очищенного окружения, рабочая папка |
url / headers |
для streamable-http | Адрес endpoint и дополнительные заголовки запроса |
Официальный SDK выбирает протокол 2026-07-28, когда тот доступен, и откатывается к поддерживаемым прежним ревизиям. Для локальной программы выбирайте stdio, для сервиса по сети — Streamable HTTP. При stdio-переговорах запускается временный пробный процесс перед обслуживающим процессом.
Отдельная таблица таймаутов и переподключений из той же документации:
| Поле | По умолчанию | Смысл |
|---|---|---|
toolCallTimeoutMs |
60 000 | Таймаут на один вызов tools/call или запрос ресурса |
maxInstructionBytes |
32 768 | Предел инструкций сервера в байтах UTF-8 вместе с атрибуцией; превышение отклоняет соединение |
failOnStartupError |
false | Отклонять активацию плагина при сбое первичного соединения или синхронизации инструментов |
reconnect.enabled |
true | Автоматическое переподключение после потери связи |
reconnect.initialDelayMs |
500 | Первая задержка переподключения, удваивается с каждой неудачной попыткой |
reconnect.maxDelayMs |
30 000 | Потолок задержки; он же время работы, после которого бюджет попыток сбрасывается |
reconnect.maxAttempts |
10 | Предел подряд неудачных попыток на один обрыв связи |
Перед настройкой проверьте у владельца сервера адрес, способ аутентификации и ограничения доступа. Переменную окружения создавайте до запуска Harness, иначе подстановка оставит поле пустым.
Пошаговая настройка dsh-mcp-client
Порядок действий по первичному документу пакета.
Шаг 1. Откройте конфигурацию Harness. Записи добавляются в тот файл, где перечислены плагины. Каждый сервер описывается одной записью, больше ничего не требуется: после старта инструменты сервера появляются в списке инструментов модели.
Шаг 2. Опишите локальный сервер по stdio. Документация даёт такой пример:
- id: mcp-github
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: github
transport: stdio
command: npx
args: ['-y', '@modelcontextprotocol/server-github']
env:
GITHUB_TOKEN: !!js process.env.GITHUB_TOKEN
Шаг 3. Опишите сетевой сервер по streamable-http. Пример из того же документа:
- id: mcp-web
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: web
transport: streamable-http
url: http://localhost:3000/mcp
headers:
Authorization: !!js '`Bearer ${process.env.MCP_TOKEN}`'
Шаг 4. Сохраните файл и перезапустите Harness. При сохранении конфигурации перечитайте её целиком: забытая кавычка в заголовке или аргументе оставляет сервер неописанным.
Шаг 5. Проверьте появление инструментов. К моменту старта инструменты регистрируются под именами вида mcp__github__create_issue. Профили Harness могут содержать несколько наборов инструментов, поэтому ищите имя со своим serverName.
Имена вида mcp__<serverName>__<rawName> остаются стабильными, пока сервер сохраняет исходное имя инструмента, поэтому история сессии и правила разрешений переживают перезапуски и перезагрузки. Два сервера могут оба offer-ить инструмент search и сосуществовать как mcp__github__search и mcp__web__search.
Промпт, чтобы проверить подключение чтением данных:
Ты работаешь в DeepSeek Harness с инструментом [mcp__serverName__toolName]. Прочитай [что именно: файл, issue, запись] через этот инструмент и верни: имя вызванного инструмента, сырой ответ сервера и одну строку с выводом по данным. Ничего не изменяй и не создавай. Если вызов не удался, верни текст ошибки целиком.
Подставьте свой serverName и имя инструмента, а также объект чтения. Вариации той же задачи: прочитать список открытых issue репозитория; получить содержимое конкретного файла; выгрузить страницу документации; прочитать таблицу из базы; собрать заголовки из ленты. Общий признак — операция только читает и ничего не меняет.
Самостоятельная проверка и критерии результата
Проверку проводит сам читатель, редакция её не выполняла. Правило первое: наблюдайте на своей установке. Правило второе: первая проверка идёт на чтении, потому что эффект виден и откатывать нечего. Правило третье: результат фиксируйте до изменения конфигурации, чтобы отличать влияние правок.
Порядок самостоятельной проверки:
- До правки конфигурации задайте модели вопрос, ответ на который требует внешних данных, например о ваших задачах в трекере.
- Добавьте запись сервера, сохраните конфигурацию, перезапустите Harness.
- Спросите модель, какие инструменты с вашим
serverNameей доступны, и сверьте имена с ожидаемыми. - Выполните промпт на чтение из предыдущего раздела и сравните сырой ответ сервера с тем, что видно в его собственном интерфейсе.
- Уберите запись сервера из конфигурации, перезапустите Harness и повторите вопрос из шага 1.
Критерии результата. Инструменты с нужным serverName видны в списке. Вызов из шага 4 возвращает данные, совпадающие с независимым источником. В новой сессии после удаления записи инструмент этого сервера должен отсутствовать в списке доступных инструментов. Если исходный вопрос до правки уже имел ответ из общих знаний модели, проверка неинформативна — возьмите вопрос, ответ на который модель без инструмента дать не может.
Второй заход: сравните имена mcp__serverName__rawName до и после перезапуска Harness. Их сохранение подтверждает, что привязка не потерялась. Дополнительный контроль — два сервера с одинаковым именем инструмента: оба имени вида mcp__github__search и mcp__web__search должны вызываться раздельно.
Границы: MCP-клиент, веб-чат и соседи
Мост mcp-client открывает инструменты и операции с ресурсами каждого настроенного сервера. Готовые профили уже подключают общий пакет mcp-resources для обнаружения и чтения ресурсов с явным выбором сервера. Шаблоны промптов MCP не поддерживаются.
Ещё граница: инструкции сервера попадают в системный промпт обычным текстом, а шаблоны промптов MCP не поддерживаются. Значение больше 32 768 байт отклоняет соединение. Медленные или упавшие серверы могут задержать старт или проваливать вызовы до восстановления.
Сравним сценарии.
| Сценарий | Что даёт | Чего ждать не стоит |
|---|---|---|
| Веб-чат chat.deepseek.com | Обычный диалог с моделью | Инструментов MCP-сервера: мост живёт в Harness |
| DeepSeek как backend для сторонних агентов | Модель внутри Claude Code, GitHub Copilot, OpenCode | Настройки MCP-серверов внутри самого DeepSeek |
Harness со dsh-mcp-client |
Инструменты сервера среди родных инструментов модели | Шаблонов промптов MCP и всех типов вложений |
| Собственный инструмент в Harness | Полный контроль над кодом и схемой | Готового чужого сервера с его инструментами |
Настройка внешних инструментов через MCP полезна, когда у вас уже есть MCP-серверы — файловая система, GitHub, база данных, корпоративные инструменты — и вы хотите включить их в единый контур инструментов Harness с разрешениями, таймаутами и отменой вызовов. Внешние инструменты проходят тот же конвейер, что и родные: контроль перед выполнением, таймауты и перезапись результата, поэтому политики разрешения и отказа действуют единообразно.
Типичные сбои и что проверять
Ключ. При ошибке аутентификации проверьте, доступна ли переменная окружения процессу Harness и подходит ли токен выбранному серверу. Проверьте, что имя переменной в конфигурации совпадает с фактическим, а сама переменная видна процессу Harness. Токен в примерах передаётся через GITHUB_TOKEN и MCP_TOKEN.
Провайдер. Для сетевого сервера проверьте доступность адреса из той машины, где работает Harness. Сбои streamable HTTP всплывают по каждому запросу, а недостижимость приводит к повтору вызова. Если локальная программа не стартует, проверьте команду, аргументы и рабочую папку.
Модель. Модель видит инструменты под именами mcp__<serverName>__<rawName>. Если в промпте указано сырое имя без префикса, вызов не найдёт адресата. Имя serverName ограничено набором [A-Za-z0-9_-] и должно быть уникальным.
Сохранение изменений. Правки вступают в силу после перезапуска Harness. При сбое первичного соединения Harness всё равно стартует, инструменты этого сервера не появляются, а ошибка пишется в лог. Если выставить failOnStartupError: true, активация плагина отклоняется. Стартовая политика app-boot по-прежнему допускает, чтобы необязательная запись MCP упала без остановки Harness.
Переподключение. При обрыве соединения плагин переподключается сам: задержка растёт с 500 мс до 30 с, после чего набор инструментов обновляется, и прогресс виден в логах. Предел — 10 подряд неудачных попыток на один обрыв. Синхронизация инструментов слушает notifications/tools/list_changed, при сбое сохраняет прежнее поколение, а при конфликте регистрации откатывает целое поколение целиком и пишет заметную ошибку.
Диагностику похожих сбоев в других сервисах разбирает материал Алиса AI не работает: диагностика и решения.
Частые вопросы
Что нужно, чтобы подключить MCP-инструменты к DeepSeek?
Нужен DeepSeek Harness как хост и запись @deepseek-ai/dsh-mcp-client на каждый сервер. Для локальной программы указывают транспорт stdio с командой и аргументами, для сервиса по сети — streamable-http с адресом и заголовками. У каждого сервера должно быть уникальное имя serverName, а реквизиты доступа вы берёте у владельца сервера.
Где брать токен и адрес MCP-сервера?
У владельца или в документации того сервера, к которому вы подключаетесь. В примерах официальной документации токен GitHub приходит из переменной GITHUB_TOKEN, а токен сетевого сервера — из MCP_TOKEN в заголовке Authorization. Проверьте, что переменная окружения создана до запуска Harness, иначе поле останется пустым.
Как понять, что инструменты появились?
Модель видит их под стабильными именами вида mcp__github__create_issue. Имя строится из serverName и исходного имени инструмента, поэтому искать надо по своему пространству имён. Два сервера могут предоставлять инструмент search и сосуществовать как mcp__github__search и mcp__web__search.
Почему после перезапуска Harness инструменты не появились?
Проверьте сохранение конфигурации и лог ошибок. При сбое первичного соединения Harness стартует, но инструменты этого сервера не появляются. Причина бывает в команде и аргументах для stdio, в недоступном адресе для streamable-http, в слишком больших инструкциях сервера или в неуникальном serverName в области регистрации.
Работает ли это в веб-чате DeepSeek?
Мост живёт в Harness, поэтому веб-чат сам по себе MCP-инструменты не получает. Документация DeepSeek по function calling описывает совместимый с OpenAI и Anthropic API, поэтому DeepSeek можно использовать как backend-модель в сторонних агентах вроде Claude Code, GitHub Copilot или OpenCode. Настроить MCP-серверы для самостоятельного пути в VSCode поможет материал Как подключить DeepSeek к VSCode: три пути.
