MCP Access Point

Шлюз на Pingora превращает существующие HTTP-сервисы по описанию OpenAPI в MCP-серверы без правки их кода

  • 185 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Широкий доступ

Почему такой уровень

  • Агент получает все операции бэкенда из OpenAPI, включая запись и удаление, если маршруты не отобраны
  • Ключи и токены бэкенда хранятся в `config.yaml` открытым текстом и подставляются в каждый вызов
  • Admin API меняет апстримы и маршруты на лету и защищен только необязательным ключом
Все причины и проверки

sxhxliang/mcp-access-point

Установка

Ручная установка

docker run -d --name mcp-access-point --rm -p 8080:8080 -e port=8080 -v /path/to/config.yaml:/app/config/config.yaml ghcr.io/sxhxliang/mcp-access-point:main

Замените путь к `config.yaml` своим. Клиенты подключаются к `http://127.0.0.1:8080/mcp` или `/sse`.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Агент получает все операции бэкенда из OpenAPI, включая запись и удаление, если маршруты не отобраны
  • Ключи и токены бэкенда хранятся в `config.yaml` открытым текстом и подставляются в каждый вызов
  • Admin API меняет апстримы и маршруты на лету и защищен только необязательным ключом

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

MCP Access Point — шлюз на Rust и Pingora, который стоит между MCP-клиентами и обычными HTTP-сервисами. В конфигурации `config.yaml` вы указываете, где лежит описание OpenAPI (локальный файл или адрес), и узлы бэкенда. Шлюз разбирает операции из описания, публикует их как инструменты MCP и пересылает вызовы на HTTP-сервис. Исходный API менять не нужно. Клиенты подключаются по SSE (версия 2024-11-05) или по Streamable HTTP (2025-03-26). Все сервисы доступны по адресам `/sse` и `/mcp`, отдельный сервис по `/api/{id}/sse` и `/api/{id}/mcp`, так что у каждой группы пользователей может быть свой набор. Маршруты можно описать вручную с ограничением параметров через `inputSchema`. К бэкенду шлюз добавляет заданные заголовки, например ключ API или токен, и распределяет нагрузку по узлам. В комплекте идут плагины для CORS, JWT и ключей, ограничений по IP и числу запросов, сжатия и Prometheus, а также Admin API для правки конфигурации без перезапуска. Запуск — `cargo run -- -c config.yaml` или контейнер `ghcr.io/sxhxliang/mcp-access-point:main`.

Для кого. Бэкенд-разработчикам и платформенным командам, у которых уже есть REST API с описанием OpenAPI и которые хотят открыть его агентам в Cursor, Windsurf или VS Code без отдельного MCP-сервера.

Подходит, если

  • Внутренний сервис отвечает по HTTP, и его операции нужно дать Cursor как инструменты за один вечер
  • Сразу несколько сервисов публикуются под одним адресом, а у каждой команды свой адрес `/api/{id}/mcp`
  • Спецификацию подтягивают по ссылке вроде `https://petstore.swagger.io/v2/swagger.json` для быстрой проверки идеи
  • Подключению к бэкенду нужны заголовки с ключом, и их проще держать на шлюзе
  • Клиент поддерживает только SSE, а бэкенду это не нужно: шлюз берет транспорт на себя

Не подходит, если

  • Нет описания OpenAPI, а маршруты пришлось бы расписывать вручную для каждой операции
  • API содержит операции удаления и записи, которые не стоит открывать модели без отбора маршрутов
  • Нужен готовый MCP-сервер конкретного продукта: проще взять его официальную реализацию
  • Клиент умеет только запускать локальный сервер по stdio: шлюз отдает лишь SSE и Streamable HTTP

Пример запроса к агенту

Запусти MCP Access Point с моим openapi.json и покажи, какие инструменты появились в Cursor

MCP

Транспорт
sse, http
Авторизация
не нужна

Переменные окружения

port
Порт, на котором слушает шлюз. По умолчанию 8080.

Ограничения

  • Установка идет из исходников через Cargo или контейнером: пакетов для менеджеров нет. Порт задается переменной `port`, по умолчанию 8080.
  • Поддерживаются транспорты SSE версии 2024-11-05 и Streamable HTTP версии 2025-03-26 в режиме без состояния.
  • Ключи и токены для бэкенда лежат в `config.yaml` обычным текстом, а Admin API защищается только необязательным `api_key`.
  • Последний коммит в репозитории от марта 2026 года, плагины в README не описаны.

Как отключить. Остановите шлюз (`docker stop mcp-access-point` или процесс `cargo run`) и удалите запись сервера из конфигурации клиента. Конфигурация `config.yaml` с ключами бэкенда остается на диске, удалите ее, если она больше не нужна.

Частые вопросы

Как подключить Cursor к MCP Access Point?

Запустите шлюз, затем в настройках MCP в Cursor укажите адрес `http://127.0.0.1:8080/sse` для SSE или `http://127.0.0.1:8080/mcp` для Streamable HTTP. Для одного сервиса возьмите `/api/{id}/sse` или `/api/{id}/mcp` с его идентификатором из `config.yaml`.

Нужно ли менять код моего API?

Нет. Шлюз читает описание OpenAPI и сам делает из операций инструменты MCP. Для нестандартных случаев маршруты описывают в `routes` вручную.

Как менять конфигурацию без перезапуска?

Включите Admin API в разделе `access_point.admin` и вызывайте `/admin/resources/...` для апстримов, сервисов и маршрутов. `POST /admin/reload/config` перечитывает весь файл, а `POST /admin/validate/{type}/{id}` проверяет ресурс заранее.

Можно ли распределить нагрузку между узлами?

Да, у апстрима задают несколько узлов с весами в `nodes` и алгоритм в `type`: `roundrobin`, `random` или `ip_hash`. Протокол бэкенда выбирает `scheme`, заголовок хоста правят `pass_host` и `upstream_host`.

Чем MCP Access Point отличается от mcp-proxy?

Он превращает обычный HTTP-сервис в MCP по описанию OpenAPI, а переключением транспортов готовых MCP-серверов не занимается. Для запуска нужен собственный файл конфигурации с апстримами.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер загружает спецификацию Swagger или OpenAPI и делает из каждой конечной точки API инструмент для агента.

MCP-серверШирокий доступ115Звезды репозитория
Официальный

MCP-сервер Apollo: превращает заданные операции GraphQL в инструменты, через которые агент работает с вашим API

MCP-серверШирокий доступ318Звезды репозитория

MCP-сервер и плагин для агентов генерируют веб-API из спецификаций OpenAPI, AsyncAPI, GraphQL, gRPC и SQL на ядре Rust.

MCP-серверРасширенный доступ123Звезды репозитория

Пакет для Laravel и Lumen, который добавляет MCP-эндпоинт в маршруты приложения и подключает к нему ваши инструменты

MCP-серверРасширенный доступ330Звезды репозитория

Один бинарник Go подключается к SQL-базе и отдает ее как REST API с ролями и как MCP-сервер для Claude Code, Cursor и VS Code

MCP-серверШирокий доступ170Звезды репозитория

Два инструмента для GraphQL: агент получает схему вашего API и выполняет запросы к нему через один эндпоинт

MCP-серверРасширенный доступ407Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
MCP Access Point (эта карточка)нетне нужна185
MCP Linkнетне нужна624шлюз для API с описанием OpenAPI V3, у Access Point есть мультитенантность, балансировка узлов, плагины и Admin API
OpenAPI MCP Serverдане нужна301один процесс превращает операции OpenAPI в инструменты, а здесь шлюз держит много сервисов под своими адресами

Коротко о README

Страница объясняет идею шлюза и строится на Pingora. Дальше идут режим преобразования HTTP в MCP со схемой, поддерживаемые транспорты и клиенты, быстрый старт, мультитенантность и подробное описание `config.yaml`. Завершают запуск в Docker, типовые случаи и раздел про Admin API с примерами curl.

Бейдж для README

Сообщить о проблеме

Foxx AIMCP Access Point
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.