# Ekwo OS — open source accounting: ledger, invoices and VAT o (MCP server)

> Ekwo OS — open source accounting: ledger, invoices and VAT o is an MCP server that adds finance tools to AI assistants such as Claude Desktop, Claude Code and Cursor. Double-entry books an agent keeps as the user: invoices, VAT… It has 40 GitHub stars, is released under the AGPL-3.0 license and runs locally with npx -y @ekwo-ai/mcp.

The Model Context Protocol server for Ekwo OS. It lets an AI agent work on the books in your own Postgres: read the ledger, raise an invoice, post it, match a payment, prepare the VAT return — as you, under the row level security of your own installation.

## Key facts

| Fact | Value |
|---|---|
| Repository | https://github.com/Ekwo-ai/ekwo-os |
| GitHub stars | 40 |
| License | AGPL-3.0 |
| Language | TypeScript |
| Transport | stdio, streamable-http |
| Packages | npm: @ekwo-ai/mcp |
| Remote URL | https://mcp.ekwo.ai/mcp |
| Needs API key | yes |
| Official | yes |
| Works with | Claude Desktop, Claude Code, Cursor, VS Code, Claude.ai, ChatGPT |
| Category | Finance |
| Latest release | v0.16.0 (Oct 19, 2026) |
| Last commit | Oct 26, 2026 |
| MCP registry name | ai.ekwo/mcp |

## Install

### Claude Desktop (claude_desktop_config.json)

```json
{
  "mcpServers": {
    "ekwo-os-open-source-accounting-ledger-invoices-and-vat-o": {
      "command": "npx",
      "args": [
        "-y",
        "@ekwo-ai/mcp"
      ],
      "env": {
        "SUPABASE_ANON_KEY": "your-value",
        "EKWO_PASSWORD": "your-value",
        "EKWO_ACCESS_TOKEN": "your-value",
        "EKWO_DB_URL": "your-value"
      }
    }
  }
}
```

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

### Claude Code

```sh
claude mcp add --env SUPABASE_ANON_KEY=your-value --env EKWO_PASSWORD=your-value --env EKWO_ACCESS_TOKEN=your-value --env EKWO_DB_URL=your-value --transport stdio ekwo-os-open-source-accounting-ledger-invoices-and-vat-o -- npx -y @ekwo-ai/mcp
```

### Cursor (.cursor/mcp.json)

```json
{
  "mcpServers": {
    "ekwo-os-open-source-accounting-ledger-invoices-and-vat-o": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@ekwo-ai/mcp"
      ],
      "env": {
        "SUPABASE_ANON_KEY": "your-value",
        "EKWO_PASSWORD": "your-value",
        "EKWO_ACCESS_TOKEN": "your-value",
        "EKWO_DB_URL": "your-value"
      }
    }
  }
}
```

Project file; use ~/.cursor/mcp.json to enable it in every project.

### VS Code (.vscode/mcp.json)

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "supabase_anon_key",
      "description": "SUPABASE_ANON_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ekwo_password",
      "description": "EKWO_PASSWORD",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ekwo_access_token",
      "description": "EKWO_ACCESS_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ekwo_db_url",
      "description": "EKWO_DB_URL",
      "password": true
    }
  ],
  "servers": {
    "ekwo-os-open-source-accounting-ledger-invoices-and-vat-o": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@ekwo-ai/mcp"
      ],
      "env": {
        "SUPABASE_ANON_KEY": "${input:supabase_anon_key}",
        "EKWO_PASSWORD": "${input:ekwo_password}",
        "EKWO_ACCESS_TOKEN": "${input:ekwo_access_token}",
        "EKWO_DB_URL": "${input:ekwo_db_url}"
      }
    }
  }
}
```

### Claude Code (remote)

```sh
claude mcp add --transport http ekwo-os-open-source-accounting-ledger-invoices-and-vat-o "https://mcp.ekwo.ai/mcp"
```

The same server is also hosted as a remote MCP endpoint, so nothing runs on your machine.

Config formats checked against the official docs on 2026-10-07.

## Environment variables

- `SUPABASE_URL`: https://.supabase.co of your own project
- `SUPABASE_ANON_KEY` (secret): The anon (publishable) key. Never the service_role key: the server refuses it.
- `EKWO_EMAIL`: The user the agent acts as
- `EKWO_PASSWORD` (secret): That user's password
- `EKWO_ACCESS_TOKEN` (secret): An access token, instead of email and password
- `EKWO_DB_URL` (secret): Direct Postgres connection, for a self-hosted database without PostgREST
- `EKWO_ACT_AS_USER_ID`: Required with EKWODBURL: the auth.users id the server acts for
- `EKWO_EINVOICE_DIRECTORY`: Optional: the folder electronic invoices are sent to. Unset, they are issued and kept, and not sent

## Similar MCP servers

- [TRA](https://appsgit.com/mcp-servers/tra): Read-only gates of autonomous trading agents with deterministic execution: cost, data, validation. (42 stars, MIT, official)
- [MCP Klever Vm](https://appsgit.com/mcp-servers/mcp-klever-vm): MCP server for Klever blockchain smart contract development. (31 stars, MIT, official)
- [Trade It](https://appsgit.com/mcp-servers/trade-it): Connect brokerage accounts to AI assistants: holdings, orders, asset lookup, and approved trading. (62 stars, CC0-1.0, official)
- [CoinPaprika](https://appsgit.com/mcp-servers/coinpaprika): Real-time crypto market data: prices, tickers, exchanges, OHLCV candles, and metadata. (30 stars, MIT, official)
- [Norman MCP Server](https://appsgit.com/mcp-servers/norman-mcp-server): AI-powered bookkeeping and tax filing for entrepreneurs at the heart of the European economy. (62 stars, MIT, official, needs API key)
- [trading-research-agents](https://appsgit.com/mcp-servers/trading-research-agents): Read-only gates of autonomous trading agents with deterministic execution: cost, data, validation. (42 stars, MIT, official)

---

Canonical page: https://appsgit.com/mcp-servers/ekwo-os-open-source-accounting-ledger-invoices-and-vat-o
Source: appsgit (https://appsgit.com), the app store for github. Data from the GitHub API, refreshed daily.
Machine access: JSON API https://appsgit.com/api/v1/apps (OpenAPI: https://appsgit.com/openapi.json), MCP server https://mcp.appsgit.com/mcp, full index https://appsgit.com/llms-full.txt.
