Persistent VPS Compute MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Persistent VPS Compute MCPSet up a systemd service for my Node.js app and keep it running."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Persistent VPS Compute MCP
Один постоянный Debian VPS как полноценное compute environment для Notion AI и других MCP-клиентов. Модель получает не набор из десятков искусственных DevOps-инструментов, а один нормальный root-терминал — почти как работа по SSH.
Этот проект намеренно даёт удалённому AI-агенту настоящий доступroot. Bearer-токен равен root-паролю от сервера. Используйте отдельный VPS, HTTPS, резервные копии и только доверенные личные агенты.
Чем это отличается от обычного «MCP для команд»
Обычный подход | Persistent VPS Compute |
Десятки отдельных tools для Git, файлов, pip, Docker | Один tool |
Искусственный список разрешённых операций | Любые обычные Linux-команды |
Новая песочница или сброс между чатами | Одна и та же постоянная машина |
Завершение чата останавливает работу | systemd-сервисы и Docker продолжают работать |
Модель выдаёт команды пользователю | Модель сама устанавливает, пишет, тестирует и деплоит |
MCP поддерживает обычные и интерактивные терминальные процессы:
run— запуститьbash -lc <command>;open— открыть интерактивный root-shell;read/write— читать вывод и отправлять ввод;interrupt— Ctrl+C;close— закрыть только терминальный процесс;list— найти сохранённые терминальные процессы.
Файлы, установленные пакеты, репозитории, базы данных, Docker volumes и deployed-сервисы сохраняются между MCP-вызовами и чатами.
Related MCP server: TermPipe MCP
Архитектура
flowchart LR
A[Notion Agent] -->|HTTPS + Bearer token| B[Caddy :443]
B -->|loopback only| C[MCP :8766]
C --> D[one terminal tool]
D -->|root PTY| E[permanent Debian VPS]
E --> F[systemd services]
E --> G[Docker Compose]
E --> H[projects and databases]Внутренний Python-порт слушает только 127.0.0.1. В интернет выходят только Caddy и стандартные порты 80/443.
Требования
чистый или контролируемый VPS с Debian 12+ либо Ubuntu 22.04+;
вход под
rootили пользователь сsudo;минимум 1 vCPU и 1 GB RAM;
домен или поддомен, например
mcp.example.com;DNS
A/AAAAуже указывает на VPS;TCP 80 и 443 разрешены у провайдера и в firewall;
для Custom MCP в Notion — тариф Business или Enterprise и разрешение администратора workspace (официальная справка Notion).
Автоустановщик сам поставит Python, virtualenv, Caddy и остальные системные зависимости. Docker не устанавливается заранее: агент сможет поставить его сам, когда он потребуется конкретному проекту.
Быстрая установка
Вариант 1: репозиторий уже доступен по SSH
Репозиторий приватный, поэтому GitHub-аккаунту или deploy key на VPS сначала нужен доступ.
git clone git@github.com:m8rneco-a11y/persistent-vps-compute-mcp.git
cd persistent-vps-compute-mcp
sudo bash install.shВариант 2: без настройки Git на VPS
На GitHub нажмите
Code→Download ZIP.Распакуйте архив и загрузите папку на VPS через панель хостинга, SFTP или SCP.
На VPS перейдите в загруженную папку и выполните:
sudo bash install.shУстановщик спросит только публичный домен и подтверждение. После этого он:
проверит ОС и входные параметры;
установит системные пакеты;
сохранит резервную копию существующей установки;
установит приложение в
/opt/mcp-compute;создаст защищённый токен в
/etc/mcp-compute.envс правами0600;создаст и включит
mcp-compute.service;запустит полный MCP-тест через loopback;
добавит отдельный Caddy snippet и проверит конфигурацию до reload;
проверит публичный HTTPS health endpoint.
Он не меняет SSH, root-пароль, Docker, проекты и firewall. Если 80/443 закрыты у провайдера, установщик сообщит об этом, но не будет сам переписывать правила доступа.
Неинтерактивный запуск
sudo bash install.sh --domain mcp.example.com --yesДоступные параметры:
--domain NAME публичный DNS name
--port NUMBER внутренний loopback-порт, по умолчанию 8766
--yes не спрашивать подтверждение
--no-caddy установить только приватный MCP-сервис
--rotate-token выпустить новый токен при обновленииПовторный запуск install.sh работает как обновление: сохраняет текущий токен, создаёт backup и переустанавливает код с зависимостями. Для принудительной смены токена добавьте --rotate-token.
Проверка после установки
sudo /opt/mcp-compute/scripts/diagnose.shОжидаемое состояние:
MCP service: active
MCP autostart: enabled
Private listener: 127.0.0.1:8766
Local health: ok
Caddy: active
Public health: okПубличные адреса:
https://mcp.example.com/healthz
https://mcp.example.com/mcp/healthz публичный и возвращает только ok. /mcp без правильного Bearer-токена возвращает 401.
Получение Bearer-токена
Выполните только на VPS:
sudo /opt/mcp-compute/scripts/show-token.shКоманда выводит чистое значение — без MCP_TOKEN= и без Bearer . Не вставляйте токен в README, Skill, issue, скриншот или обычное сообщение.
Подключение к Notion AI
Полная пошаговая инструкция находится в docs/NOTION_SETUP.md.
1. Откройте Custom MCP
Settings → Connections → Discover → MCP → Custom MCP.

2. Введите адрес
В поле URL укажите свой адрес с обязательным /mcp и нажмите Connect.

3. Добавьте имя и токен
Укажите имя Persistent VPS Compute, выберите Bearer token и вставьте значение, полученное командой show-token.sh.

После подключения Notion увидит ровно один инструмент terminal.
Always askподходит для первого теста.Run automaticallyуменьшает количество подтверждений.Always allowдаёт поведение, максимально близкое к Devin, но одновременно разрешает агенту выполнять любые root-команды без ручного подтверждения.
Установка Skill
Готовый текст находится в notion-skill/SKILL.md. В нём нет домена, аккаунтных ID, токена или других секретов, поэтому один и тот же Skill можно переносить между workspace и аккаунтами.
Откройте Library → Skills, нажмите New и вставьте содержимое файла в новую страницу.

Рекомендуемые свойства:
Name: Persistent VPS Compute
Description: Use the connected permanent VPS to develop, test, deploy, debug, and operate software end to end through one root terminal.
Use automatically: OnДля Custom Agent добавьте созданную страницу Skill в Tools & Access.
Примеры задач для агента
Разработай Telegram-бота по этому ТЗ. Сам установи нужные инструменты,
напиши код, прогони тесты и оставь production-сервис работающим после завершения.Проверь, почему API отвечает 502. Найди причину на VPS, исправь её,
перезапусти только нужный сервис и проверь публичный endpoint.Разверни этот репозиторий через Docker Compose, настрой автозапуск,
healthcheck и обратный прокси. Не трогай остальные проекты на сервере.Skill объясняет агенту, что закрытие session_id завершает только конкретный shell, а не удаляет машину. Долгоживущие приложения должны работать через systemd или Docker Compose.
Обслуживание
Статус и диагностика
sudo /opt/mcp-compute/scripts/diagnose.sh
sudo systemctl status mcp-compute
sudo journalctl -u mcp-compute -fСмена токена
sudo /opt/mcp-compute/scripts/rotate-token.shПосле ротации обновите токен во всех MCP-клиентах. Старый перестаёт работать сразу после рестарта сервиса.
Обновление
git pull
sudo bash install.shУстановщик сохранит код и конфигурацию предыдущей версии в:
/root/mcp-compute-backups/<UTC timestamp>/Удаление
sudo bash uninstall.shПо умолчанию токен, MCP state и audit log сохраняются. Полное удаление только MCP-данных:
sudo bash uninstall.sh --purgeUninstaller никогда не удаляет проекты, базы, Docker containers/volumes или сторонние systemd-сервисы.
Перенос между Notion-аккаунтами
Skill переносится как обычная Notion-страница или через этот
SKILL.md.Сам VPS и MCP URL не зависят от Notion-аккаунта.
Каждый новый Notion Agent или Custom Agent создаёт собственное подключение и заново вводит Bearer-токен.
Если старый аккаунт больше не должен иметь доступ, отключите его и ротируйте токен.
Текущая версия сервера использует один общий токен. Если нескольким людям нужен одновременный независимый доступ с точечным отзывом, добавьте multi-token authentication перед выдачей доступа.
Что проверяет CI
GitHub Actions при каждом push и pull request:
проверяет синтаксис всех Bash-скриптов;
запускает ShellCheck;
компилирует Python;
поднимает MCP от
rootна временном loopback-порту;выполняет полный end-to-end тест.
E2E-набор проверяет health, отказ без авторизации, блокировку чужого Origin, единственный tool, настоящий uid=0, очистку дочернего environment, сохранение файлов между вызовами, async polling и интерактивный PTY.
Структура репозитория
.
├── server.py # MCP-сервер
├── install.sh # интерактивная установка/обновление
├── uninstall.sh # безопасное удаление MCP
├── requirements.txt # зафиксированные Python-зависимости
├── caddy/mcp-compute.caddy # HTTPS reverse-proxy template
├── systemd/mcp-compute.service # автозапуск сервера
├── scripts/
│ ├── diagnose.sh # безопасная диагностика
│ ├── rotate-token.sh # ротация Bearer-токена
│ └── show-token.sh # вывести чистое значение токена
├── tests/test_client.py # полный MCP smoke/E2E test
├── notion-skill/SKILL.md # переносимый Skill для Notion
├── docs/NOTION_SETUP.md # подробное подключение к Notion
└── docs/images/ # отредактированные UI-скриншотыБезопасность
Перед использованием обязательно прочитайте SECURITY.md.
Коротко:
не публикуйте Bearer-токен;
не открывайте внутренний порт MCP в интернет;
не расшаривайте агента с
Always allowпосторонним;храните provider snapshots и резервные копии важных данных;
считайте prompt injection из сайтов, issues и загруженных файлов реальной угрозой;
лучше использовать отдельный VPS, а не сервер с критичными личными данными.
Совместимость
Протестировано на Debian 12, Python 3.11, FastMCP 3.4.7, Starlette 1.6.0 и Uvicorn 0.52.4. Транспорт — MCP Streamable HTTP, авторизация — стандартный HTTP Bearer token.
This server cannot be installed
Maintenance
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
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Gives AI agents a public IPv6 identity, hostname, port forwarding, web fetch, team mesh. Free tier.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to maintain persistent SSH terminal sessions and transfer files to/from remote servers. Allows stateful command execution, natural language server management, and seamless file operations through SSH connections.1737MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct terminal access to execute commands, manage files, and run persistent REPL sessions. It features automated installation scripts that educate AI assistants on its capabilities for seamless integration.MIT
- FlicenseAqualityDmaintenanceGives AI assistants full control over a VPS via SSH, enabling command execution, file management, service control, Docker and firewall management.95
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to have persistent, fully interactive SSH sessions into remote hosts, behaving like a local terminal.231MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/m8rneco-a11y/persistent-vps-compute-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server