MCP Access Point
Шлюз на Pingora превращает существующие HTTP-сервисы по описанию OpenAPI в MCP-серверы без правки их кода
- 185 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Агент получает все операции бэкенда из OpenAPI, включая запись и удаление, если маршруты не отобраны
- Ключи и токены бэкенда хранятся в `config.yaml` открытым текстом и подставляются в каждый вызов
- Admin API меняет апстримы и маршруты на лету и защищен только необязательным ключом
Установка
- Работает в
Ручная установка
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 и покажи, какие инструменты появились в CursorMCP
- Транспорт
- 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-сервер Apollo: превращает заданные операции GraphQL в инструменты, через которые агент работает с вашим API
MCP-сервер и плагин для агентов генерируют веб-API из спецификаций OpenAPI, AsyncAPI, GraphQL, gRPC и SQL на ядре Rust.
Пакет для Laravel и Lumen, который добавляет MCP-эндпоинт в маршруты приложения и подключает к нему ваши инструменты
Один бинарник Go подключается к SQL-базе и отдает ее как REST API с ролями и как MCP-сервер для Claude Code, Cursor и VS Code
mcp-graphql — MCP-сервер для GraphQL API
mcp-graphql
Два инструмента для GraphQL: агент получает схему вашего API и выполняет запросы к нему через один эндпоинт
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| 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.