
Зачем это нужно Link to heading
Оупенкод хорош, но у него есть ограничение — он ничего не знает о мире за пределами того, что заложено в моделях которые ты юзаешь в агенте.
DuckDuckGo Search MCP сервер решает эту проблему: он даёт оупенкод два инструмента — поиск в вебе и загрузку контента со страниц. Теперь агент может сам сходить в поисковик за актуальной информацией.
Чем это отличается от встроенного WebFetch? WebFetch умеет только загружать контент по конкретному URL. Если агент не знает адрес — он бесполезен. А DuckDuckGo Search MCP добавляет поиск: агент сам находит нужные страницы по запросу, а потом может прочитать их через fetch_content. То есть это полноценный веб-сёрфинг, а не просто загрузка по известной ссылке.
Что такое MCP и как это работает Link to heading
MCP (Model Context Protocol) — стандарт для подключения внешних инструментов к ИИ-ассистентам. Через эмсипи мы даём оупенкод доступ к произвольным действиям: поиск в интернете, чтение файлов, вызов API.
Мы устанавливаем DuckDuckGo эмсипи сервер, регистрируем его в конфиге оупенкод, и агент получает инструменты search и fetch_content. Дальше он сам решает, когда ими воспользоваться.
Установка Link to heading
1. Устанавливаем uv Link to heading
uv — менеджер пакетов для Python, через него запускается сервер:
curl -LsSf https://astral.sh/uv/install.sh | sh
После установки перезапустите терминал или добавьте ~/.local/bin в PATH.
2. Регистрация в оупенкод Link to heading
Добавляем сервер в ~/.config/opencode/opencode.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bb-browser": { ... },
"markitdown": { ... },
"ddg-search": {
"type": "local",
"command": ["/Users/beaverbloger/.local/bin/uvx", "duckduckgo-mcp-server"],
"env": {
"DDG_SAFE_SEARCH": "MODERATE",
"DDG_REGION": "wt-wt"
}
}
}
}
Параметры окружения:
DDG_SAFE_SEARCH— уровень фильтрации контента:STRICT,MODERATE(по умолчанию),OFFDDG_REGION— регион по умолчанию:us-en,ru-ru,wt-wt(без региона) и т.д.
Готово! После перезапуска оупенкод подхватит сервер.
Инструменты Link to heading
Сервер предоставляет два инструмента:
search(query, max_results=10, region="") Link to heading
Поиск в DuckDuckGo. Возвращает ссылки с заголовками и сниппетами. Можно указать регион для локализации результатов.
fetch_content(url, start_index=0, max_length=8000) Link to heading
Загрузка и очистка контента со страницы. Убирает навигацию, шапки, подвалы, скрипты — оставляет чистый текст. Поддерживает пагинацию для длинных страниц.
Проверка Link to heading
Проверим, как это работает. Прошу оупенкод найти рецепт курута:

Агент вызывает search("как готовить курут рецепт"), находит ссылки и краткие описания.
А теперь попросим узнать погоду в Абзаково:

Работает! Агент сам решил, что ему не хватает данных, сходил в интернет и вернул актуальный ответ.
Как это работает Link to heading
Когда оупенкоду нужно найти что-то в интернете, он:
- Видит, что доступен инструмент
search - Формирует поисковый запрос
- Получает результаты
- Если нужно прочитать конкретную страницу — вызывает
fetch_content - Анализирует полученную информацию
Всё прозрачно: агенту не нужно объяснять, как искать — он делает это сам, когда понимает, что ему не хватает знаний.
Особенности Link to heading
- Без API-ключей — DuckDuckGo не требует регистрации, всё бесплатно
- Rate limiting — 30 запросов в минуту для поиска, 20 для загрузки контента
- SafeSearch — настраиваемая фильтрация контента
- Регионы — можно локализовать поиск под нужную страну
Итого Link to heading
DuckDuckGo Search эмсипи — простой способ дать оупенкод доступ к веб-поиску. Без регистраций, без API-ключей, без смс. Поставил за минуту — и агент сам ходит в интернет за актуальной информацией.