Как дать Ollama доступ в интернет
Ollama отлично гоняет модель локально, но в веб не ходит и MCP-серверы сама не запускает. Разберём, как всё-таки дать ей поиск и чтение страниц.
Что Ollama делает и чего не делает
Ollama - это локальный раннер моделей. Он скачивает веса (Llama, Qwen, Gemma, DeepSeek), поднимает модель у вас на машине и отдаёт ответ по OpenAI-совместимому API на localhost. По сути это всё, что он делает с самой моделью: принимает запрос и генерирует текст.
Чего Ollama не делает: он не открывает сайты и не ходит в веб вместо модели. И, на момент написания, он не выступает MCP-хостом, то есть сам не запускает инструменты вроде веб-поиска. Поэтому «Ollama в интернете» на практике всегда означает связку: Ollama как движок модели плюс отдельный слой, который умеет искать и приносить страницы. Ниже - два реальных способа собрать такую связку и один подвох с окном контекста, о который спотыкается большинство первых попыток.
Зачем это вообще нужно: веса модели зафиксированы на дату обучения. Локальная Llama или Qwen не знает про вчерашний релиз, новый API библиотеки или цену, которая изменилась в прошлом месяце, - и, будучи обученной быть полезной, она заполняет пробел уверенной догадкой вместо честного «не знаю». Живой веб убирает именно это: модель отвечает по тому, что реально нашлось на странице, а не по памяти.
Способ A - собственный веб-поиск Ollama
У Ollama есть свой размещённый в облаке веб-поиск (web search API). Это шаг вперёд по сравнению с тем, чтобы поднимать поиск самому: запрос уходит на серверы Ollama, а обратно приходят результаты со сниппетами. Вызывается он обычным HTTP-запросом:
# схема запроса: docs.ollama.com/capabilities/web-search import requests def ollama_web_search(query, api_key): r = requests.post("https://ollama.com/api/web_search", headers={"Authorization": f"Bearer {api_key}"}, json={"query": query}, timeout=30) r.raise_for_status() # вернутся результаты со сниппетами - под окно контекста режете сами return r.json()
Что тут важно понимать
- Нужен аккаунт и ключ. Это бесплатный аккаунт Ollama и API-ключ. Для сетапа в духе «всё локально, без облачных аккаунтов» это уже компромисс.
- Возвращаются результаты и сниппеты, а не готовый пакет под модель. Урезать выдачу под окно контекста и переранжировать её по релевантности - всё ещё ваш код.
- Мало контроля над закрытыми страницами. Что делать, если нужная страница отдаётся не полностью или закрыта, вы не решаете.
Способ B - MCP-клиент поверх Ollama с grounder
Второй путь - не звать поиск из своего кода, а подключить инструменты через MCP (Model Context Protocol). Поскольку сама Ollama MCP-хостом не является, инструменты подключают на уровне клиента: берётся MCP-совместимый клиент, который умеет работать с моделью на Ollama как с бэкендом, и уже в его настройки MCP добавляется grounder. Тогда именно клиент управляет вызовами: модель решает, что ей нужен веб, клиент дёргает нужный инструмент и вплетает результат обратно в диалог.
Конфиг MCP везде одинаковый - один блок:
// MCP-конфиг клиента: LM Studio, Claude Desktop, Cursor { "mcpServers": { "grounder": { "command": "uvx", "args": ["grounder-mcp"], "env": { "GROUNDER_API_KEY": "gnd_live_ваш_ключ" } } } }
Тонкий клиент grounder-mcp ставится через uvx и просто передаёт вызовы на наши серверы: локально не поднимается ни браузер, ни скрапер. После этого модели доступны инструменты web_search, fetch, deep_search и research, и она отвечает по живым источникам, а не по памяти. Пошаговый разбор подключения - в гайде как подключить нейросеть к интернету.
Окно контекста - почему нельзя просто вывалить страницы
Оба способа упираются в одно и то же ограничение. Локальная модель на Ollama обычно работает с небольшим окном контекста. Если по запросу скачать пару-тройку полных веб-страниц и целиком вложить их в промпт, это легко перевалит за 20 000 токенов и переполнит окно. Модель при этом не «отвечает хуже» - она возвращает ошибку длины контекста или пустоту.
Лекарство одно: возвращать модели не сырые страницы, а пакет с урезанием по токенам - только релевантные фрагменты со ссылками на источники. У способа A этот шаг остаётся на вас. grounder делает его сам: deep_search ищет, открывает несколько страниц, ранжирует их и отдаёт пакет, укладывающийся в заданное окно (например, 8k). Поэтому маленькая модель получает ровно то, что помещается и относится к делу.
Что выбрать - сравнение
| Способ A: веб-поиск Ollama | Способ B: MCP-клиент + grounder | |
|---|---|---|
| Что делает | поиск, возвращает сниппеты | поиск + открывает и чистит страницы + ранжирует |
| Кто управляет вызовом | ваш код или агент, который вы пишете | MCP-клиент, модель сама решает вызвать инструмент |
| Под маленькое окно | режете сами | готовый пакет, урезанный под окно |
| Что нужно завести | бесплатный аккаунт и ключ Ollama | бесплатный ключ grounder |
| Закрытые в РФ сайты | нужен доступ к ollama.com | читает снаружи РФ, без VPN |
Если вам просто нужна строка поиска в своём агенте и вы сами соберёте обвязку под контекст - подойдёт способ A. Если хочется, чтобы модель сама вызывала инструменты, получала готовый под окно текст и читала в том числе закрытые в РФ источники, - ближе способ B.
Почему это работает из России без VPN
Ключевой момент способа B: искать и читать веб будет не ваш компьютер, а серверы grounder за пределами России. Вашей машине нужно дотянуться только до grounder.dev, а дальше заблокированные у вас сайты открываем мы и отдаём модели уже готовый чистый текст. Поэтому VPN не нужен - туннель на весь трафик тут лишний. Подробный разбор этой логики - в гайде веб-поиск для локальной LLM без VPN.
Честная граница: это решает повседневные блокировки, а не полное отключение интернета. Пока ваша сеть дотягивается до наших серверов, всё работает; если оператор оставит только белый список российских доменов, наружу не пробьётся никто, и grounder тоже.
grounder - наш продукт, так что интерес у нас есть. Но факты вокруг верны независимо от инструмента: у Ollama действительно есть собственный веб-поиск, окно контекста маленькой модели действительно переполняется сырыми страницами, а читать закрытые сайты можно только оттуда, где они не заблокированы. Версии API и детали сверяйте с официальной документацией Ollama.
Частые вопросы
Умеет ли Ollama искать в интернете сама?
Нет. Ollama запускает модель, но не ходит в веб и не запускает инструменты. Поиск подключают через MCP-совместимый клиент поверх Ollama.
Нужен ли VPN для доступа Ollama в интернет?
Нет. grounder читает страницы снаружи России, вашей машине достаточно доступа к grounder.dev.