Локальный MCP-сервер
hommforever-site-mcp — административный локальный инструмент для управления разделами сайта: демками, играми, утилитами и файлообменником.
127.0.0.1, не проксируется через nginx и предназначен для администрирования с самого сервера или через SSH-туннель.
Где находится
- Код и подробный README:
/opt/hommforever-site-mcp/README.md - Конфиг:
/etc/hommforever-site-mcp/config.json - Systemd service:
hommforever-site-mcp.service - Endpoint:
http://127.0.0.1:8765/mcp - Backups:
/var/backups/hommforever-site-mcp/
Как проверить статус
systemctl is-active hommforever-site-mcp.service
curl -sS http://127.0.0.1:8765/health
sudo -u homm-site-mcp HOMM_SITE_MCP_CONFIG=/etc/hommforever-site-mcp/config.json \
/opt/hommforever-site-mcp/.venv/bin/python /opt/hommforever-site-mcp/server.py \
--call-tool site_status '{}'
Как смотреть логи
journalctl -u hommforever-site-mcp.service -n 100 --no-pager
journalctl -u hommforever-site-mcp.service -f
Как проверить локальный bind
ss -ltnp | grep hommforever-site-mcp
В выводе должен быть только 127.0.0.1:8765. Адреса 0.0.0.0:8765 быть не должно.
Возможности
- Показ статуса сайта и systemd-сервисов.
- Список разделов и элементов.
- Создание, обновление, переименование, удаление и перестановка элементов в
demos,games,utils. get_itemвозвращает метаданные элемента, а сinclude_content=true— HTML-код в разумном лимитеmax_content_bytes.update_itemменяет TSV-метаданные и приcontent_base64заменяет standalone HTML-файл с backup/diff.- Понятные MCP-ручки для файлообменника: список, карточка файла, загрузка, переименование, мягкое удаление и поиск backup.
- Пересборка статических индексов через временную копию и
build-index.pyс атомарной заменойindex.html. - Backup перед каждой изменяющей операцией.
Файлообменник через MCP
Файлообменник сайта — это публичная папка /var/www/hommforever.ru/files/storage/, которая доступна снаружи как https://hommforever.ru/files/storage/<filename>. Для OpenClaw и администрирования нужно использовать эти MCP tools, а не старые workspace skills и не ручные shell-скрипты.
| Tool | Когда вызывать | Аргументы |
|---|---|---|
list_files |
Показать всё, что опубликовано в файлообменнике: имена, размеры, MIME-типы и URL. | {} |
get_file |
Проверить один файл перед удалением/переименованием или получить его URL, размер, mtime и sha256. | {"filename":"loop.gif"} |
upload_file |
Загрузить бинарный файл или уже подготовленный HTML/GIF/архив через base64. | filename, content_base64, overwrite, dry_run |
upload_text_file |
Создать текстовый файл без ручного base64: Markdown, JSON, HTML, заметка, plain text. | filename, text, overwrite, dry_run |
rename_file |
Переименовать файл без перезаписи существующей цели. | filename, new_filename, dry_run |
delete_file |
Мягко удалить файл: убрать из /files/storage и перенести в backup trash/. |
filename, dry_run |
list_backups |
Найти последние backup-папки, в том числе удалённые файлы для ручного восстановления. | {"limit":20} |
Если действие может быть опасным или имя файла неочевидно, сначала вызывайте list_files или get_file. Для изменяющих операций можно передать "dry_run": true.
Примеры вызовов
curl -sS -X POST http://127.0.0.1:8765/mcp \
-H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_files","arguments":{}}}'
sudo -u homm-site-mcp HOMM_SITE_MCP_CONFIG=/etc/hommforever-site-mcp/config.json \
/opt/hommforever-site-mcp/.venv/bin/python /opt/hommforever-site-mcp/server.py \
--call-tool upload_text_file '{"filename":"note.txt","text":"hello","overwrite":false,"dry_run":true}'
sudo -u homm-site-mcp HOMM_SITE_MCP_CONFIG=/etc/hommforever-site-mcp/config.json \
/opt/hommforever-site-mcp/.venv/bin/python /opt/hommforever-site-mcp/server.py \
--call-tool get_item '{"section":"utils","id":"structured-data-viewer.html","include_content":true,"max_content_bytes":50000}'
Backup
Перед каждой изменяющей операцией создаётся отдельная папка:
/var/backups/hommforever-site-mcp/YYYY-MM-DD_HH-MM-SS_operation_section_id/
В backup сохраняются metadata, копии изменяемых TSV/index/files, diff для текстовых файлов и trash/ для файлов, которые были удалены через перенос.
Список tools
site_status, list_sections, rebuild_section, list_items, get_item, create_item, update_item, rename_item, delete_item, reorder_items, list_files, get_file, upload_file, upload_text_file, rename_file, delete_file, list_backups.
Это административная справка. Пользовательский сайт работает без обращения к MCP-серверу.