elster-mcp-server — MCP-сервер для Claude Code: подача UStVA в ELSTER
MCP-сервер, который через Puppeteer заходит в портал ELSTER под вашим сертификатом: заполняет UStVA, готовит EÜR и ESt, читает входящие и историю отправок.
claude mcp add --env ELSTER_CONFIG_PATH=<ELSTER_CONFIG_PATH> --env ELSTER_PFX_PATH=<ELSTER_PFX_PATH> --env ELSTER_PASSWORD=<ELSTER_PASSWORD> --env ELSTER_TAX_NUMBER=<ELSTER_TAX_NUMBER> --env ELSTER_STATE_CODE=<ELSTER_STATE_CODE> --transport stdio elster-mcp-server -- npx -y elster-mcp-serverЧто делает elster-mcp-server
Сервер открывает ELSTER в браузере и делает то же, что человек: логинится по файлу .pfx и паролю, заполняет форму, запускает проверку. Дальше начинается разница. elster_ustva_start останавливается на состоянии AWAITING_CONFIRM, и отправку выполняет только отдельный вызов elster_ustva_confirm. Без второго подтверждения на сторону налоговой ничего не уходит.
Формы EÜR и ESt сервер вообще не отправляет: доводит заполнение до «Prüfen» и оставляет браузер открытым, чтобы вы сами проверили и нажали кнопку. Синхронизация истории и входящих работает только на чтение, состояние на портале не меняется. Обратный charge по §13b ищется по регуляркам из ustva.reverseChargeSuppliers в config.json, совпадение проверяется по имени контрагента или описанию проводки.
Для работы нужен Node.js 18 или новее, сертификат .pfx из «Mein ELSTER», пароль к нему, ваш Steuernummer и двузначный код федеральной земли. Puppeteer при установке тянет Chromium примерно на 150 МБ. Автор прямо пишет: проект экспериментальный, с налогами не связан, а условия использования ELSTER могут ограничивать автоматический вход — проверять допустимость своего сценария вам. Коммерческая подача за третьих лиц может попасть под Steuerberatungsgesetz.
Какие задачи решает
- заполнить и проверить UStVA в ELSTER из чата с агентом
- подготовить Anlage EÜR без ручного ввода каждой строки
- найти поставщиков с reverse charge по §13b среди проводок
- выгрузить отправленные формы и входящие ELSTER с PDF
- проверить, что сертификат и пароль вообще пускают в кабинет
Примеры запросов агенту
- Проверь вход в ELSTER вызовом
elster_login_test - Заполни UStVA за прошлый квартал и остановись на проверке
- Синхронизируй входящие ELSTER и покажи непрочитанное
Как установить elster-mcp-server
Командой платформы
claude mcp add --env ELSTER_CONFIG_PATH=<ELSTER_CONFIG_PATH> --env ELSTER_PFX_PATH=<ELSTER_PFX_PATH> --env ELSTER_PASSWORD=<ELSTER_PASSWORD> --env ELSTER_TAX_NUMBER=<ELSTER_TAX_NUMBER> --env ELSTER_STATE_CODE=<ELSTER_STATE_CODE> --transport stdio elster-mcp-server -- npx -y elster-mcp-serverВместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера
Командой платформы
codex mcp add elster-mcp-server --env ELSTER_CONFIG_PATH=<ELSTER_CONFIG_PATH> --env ELSTER_PFX_PATH=<ELSTER_PFX_PATH> --env ELSTER_PASSWORD=<ELSTER_PASSWORD> --env ELSTER_TAX_NUMBER=<ELSTER_TAX_NUMBER> --env ELSTER_STATE_CODE=<ELSTER_STATE_CODE> -- npx -y elster-mcp-serverВместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера
Файл настроек
{
"mcpServers": {
"elster-mcp-server": {
"command": "npx",
"args": [
"-y",
"elster-mcp-server"
],
"env": {
"ELSTER_CONFIG_PATH": "<ELSTER_CONFIG_PATH>",
"ELSTER_PFX_PATH": "<ELSTER_PFX_PATH>",
"ELSTER_PASSWORD": "<ELSTER_PASSWORD>",
"ELSTER_TAX_NUMBER": "<ELSTER_TAX_NUMBER>",
"ELSTER_STATE_CODE": "<ELSTER_STATE_CODE>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера
Файл настроек
{
"servers": {
"elster-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"elster-mcp-server"
],
"env": {
"ELSTER_CONFIG_PATH": "<ELSTER_CONFIG_PATH>",
"ELSTER_PFX_PATH": "<ELSTER_PFX_PATH>",
"ELSTER_PASSWORD": "<ELSTER_PASSWORD>",
"ELSTER_TAX_NUMBER": "<ELSTER_TAX_NUMBER>",
"ELSTER_STATE_CODE": "<ELSTER_STATE_CODE>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера
Командой платформы
gemini mcp add -e ELSTER_CONFIG_PATH=<ELSTER_CONFIG_PATH> -e ELSTER_PFX_PATH=<ELSTER_PFX_PATH> -e ELSTER_PASSWORD=<ELSTER_PASSWORD> -e ELSTER_TAX_NUMBER=<ELSTER_TAX_NUMBER> -e ELSTER_STATE_CODE=<ELSTER_STATE_CODE> elster-mcp-server npx -y elster-mcp-serverВместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о elster-mcp-server
Как установить elster-mcp-server в Claude Code?
Добавьте сервер командой claude mcp add elster-mcp-server -e ELSTER_PASSWORD=<ELSTER_PASSWORD> -- npx -y elster-mcp-server. Для полного набора настроек есть вариант с --transport stdio, где через --env передаются ELSTER_CONFIG_PATH, ELSTER_PFX_PATH, ELSTER_PASSWORD, ELSTER_TAX_NUMBER и ELSTER_STATE_CODE.
Что делает elster-mcp-server?
Управляет порталом ELSTER через Puppeteer: заполняет UStVA, готовит EÜR и ESt, читает историю отправок и входящие. Отправляет только UStVA, и то после отдельного подтверждения.
Можно ли использовать его для подачи за клиентов?
Автор предупреждает: при коммерческом использовании, например при подаче от имени третьих лиц, может действовать Steuerberatungsgesetz, и свою правомерность нужно проверять самому.