Skip to content
Conduit

mcp server

pohoda-mcp

MCP server for POHODA (www.stormware.cz/pohoda/) — invoices, stock, orders, bank, warehouse, accounting (48 tools)

hlebtkachenko/pohoda-mcpcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pohoda-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "pohoda-mcp"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 17, 2026

POHODA MCP Server

License: MIT Node.js Version TypeScript

MCP server for POHODA (Stormware) accounting software. Manage invoices, stock, orders, bank documents, warehouse, and accounting from any MCP-compatible client.

48 tools covering all major POHODA agendas via mServer XML API, including PDF printing and a raw XML escape hatch. Every tool's XML is checked against Stormware's official XSD schema.

Requirements

  • Node.js 22+
  • POHODA with mServer enabled and running
  • mServer user credentials with XML communication rights

Installation

git clone https://github.com/hlebtkachenko/pohoda-mcp.git
cd pohoda-mcp
npm ci
npm run build

Configuration

Cursor

~/.cursor/mcp.json

{
  "mcpServers": {
    "pohoda": {
      "command": "node",
      "args": ["/path/to/pohoda-mcp/dist/index.js"],
      "env": {
        "POHODA_URL": "http://localhost:444",
        "POHODA_USERNAME": "<your-username>",
        "POHODA_PASSWORD": "<your-password>",
        "POHODA_ICO": "<your-company-ico>"
      }
    }
  }
}

Claude Desktop

claude_desktop_config.json (location)

{
  "mcpServers": {
    "pohoda": {
      "command": "node",
      "args": ["/path/to/pohoda-mcp/dist/index.js"],
      "env": {
        "POHODA_URL": "http://localhost:444",
        "POHODA_USERNAME": "<your-username>",
        "POHODA_PASSWORD": "<your-password>",
        "POHODA_ICO": "<your-company-ico>"
      }
    }
  }
}

Claude Code

.mcp.json in your project root, or ~/.claude.json globally:

{
  "mcpServers": {
    "pohoda": {
      "command": "node",
      "args": ["/path/to/pohoda-mcp/dist/index.js"],
      "env": {
        "POHODA_URL": "http://localhost:444",
        "POHODA_USERNAME": "<your-username>",
        "POHODA_PASSWORD": "<your-password>",
        "POHODA_ICO": "<your-company-ico>"
      }
    }
  }
}

Any MCP client (stdio)

The server uses stdio transport. Point your MCP client to:

node /path/to/pohoda-mcp/dist/index.js

With environment variables set for authentication (see below).

Environment Variables

VariableRequiredDescription
POHODA_URLYesmServer URL (default port: 444)
POHODA_USERNAMEYesPOHODA user with XML rights
POHODA_PASSWORDYesPOHODA password
POHODA_ICOYesCompany IČO (accounting unit)
POHODA_TIMEOUTNoRequest timeout in ms (default: 120000)
POHODA_MAX_RETRIESNoMax retries on timeout/503 (default: 2)
POHODA_CHECK_DUPLICITYNoEnable duplicate import checks (default: false)
POHODA_LIST_LIMITNoMax records a list tool returns (default: 100); larger results are truncated with a note
POHODA_EXE_PATHNoPath to Pohoda.exe; with POHODA_CONFIG_NAME enables mServer autostart
POHODA_CONFIG_NAMENomServer configuration name to start and stop

mServer autostart (Windows)

With POHODA_EXE_PATH and POHODA_CONFIG_NAME set, the server checks on the first tool call whether mServer answers, and if not runs Pohoda.exe /HTTP start "<config>" and waits up to 30 s. On shutdown it stops mServer again, but only if it started it.

Tools

System (4)

ToolDescription
pohoda_statusCheck mServer status (processing queue, idle/working)
pohoda_company_infoGet accounting unit info (company name, database, period)
pohoda_download_fileDownload a file from POHODA's documents folder
pohoda_raw_xmlSend any dataPackItem XML not covered by a dedicated tool; the envelope and all namespace prefixes are added automatically

Print (1)

ToolDescription
pohoda_printPrint a record with a print report, or save it as PDF on the POHODA machine and optionally return the PDF in the response

Address Book (4)

ToolDescription
pohoda_list_addressesExport contacts with filters (name, IČO, code, date)
pohoda_create_addressCreate a new contact in address book
pohoda_update_addressUpdate an existing contact by ID
pohoda_delete_addressDelete a contact by ID

Invoices (2)

ToolDescription
pohoda_list_invoicesExport invoices of one type: issued, received, advance, proforma, credit notes, receivables, commitments
pohoda_create_invoiceCreate an invoice with line items, partner, symbols, VAT

The XML API has no delete for invoices or contracts.

Orders (3)

ToolDescription
pohoda_list_ordersExport issued/received orders with filters
pohoda_create_orderCreate an order with items and partner
pohoda_delete_orderDelete an order by ID and type

Offers (2)

ToolDescription
pohoda_list_offersExport issued/received offers
pohoda_create_offerCreate an offer with items

Enquiries (2)

ToolDescription
pohoda_list_enquiriesExport issued/received enquiries
pohoda_create_enquiryCreate an enquiry with items

Contracts (2)

ToolDescription
pohoda_list_contractsExport contracts with filters
pohoda_create_contractCreate a new contract

Bank Documents (2)

ToolDescription
pohoda_list_bankExport bank documents (receipts/expenses)
pohoda_create_bankCreate a bank document with items

Cash Vouchers (2)

ToolDescription
pohoda_list_vouchersExport cash register vouchers
pohoda_create_voucherCreate a cash voucher (receipt/expense)

Internal Documents (2)

ToolDescription
pohoda_list_internal_docsExport internal accounting documents
pohoda_create_internal_docCreate an internal document

Stock / Inventory (5)

ToolDescription
pohoda_list_stockExport stock items with filters (code, name, store)
pohoda_create_stockCreate a new stock item
pohoda_update_stockUpdate a stock item by ID or code
pohoda_delete_stockDelete a stock item
pohoda_list_storesList all stores (warehouses)

Warehouse Documents (8)

ToolDescription
pohoda_list_prijemkyExport receiving documents (příjemky)
pohoda_create_prijemkaCreate a receiving document
pohoda_list_vydejkyExport dispatch documents (výdejky)
pohoda_create_vydejkaCreate a dispatch document
pohoda_list_prodejkyExport sales documents (prodejky)
pohoda_create_prodejkaCreate a sales document
pohoda_list_prevodkyExport transfer documents (převodky)
pohoda_create_prevodkaCreate a transfer document (items by stock code)

Production & Service (4)

ToolDescription
pohoda_list_vyrobaExport production documents
pohoda_create_vyrobaCreate a production document (items by stock code)
pohoda_list_serviceExport service records
pohoda_create_serviceCreate a service record

Reports (4)

ToolDescription
pohoda_list_accountancyExport accounting journal entries
pohoda_list_balanceExport open saldo/balance records as of a date
pohoda_list_movementsExport stock movement records
pohoda_list_vatExport the VAT classification codebook

Settings (1)

ToolDescription
pohoda_list_settingsExport settings (numerical series, bank accounts, cash registers, centres, activities, payment methods, stores, storage, categories, accounting units)

Resources

URIContent
pohoda://enums/vat-ratesAllowed rateVAT values
pohoda://enums/invoice-typesinvoiceType values
pohoda://enums/print-agendasCzech agenda names for pohoda_print
pohoda://enums/date-formatsAccepted date formats

Docker

docker build -t pohoda-mcp .
docker run --rm -i \
  -e POHODA_URL=http://host.docker.internal:444 \
  -e POHODA_USERNAME=<your-username> \
  -e POHODA_PASSWORD=<your-password> \
  -e POHODA_ICO=<your-company-ico> \
  pohoda-mcp

Multi-stage build, runs as non-root node user.

Security

  • Credentials via environment variables only
  • STW-Authorization Basic auth per POHODA mServer specification
  • STW-Application: pohoda-mcp header for audit trail in POHODA monitoring
  • STW-Check-Duplicity header support to prevent duplicate imports
  • XML escaping handled by xmlbuilder2 for all user-provided values
  • Path traversal prevention for file downloads (normalize + reject .. prefixed paths)
  • Input validation via Zod on all tool parameters

Development

npm test            # build + unit and end-to-end tests against a fake mServer
npm run check:xsd   # validate every tool's XML against the official XSD (needs xmllint and internet on first run)

Code layout and design notes: ARCHITECTURE.md.

POHODA mServer Setup

  1. Open POHODA → Settings → mServer
  2. Create a new mServer configuration
  3. Set the listening port (default: 444)
  4. Start the mServer
  5. Ensure the user has XML communication rights (Settings → Access Rights → File → Data Communication)

For internet access, use HTTPS or VPN. mServer is primarily designed for local network use.

Tech Stack

  • TypeScript 7
  • @modelcontextprotocol/sdk
  • Zod (schema validation)
  • xmlbuilder2 (XML generation)
  • fast-xml-parser (XML parsing)
  • iconv-lite (Windows-1250 encoding)
  • Native fetch

API Reference

Credits

pohoda_print, pohoda_raw_xml, mServer autostart and the enum resources follow ideas from dg/pohoda-mcp.

License

MIT

↑↓ navigate openesc close