# formio-mcp

Подключает агент к Form.io: создаёт формы, ресурсы, действия, роли и проекты прямо из чата. Пригодится, когда формы и права живут в Form.io, а не в коде.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 8
- Автор: formio
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/formio/ai/tree/HEAD/packages/mcp-server
- Обновлён: 2026-10-19
- HTML: https://affpapa.org/nevibecode/mcp/formio-mcp

## Что делает

Сервер `@formio/mcp` работает по stdio: клиент сам запускает процесс и держит его потоки ввода-вывода. Открывать порт не нужно, вручную ничего не стартует. Транспортов HTTP или SSE нет — единственный HTTP-слушатель это временная страница браузерного логина, и трафик MCP через неё не идёт.

Любому инструменту нужен проект Form.io. Источников три, и они перекрывают друг друга по узости: закоммиченный `formio.json`, маппинг каталога от инструмента `project_set` и переменная `FORMIO_PROJECT_URL`. `FORMIO_BASE_URL` обычно не требуется — базовый адрес выводится из вида адреса проекта, а спрашивают его только когда вывести не получается. Сервер поднимается и без настроек: клиент подключится и увидит список инструментов, а адрес проекта потребуется в момент вызова, `server_status` работает всегда.

В Docker образ `formio/mcp` тоже говорит по stdio, поэтому контейнер запускают с `-i`. Для непубличного развёртывания есть две ловушки. Приватное имя хоста внутри контейнера не разрешается — его прописывают через `--add-host`. И образ доверяет только стандартному набору CA: сертификат, которому доверяет ваша машина, внутри контейнера даст голое `fetch failed`. Для сертификата частного CA монтируют корневой сертификат и указывают `NODE_EXTRA_CA_CERTS`. А вот полностью самоподписанный сертификат так не лечится: Node требует, чтобы якорь доверия был CA, и отклонит цепочку с `DEPTH_ZERO_SELF_SIGNED_CERT`. Остаётся `FORMIO_INSECURE_TLS=1` — только для локальной разработки, не для продакшена.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `FORMIO_PROJECT_URL`, `FORMIO_BASE_URL`, `FORMIO_API_KEY`, `FORMIO_LOGIN_FORM`, `FORMIO_AUTH_HOST`, `FORMIO_AUTH_PORT`, `FORMIO_AUTH_TIMEOUT`, `FORMIO_FORCE_BROWSER`, `FORMIO_REQUEST_TIMEOUT`, `FORMIO_INSECURE_TLS` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env FORMIO_PROJECT_URL=<FORMIO_PROJECT_URL> --env FORMIO_BASE_URL=<FORMIO_BASE_URL> --env FORMIO_API_KEY=<FORMIO_API_KEY> --env FORMIO_LOGIN_FORM=<FORMIO_LOGIN_FORM> --env FORMIO_AUTH_HOST=<FORMIO_AUTH_HOST> --transport stdio mcp-server -- npx -y @formio/mcp
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add mcp-server --env FORMIO_PROJECT_URL=<FORMIO_PROJECT_URL> --env FORMIO_BASE_URL=<FORMIO_BASE_URL> --env FORMIO_API_KEY=<FORMIO_API_KEY> --env FORMIO_LOGIN_FORM=<FORMIO_LOGIN_FORM> --env FORMIO_AUTH_HOST=<FORMIO_AUTH_HOST> -- npx -y @formio/mcp
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@formio/mcp"
            ],
            "env": {
                "FORMIO_PROJECT_URL": "<FORMIO_PROJECT_URL>",
                "FORMIO_BASE_URL": "<FORMIO_BASE_URL>",
                "FORMIO_API_KEY": "<FORMIO_API_KEY>",
                "FORMIO_LOGIN_FORM": "<FORMIO_LOGIN_FORM>",
                "FORMIO_AUTH_HOST": "<FORMIO_AUTH_HOST>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@formio/mcp"
            ],
            "env": {
                "FORMIO_PROJECT_URL": "<FORMIO_PROJECT_URL>",
                "FORMIO_BASE_URL": "<FORMIO_BASE_URL>",
                "FORMIO_API_KEY": "<FORMIO_API_KEY>",
                "FORMIO_LOGIN_FORM": "<FORMIO_LOGIN_FORM>",
                "FORMIO_AUTH_HOST": "<FORMIO_AUTH_HOST>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e FORMIO_PROJECT_URL=<FORMIO_PROJECT_URL> -e FORMIO_BASE_URL=<FORMIO_BASE_URL> -e FORMIO_API_KEY=<FORMIO_API_KEY> -e FORMIO_LOGIN_FORM=<FORMIO_LOGIN_FORM> -e FORMIO_AUTH_HOST=<FORMIO_AUTH_HOST> mcp-server npx -y @formio/mcp
```
Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера

## Когда брать
- создать форму Form.io из описания в чате
- завести ресурс и роли под новый проект
- поправить действие формы без похода в веб-интерфейс
- переключить агента на другой проект Form.io
- проверить связь с Form.io перед работой

## Примеры запросов агенту
- Создай в Form.io форму обратной связи с полями имя, почта и сообщение
- Добавь роль editor в текущий проект Form.io
- Покажи статус подключения к Form.io

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
