Skip to main content
Glama

GPT Harness

Самостоятельно размещаемый MCP-шлюз, который позволяет ChatGPT Web выполнять команды оболочки на сервере, которым вы управляете.

[!WARNING] Это личный эксперимент, а не продукт. Он передаёт целые команды оболочки языковой модели и выполняет их на вашем сервере. Прочтите О модели безопасности перед запуском.

Зачем это существует

ChatGPT Web хорошо рассуждает о коде. С помощью коннектора GitHub он читает и редактирует репозиторий. Чего он не может сделать, так это запустить что-либо, потому что его собственная среда не имеет доступа к сети. Он не может установить зависимость или выполнить набор тестов.

Codex может и то и другое, но агентное использование оплачивается и ограничивается отдельно от чата. Чат заканчивается намного позже или вообще не заканчивается.

Шлюз закрывает этот разрыв. ChatGPT решает, что делать, а ваш сервер выполняет. Ваша квота сообщений становится лимитом вместо агентного лимита.

@gpt-harness work this ticket
  git clone, write code, npm ci, npm test, repeat until green

@gpt-harness review this PR <link>
  gh pr checkout, run its tests, report back

Related MCP server: Personal AIVA MCP Bootstrap

Что он предоставляет

Четыре инструмента: bash, bash_output, bash_kill и write_file. Справочник по инструментам описывает аргументы, результаты и ограничения.

Нет инструмента рабочей области и нет понятия рабочей области. Проекты — это каталоги в HARNESS_ROOT, и ChatGPT использует ls и mkdir, как и все остальные.

Три из четырёх инструментов существуют из-за одного ограничения. Один вызов инструмента не может оставаться открытым в течение нескольких минут, которые занимает npm ci, поэтому bash возвращает дескриптор, когда команда переживает 20-секундное ожидание, bash_output читает с курсора, а bash_kill останавливает команду, которая не завершается.

Команды не интерактивны. stdin читает конец файла немедленно, поэтому ChatGPT должен передавать флаги, такие как npm ci и gh --yes. Каждая команда выполняется в своей группе процессов, поэтому остановка одной останавливает всё, что она запустила.

Требования

  • Сервер Linux с systemd, доменом и TLS

  • Node.js 24

  • Тенант Auth0

  • Учётная запись ChatGPT с доступным режимом разработчика

Запуск локально

git clone https://github.com/salman-frs/gpt-harness.git
cd gpt-harness
npm ci
cp .env.example .env

Укажите HARNESS_ROOT на каталог, который можно выбросить, заполните значения Auth0 из Подключение ChatGPT к шлюзу, затем запустите его:

npm run dev
curl -fsS localhost:8787/healthz

/healthz не требует токена. Каждый запрос к /mcp требует действительный токен для настроенного владельца, включая initialize.

Локальный запуск шлюза не даёт вам изоляции. ProtectSystem=strict и остальное приходят из systemd-юнита, который применяется только на сервере.

Доказательство работы

npm run build && npm run prove

scripts/prove.mjs запускает dist/main.js как отдельный процесс только из переменных окружения. Он предоставляет реальную HTTPS-конечную точку JWKS, которую шлюз получает по сети, создаёт реальный токен RS256 и управляет результатом с помощью обычного MCP-клиента. Он создаёт проект, устанавливает зависимость из реестра, запускает тесты и проверяет, что убийство команды также убивает процессы, которые эта команда запустила.

Ничто в скрипте не импортирует src/.

Документация

Лицензия

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/salman-frs/gpt-harness'

If you have feedback or need assistance with the MCP directory API, please join our Discord server