# Ekwo OS — open source accounting: ledger, invoices and VAT on your own Supabase or Postgres

MCP-сервер связывает ИИ-агента с бухгалтерией Ekwo OS на Postgres или Supabase. Позволяет выставлять счета, проверять журнал проводок и сводить НДС с соблюдением прав доступа.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 39
- Автор: Ekwo-ai
- Лицензия: AGPL-3.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Ekwo-ai/ekwo-os/tree/HEAD/packages/mcp
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/mcp/ekwo-os-open-source-accounting-ledger-invoices-and-vat-on-your-own-supabase-or-p

## Что делает

Сервер открывает ассистенту доступ к двойной записи в базе данных Postgres или проекте Supabase. Агент умеет формировать черновики счетов, сопоставлять банковские выписки и готовить расчёты по НДС. Подключение работает в двух вариантах: удалённо по протоколу Streamable HTTP через `https://mcp.ekwo.ai/mcp` либо локально через stdio с помощью `npx -y @ekwo-ai/mcp@latest`.

Архитектура исключает опасные вольности модели. Сервер принципиально не принимает ключ `service_role` и завершает работу с ошибкой при попытке его передать. Все действия выполняются от имени конкретного пользователя через политики Row Level Security (RLS). Агент не увидит чужие компании или закрытые учётные периоды.

Удалять проведённые документы напрямую нельзя. Если в проведённом счёте допущена ошибка, база требует оформить сторно или корректировочную запись. Строки журнала создаются только встроенными процедурами схемы. Для прямого подключения к Postgres без PostgREST обязательно передавать `EKWO_ACT_AS_USER_ID`, а в среде должен быть установлен пакет `postgres`.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://mcp.ekwo.ai/mcp`
- Переменные окружения: `SUPABASE_URL`, `SUPABASE_ANON_KEY`, `EKWO_EMAIL`, `EKWO_PASSWORD`, `EKWO_ACCESS_TOKEN`, `EKWO_DB_URL`, `EKWO_ACT_AS_USER_ID`, `EKWO_EINVOICE_DIRECTORY` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: PostgreSQL, Supabase

## Установка

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

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http mcp https://mcp.ekwo.ai/mcp
```

2. **Командой платформы**
```bash
claude mcp add --env SUPABASE_URL=<SUPABASE_URL> --env SUPABASE_ANON_KEY=<SUPABASE_ANON_KEY> --env EKWO_EMAIL=<EKWO_EMAIL> --env EKWO_PASSWORD=<EKWO_PASSWORD> --env EKWO_ACCESS_TOKEN=<EKWO_ACCESS_TOKEN> --transport stdio mcp -- npx -y @ekwo-ai/mcp
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add mcp --url https://mcp.ekwo.ai/mcp
```

2. **Командой платформы**
```bash
codex mcp add mcp --env SUPABASE_URL=<SUPABASE_URL> --env SUPABASE_ANON_KEY=<SUPABASE_ANON_KEY> --env EKWO_EMAIL=<EKWO_EMAIL> --env EKWO_PASSWORD=<EKWO_PASSWORD> --env EKWO_ACCESS_TOKEN=<EKWO_ACCESS_TOKEN> -- npx -y @ekwo-ai/mcp
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp": {
            "url": "https://mcp.ekwo.ai/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@ekwo-ai/mcp"
            ],
            "env": {
                "SUPABASE_URL": "<SUPABASE_URL>",
                "SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>",
                "EKWO_EMAIL": "<EKWO_EMAIL>",
                "EKWO_PASSWORD": "<EKWO_PASSWORD>",
                "EKWO_ACCESS_TOKEN": "<EKWO_ACCESS_TOKEN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp": {
            "type": "http",
            "url": "https://mcp.ekwo.ai/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@ekwo-ai/mcp"
            ],
            "env": {
                "SUPABASE_URL": "<SUPABASE_URL>",
                "SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>",
                "EKWO_EMAIL": "<EKWO_EMAIL>",
                "EKWO_PASSWORD": "<EKWO_PASSWORD>",
                "EKWO_ACCESS_TOKEN": "<EKWO_ACCESS_TOKEN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http mcp https://mcp.ekwo.ai/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e SUPABASE_URL=<SUPABASE_URL> -e SUPABASE_ANON_KEY=<SUPABASE_ANON_KEY> -e EKWO_EMAIL=<EKWO_EMAIL> -e EKWO_PASSWORD=<EKWO_PASSWORD> -e EKWO_ACCESS_TOKEN=<EKWO_ACCESS_TOKEN> mcp npx -y @ekwo-ai/mcp
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

## Когда брать
- выставлять и регистрировать клиентские счета через диалог с агентом
- сверять банковские выписки и закрывать открытые платежи
- формировать отчёты и декларации по НДС на базе проводок
- проверять сальдо и записи главной книги без перехода в сторонний интерфейс

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

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