Nexus — шлюз MCP-серверов и LLM-провайдеров
Nexus
Шлюз на Rust подключает MCP-серверы и LLM-провайдеров за одним адресом и добавляет авторизацию, лимиты и поиск инструментов
- 436 ★ репозитория
- Последний коммит
- MPL-2.0
Широкий доступ
Почему такой уровень
- Шлюз хранит ключи LLM-провайдеров и токены MCP-серверов и пропускает через себя все вызовы инструментов агентов
- Серверы STDIO из конфигурации запускаются как дочерние процессы с произвольной командой `cmd`, переменными окружения и рабочим каталогом
- Без OAuth2 шлюз принимает любую строку вместо ключа, поэтому порт нужно держать закрытым: по умолчанию он слушает 127.0.0.1:8000
Установка
- Работает в
Ручная установка
curl -fsSL https://nexusrouter.com/install | bashУстановка бинарника на Linux, macOS и Windows через WSL. Запускает шлюз команда `nexus` с файлом `nexus.toml`.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Шлюз хранит ключи LLM-провайдеров и токены MCP-серверов и пропускает через себя все вызовы инструментов агентов
- Серверы STDIO из конфигурации запускаются как дочерние процессы с произвольной командой `cmd`, переменными окружения и рабочим каталогом
- Без OAuth2 шлюз принимает любую строку вместо ключа, поэтому порт нужно держать закрытым: по умолчанию он слушает 127.0.0.1:8000
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Nexus — сервер на Rust, который стоит между агентом и вашими MCP-серверами и LLM-провайдерами. Агент подключается к одному адресу `/mcp`, а Nexus обращается к подключенным серверам по STDIO, SSE или потоковому HTTP и собирает их инструменты в общий список. Агент видит два инструмента. `search` ищет подходящие инструменты по запросу на естественном языке с нечетким совпадением, `execute` вызывает выбранный. Имена получают префикс сервера, например `github__search_code` и `filesystem__read_file`. Для моделей Nexus дает единую точку входа в формате OpenAI по пути `/llm/openai`, путь `/llm/anthropic` включается по желанию. Запросы маршрутизируются по имени модели и переводятся в формат OpenAI, Anthropic, Google или AWS Bedrock. Все настраивается в файле `nexus.toml`: доступ по группам, OAuth2, лимиты запросов в памяти или в Redis, TLS и телеметрия OTLP.
Для кого. Для команд и разработчиков, которые держат несколько MCP-серверов и LLM-провайдеров и хотят пускать агентов через один защищенный адрес с общими правилами доступа.
Подходит, если
- Подключено много MCP-серверов, и список их инструментов раздувает контекст агента
- Нужен один адрес для Claude Code, Cursor и Codex CLI без отдельной настройки каждого сервера
- Нужно ограничить, какие группы пользователей видят платные или опасные инструменты MCP
- Требуются лимиты запросов на пользователя, на IP, на MCP-сервер или на модель с хранением в Redis
- Модели OpenAI, Anthropic, Google и Bedrock нужно вызывать через одну конечную точку в формате OpenAI
Не подходит, если
- Достаточно одного или двух MCP-серверов: прямое подключение проще, чем отдельный сервис
- Нужен облачный сервис без собственного хостинга: Nexus ставят и запускают сами
- Нужен графический интерфейс управления: настройка идет в файле `nexus.toml`
Пример запроса к агенту
Найди среди подключенных инструментов тот, что ищет код на GitHub, и вызови его для запроса про обработку ошибок в AxiosMCP
- Транспорт
- http
- Авторизация
- не нужна
Переменные окружения
OPENAI_API_KEYсекрет- Ключ OpenAI для блока провайдера в nexus.toml. Нужен, только если провайдер подключен.
ANTHROPIC_API_KEYсекрет- Ключ Anthropic для блока провайдера в nexus.toml. Нужен, только если провайдер подключен.
Ограничения
Для MCP поддерживается только вставка статических заголовков и только для серверов по HTTP: заголовки входящих запросов не пересылаются, на STDIO-серверы правило не действует. Ключи подставляются из переменных окружения записью `{{ env.ИМЯ }}`.
Если при запуске не удалось получить список моделей хотя бы у одного провайдера, Nexus завершается, чтобы вы исправили конфигурацию. При включенном OAuth2 клиентам нужен токен JWT, а передачу токена на нижестоящие серверы включают настройкой `forward`, когда все они используют один сервер авторизации. Лимиты по группам требуют идентификации клиента.
OpenAI и Anthropic подключаются как провайдеры со своими ключами, и их API из России недоступен. Образ Docker публикуется с тегами `latest`, `stable` и конкретной версии.
Как отключить. Остановите процесс `nexus` или контейнер и удалите сервер из конфигурации клиента: в Claude Code это `claude mcp remove nexus`. Файл `nexus.toml` с ключами хранится отдельно, удалите его, если шлюз больше не нужен.
Частые вопросы
Как подключить Nexus к Claude Code?
Запустите Nexus, затем выполните `claude mcp add --transport http nexus http://localhost:8000/mcp` или добавьте тот же адрес в `.mcp.json` проекта. Проверка: `claude mcp list`. Шлюз должен работать до старта Claude Code.
Что делают инструменты search и execute?
`search` находит нужные инструменты среди всех подключенных MCP-серверов по запросу на естественном языке и возвращает имена, описания и параметры. `execute` вызывает выбранный инструмент с этими параметрами.
Как добавить MCP-сервер в Nexus?
В `nexus.toml` опишите блок `[mcp.servers.имя]`. Для локального процесса задайте `cmd`, например запуск `npx` с файловым сервером, для удаленного укажите `url` и при необходимости `protocol`. Без протокола Nexus сначала пробует потоковый HTTP, затем SSE.
Как направить Codex CLI через Nexus?
В `~/.codex/config.toml` добавьте провайдера `nexus` с `base_url = "http://127.0.0.1:8000/llm/openai/v1"`. Суффикс `/v1` обязателен. Запуск: `codex -c model="anthropic/claude-3-5-haiku-latest" -c model_provider=nexus`.
Как закрыть Nexus от посторонних?
Включите блок `[server.oauth]` с адресом JWKS: тогда все пути кроме `/health` и `/.well-known/oauth-protected-resource` требуют токен JWT. Дополнительно задают группы с `allow` и `deny` для серверов и инструментов и лимиты запросов.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыAgentgateway
agentgateway
Прокси для агентного трафика: маршрутизирует и защищает подключения к MCP-серверам, LLM и другим агентам через A2A
MCP-сервер по ресурсам NixOS: поиск пакетов и опций, чтобы агент не выдумывал названия и настройки
Шлюз и реестр от IBM: объединяет MCP-серверы, A2A-агентов и REST или gRPC API в одну точку с авторизацией и наблюдаемостью
Менеджер MCP-серверов на Node.js: запускает локальные и подключает удаленные серверы и отдает их клиенту одним адресом с REST API для управления
1c-nexus-infra: граф кода, RAG и MCP-мосты для 1С
1c-nexus-infra
Инфраструктура для 1С-разработчика: статический граф вызовов кода, база решений в формате RAG с жизненным циклом и мосты к внешним MCP
Сенсор качества кода на Rust: считает сигнал качества до и после сессии агента, подключается как плагин Claude Code или MCP
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Nexus — шлюз MCP-серверов и LLM-провайдеров (эта запись) | нет | не нужна | 436 | |
| Docker MCP Gateway | да | не нужна | 1 616 | CLI-плагин docker mcp и шлюз: MCP-серверы из каталога Docker в изолированных контейнерах через одну точку подключения |
| ContextForge | нет | API-ключ | 4 720 | шлюз и реестр от IBM, объединяющий MCP-серверы, A2A-агентов и REST или gRPC API с авторизацией |
| 1MCP Agent | нет | не нужна | 525 | один сервер MCP вместо многих, отдает подключенные серверы клиенту через единый адрес |
Коротко о README
Описание начинается с перечня возможностей и установки, затем подробно разбирает файл `nexus.toml`: типы MCP-серверов, авторизацию, правила доступа, лимиты, TLS, провайдеров моделей и телеметрию. В конце даны примеры подключения Cursor, Claude Code и Codex CLI и клиентские фрагменты на Python и JavaScript.